The Utopia of software development ....
Let me start out my saying that I simply love the writings of Joel Spolsky [more about him], CEO of FogCreek Software, and have been a follower of his well written and well thought out essays on software development and management on his Weblog "Joel on Software" (http://www.joelonsoftware.com).
He has also published a number of great books on building good software and good software companies, many of which already have a home on my bookshelf. One of his earlier articles he posted on his weblog was about hiring developers which subsequently lead to "Smart people who get things done" becoming a mantra with many hiring managers in the know when looking for developers; in fact the same can be said for hiring any staff.
This is a guy that doesn't mince his words when it comes to the things he is passionate about.
Here is an interview given with ACM Queue, "A conversation with Joel Spolsky", where he shares his tell-it-like-it-is insights on things like Software development, management, The Google culture etc. Once again, an awesome read!
Some thoughts on management;
"I always think of it [Management] as more of a support role - like moving furniture out of the way so they can get things done - than an actual leadership role...
To the extent that managers can actually make decisions for programmers, they are very low-level, mundane decisions that allow the programmer to move on to the next task. In terms of decisions about algorithms, about the big picture, structure, code, it's probably a very bad idea for management to make those decisions. I see two roles for a manager of developers: number one, keeping a useful and assorted queue of things for the developers to be working on, so that they can pick things off the top of the queue and do them next; and, second, basically being there to answer developers' questions."
Some thoughts on a concept called EBS (evidence-based scheduling) they are using in their product Fogbugz, a web-based project management system, to help software developers better predict release dates really
"In evidence-based scheduling, you come up with a schedule, and a bunch of people create estimates. And then, instead of adding up their estimates - instead of taking them on faith - you do a ... simulation where you look at what you had in the past and run a simulation of all of your futures. What you get, instead of a date, is a probability distribution curve that shows the probability that the product will ship on such-and-such a date."
"It is mathematically incorrect to add two estimates to get the estimate of those combined features. You have to do something like evidence-based scheduling, where you use historical data - and this is actually risk analysis."
This really struck home with me because accurate estimations is something I really struggle with.
Either this guy just knows how to push my buttons as a developer, or he really knows his stuff.
Why are there not more software development companies like this out there?
Dear Joel; pretty please with a heap of cherries (and sprinkles) on top can I come work for you? I'd make a fabulous dishwasher! :D