Characterizing people as non-linear, first-order components in software development

I just read a very interesting paper on software methodology. What makes a software project succeed? That's the basic question the author tries to answer.

I tend to think in terms of tools when I think about software success. Program in a better language and you're much better off! Use a better IDE! Automate test generation using QuickCheck! All these suggestions are good. But according to the author of this paper called "
Characterizing people as non-linear, first-order components in software development" tools are a second order effect. The single most important thing for software projects is the people in the projects. The programmers. It feels obvious when I write it like this. But think of all the methodologies developed to improve programmer productivity. What we should be focusing on are the people. Who they are, how they behave, what habits they have. We need to embrace that people are different, prone to errors, reluctant to change their habits and tend to communicate best face to face.

Reading this paper was a liberating experience. Having a human centric view is just right. We need to have this perspective even in other parts of society. A swedish politician once said that those political systems that fail are those that are based upon a false or too narrow view of what people are. Such as communism for instance. We need to understand ourselves and accept each other as we are. Only then can we be truly happy and truly productive.

Btw, I found the article via Shae Erisson's blog.

No comments: