Making Software Is Hard

A lot of project managers and those in charge of software development teams think they can squeeze out more software from engineers by throwing more of them at a problem or making them work harder. Some employ all kinds of tactics to corner engineers into making commitments and holding them to it.

They may even convert this adversarial attitude towards engineers a virtuous management tactic that every one of their peers and subordinates who also manage engineers are to emulate. Al this does is push the risk of creating software onto engineers. And that will have negative consequences. Consequences that some managers are fine with.

They attempt to reduce software development down to a menial task like every other function. You said you will take 5 days to do this. Why is it taking longer? You are not living up to your word. Creating software is not like doing wood work or making pizza – easily repeated and well understood task. Complexities arise that increase the scope of the development in ways that were not foreseen during estimation. And this happens pretty often.

If you are able to get software out of someone by cornering someone and extracting an outcome then you are compromising on something else. If you are able to get away with pushing the risk of software onto engineers time and time again, then they will likely not be around for much longer. If you want to deviate from this minimum cost something has to take a hit. There are no free lunches. It is up to you to figure out what that is. It can be code quality.

It can be sustainability – your code runs the risk of not being maintainable after a point in time. It can be risking losing your staff. It can be money and time spent in bringing in additional capacity though contractors. Writing a software application well requires that a problem is thought through well. Software development is not the act of typing. It is not the translation of something from memory into words in a text file.

The act of creating software happens in the minds of people and in their interactions with people involved in making it. It involves the careful consideration of the methodology to solve this specific problem.

Recent Articles | Archive