This is the 37th episode of the StackOverflow podcast, where Joel and Jeff discuss the expansion of Stack Overflow into non-programming IT topics, the pernicious problem of "systemitis", and how to reach the next generation of programmers.
- I was star-struck that Alan Kay actually participated in Stack Overflow, both answering a question and even asking a question of his own.
- We finally reverse engineered the WMD source code, thanks to the noble and herculean efforts of Dana Robinson. If you're interested you can pull the latest version from Dana's Git repository.
- Joel recommends Eric Raymond's Understanding Version-Control Systems. Our (very, very limited) experience with Git emphasizes the importance of editing code with the goal of creating easy to apply patches. If your changes are hard to merge, they're likely to be ignored.
- I've been having fun (for particularly small values of fun) configuring and building the new server hardware for Stack Overflow. I was moderately surprised to find that live rebuilding a RAID array with a 500 GB drive takes around 8 hours; rebuilding a simple 1-1 mirror array in offline mode takes 4 hours.
- Joel recommends the built in Windows Server Network Load Balancer (nlb); there's also the open source equivalent, HAProxy, which the Reddit guys mentioned in our podcast with them.
- We are planning to launch an IT-centric Stack Overflow in the next few months. This will be a place for System Administrator and IT professionals -- people who work with computers in a professional capacity, but aren't necessarily programmers -- can go to get their questions answered.
- Our first challenge with the IT-centric Stack Overflow is naming it. Naming is extremely difficult, whether you're naming functions/variables, businesses, websites, or new human beings. We also need to find the leaders and moderators who will drive the community and set the tone for everyone else.
- Joel heard the world population of computer programmers is 4 million. I can't find a source for this; does anyone have one?
- Joel thinks the current downturn is unlikely to affect the tech sector, except possibly as a broad excuse to cut dead wood out of companies. It's interesting to contrast the Web 1.0 crash in 2000-2001 with the current environment; it certainly doesn't feel the same to us.
- Joel and I don't agree with rigidly defined Project Manager, Programmer, and Test roles; how can you judge other people's competency in a particular discipline if you have zero competency in it yourself? Obviously this varies by company and person, but cross-training in related disciplines will make you a better programmer.
- Joel talks about "systemitis", programmers who spend the bulk of their time creating giant universal programming solutions to business problems that don't really make sense. This is perhaps a sign of programmers who aren't being challenged in their jobs. Rather than letting them spend their time creating another Universal System, try to recognize systemitis, and encourage these programmers to improve their skills in related disciplines instead of building "the system"
- We remember the classic BASIC programming that a whole generation of programmers grew up with. Typing in and modifying these simple little games was our first programming experience, an experience that launched a lifelong career. What is the equivalent for today's young programmers?
Our favorite Stack Overflow questions this week are:
- Joel: Significant new inventions in computing since 1980? Joel picked Alan Kay's question, even before Joel knew it was from Alan Kay. We swear!
We answered several listener question on this podcast:
- Alfred: "What will happen to the open source movement in a sluggish economy? Will it grow or shrink?"
- Shawn: "On the Business of Software: why do companies sell only small personal pizzas instead of individual pizza slices?"
- Daniel: "Large companies have well-defined roles like PM, Dev, and Test that are quite rigid. Is this a good strategy?"
If you'd like to submit a question to be answered in our next episode, record an audio file (90 seconds or less) and mail it to email@example.com. You can record a question using nothing but a telephone and a web browser. We also have a dedicated phone number you can call to leave audio questions at 646-826-3879. The transcript wiki for this episode is available for public editing.