Joel Spolsky, CEO of Stack Overflow, a popular Q&A site for programmers, is also co-founder of Fog Creek Software, and one of the founders of project management app Trello. Spolsky, known for his blog “Joel on Software,” spoke last week at the GeekWire Summit in Seattle, addressing trends in software-development tools, what companies get right and wrong in dealing with developers, and how to keep developers happy.
Playing into the unique nature of the culture, Stack Overflow today launched a new feature for job-seeking programmers called “Developer Story,” designed to give them an alternative to the traditional resume to highlight their projects and accomplishments, and find the best companies.
Continue reading for a highlights from his interview with GeekWire co-founder Todd Bishop, and watch the full video of the session below.
On Microsoft’s early developer-recruiting missteps: When I started working for Microsoft, they did most of their recruiting on campus. They hired computer science graduates, and in order to interview them, they brought them out to Redmond and put them up in a local hotel and gave them a whole day of interviews. At the end of that day, the assumption was “We want to sell you on what a great place it is to work for Microsoft and how amazing it would be come and live in Redmond or Bellevue” or whatever, so they organized a dinner at a steakhouse with someone who’s probably an alumnus of your university. Inevitably what would happen is you’d go out for dinner at Black Angus. It was this really awkward, formal dinner in a fancy steakhouse, which is not something any 21-year-old nerd programmer really wanted to do with somebody they’ve never met, under the stress of this also being a job interview.
On how developers should be recruited: You have find out what the person is genuinely interested in. The improvement (in recruiting techniques) has been that we’ve substituted “Let’s take them out to Black Angus” to ‘”They’d probably enjoy a hackathon.” Recruiters still don’t understand that fundamentally, programming is a solitary activity. I’m not saying programmers are loners, just that many of them are introverts. And if you’re going about recruitment based on what you might like, you might be having the opposite effect.
On what Microsoft got right: I started my career at Microsoft in the ’90s and observed that Microsoft had figured out a lot of stuff about how to develop software with some degree of civility and some sanity, which a lot of other companies hadn’t figured out. It wasn’t universal at Microsoft, and it wasn’t non-existent elsewhere, but it was really surprising at how much of a higher level the basic core skills of developing software had been figured out by Microsoft, especially the Excel team.
On “flow” among developers: A developer’s work is creative and requires a high degree of concentration. The more things you can keep in your brain, the faster you can code, by orders of magnitude. So being able to keep 10 or 20 things in your head at once and recall them very quickly is going to make you substantially more productive as a developer for that period of time. This is a state that most developers recognize, called flow. They get in it and they’re really, really able to bang things out. And any interruption can interrupt that.
On the optimal office design for developers: We either provide a developer with a private, individual office with a door that closes and natural light, or they work from home. The productivity is high and it’s very easy to hire people.
On how to compensate for any lack of communication such offices might entail: The argument is “Hey, let’s get everyone in a room together and they’ll overhear things and they’ll communicate by talking among each other.” That’s actually ideal for a trading floor, so go ahead if you’re Bloomberg. For programmers who need to concentrate, I don’t want to accidentally hear it. I want to read the logs from the version-control system. I want to be able to go into a chat room and say ‘Does anybody know whatever?’ and have them come into the chat room and see the message I left behind and respond when it’s convenient for them. Get communication to happen using the tools the developers built themselves.
On trends in development tools and languages: One thing I’ve noticed over a long period in software development is there’s a desire to use the latest cool new thing. There’s also a contrary-wise desire to just use some boring old thing that’s known to work. There’s very rapid turnover in the programming field; a lot of them move into project management or other management positions. So the kids keep showing up with their new-fangled things that they just invented and re-inventing the wheel. The change in what’s popular is pretty rapid.