Jeff Atwood of CodingHorror has recently started talking about how object-oriented programming and information overload hinder productivity.

If you ask me, he really hit the bull’s eye with these posts. Nowadays, many different software processes exist, each one having its own benefits and weaknesses. Agile development, SCRUM, waterfall model and a load of custom processes - and all of them have one thing in common. A process adds overhead to writing code in order to make writing code more productive. For example, instead of writing a Palm OS application, you get to write a Palm OS application and create some flowchart for documentation and clarification purposes before typing in the C code.

The clarification given by the flowchart usually is worth the time needed to draw it - synthesizing a flowchart into c code is one of the simplest things ever made. However, some people tend to require flowcharts for every little call; and a few maniacs even require Nassi Schneidermann charts for tiny 5-liners(especially popular in schools).

And this is where the process becomes a problem. When a process starts to slow you and your team down, it’s useful lifetime has ended and it needs to be removed or adjusted. Doing something just because a process demands it is pointless; “processes are for developers” instead of “developers are for the processes”.

What do you think?