I found this via one of my co-worker’s shared items. It’s a variation on a theme that is oft repeated in the software development world.
I heard once that in Great Britain's MOD if you design software for a plane you go up in the test plane when the software is beta-tested. If all programmers were held with that level of accountability, how many do you think would still be in our field? How many would you want to collaborate with before you went up in the plane together?
Jay Fields
http://blog.jayfields.com/2009/01/cost-of-net-negative-producing.html
The problem is that not all software is equally critical (which the author does point out). When asked what the right amount of process is, one of my college professors was fond of saying, “it depends”. The right amount of process in situation A does not translate to the right amount of process across the board. I would argue that the same is true for quality of developers working on a project. This is not to say that it wouldn’t be great if every person writing software was awesome at what they did, but the reality is that there is more software to be written out there than there are great developers to write it.
So where does that leave us? I think part of it is taking the good devs and making them great devs. In Joel Spolsky’s Smart and Gets Things Done, he puts developers in three buckets, 1) Great developer, 2) Needs specific improvements and 3) Hopeless. If you’re in management, culling out the “hopeless” is very important to team morale although I think that those cases are few and far between. I think the great majority of developers are in the “specific improvements” bucket. Getting your co-workers from group 2 to group 1 should be one of your highest priorities if you are any sort of management/leadership role. Most “great developers” would probably put themselves in bucket 2, but the differentiator, for me, is that they are seeking out and working on those specific improvements themselves. Inspiring those around you (not pointing the finger at those around you) is the way to improve the state of development no matter your situation.
Of course, if you’re surrounded by the “hopeless” it might be time for a change of scenery. This advice might not be practical in the current economy, but remember if you can’t change your company, it might be time to change your company.