In a recent project I worked in we often had problems getting the development process effective. So why? Where we as developers lazy and bad? Maybe, but it recently hit me that there could have been other reasons as well.
When we had meetings to summaries the upcoming work everybody were interested and looked forward to do a good job to quit the job as quick as possible. But after a while it hadn't happened very much. Why?
I found out that there can have been a couple of different reasons other than the developers being lousy and lazy that made the team ineffective...
- Writing documents where prioritized higher than writing code. So instead of starting to develop a couple of developers started to write documents they had to write first. Why not complete the developing tasks first and then write the required documents? What is most important, completing the development or the documents?
- The development is the only activity that is time estimated. So when you eg write documents or do analysis you can work without time pressure. So it gets more comfortable to do other stuff than developing because you can do it in your own pace.
- We had a lot of short task´s instead of grouping them together and making some tasks bigger. Every time you finished a task you lost some time before starting a new one because you felt happy and pleased finishing a task. Wrote an email and started to read interesting blogs for a while. You also had to get into a new task and understand the issue. So every time you finished a task you lost focus and pace. Better would be to get into a bigger issue and work focused on that one for a while.
- In many projects the developers are the "lowest" rank of the team members. So what should you do if you want to do "career"? Well, the first step is probably to quit writing code and do other stuff instead. Feels like writing documents are a good way to take a step closer to management...