There’s a really scary thought out there: most software developers are rowing backwards. That means they’re creating things that someone else will someday need to fix. Bruce Eckel related this story recently on his blog.
You’d automatically think: There must be a deep sickness in the software development community to make this a fact. Well, first of all, just because I experimented with Google’s chart API to add a graphic to this entry doesn’t mean there are any real statistics behind this claim. It is a gut feeling from someone in the software business. With all the frustration that people who need to fix problems feel, it is not surprising that the “forward rowers” feel outnumbered.
But Eckel goes on to hint that much of this rowing in the wrong direction is precipitated by shifting business priorities, changing technical climate, and natural learning curves. We all think we’re heading in the right direction while we’re headed there. It is only in hindsight that we can quantify the blunders that got us into some pretty terrible situations.
Finally, he shows how the answer is to assemble people on a team who share some key positive attributes. Essentially, Eckel concludes that for each team member you want a person who is:
- Technically Sound
- A Critical Thinker
- A Problem Solver
- An Independent Learner
In the old FizzBuzz debate, we heard how you can start to test for these kinds of things. But in my experience some teams gel and some don’t. Certainly this is because personality and motivation is made up of more that just six identifiable dimensions. Thus, when a great team comes together, it seems like magic.