Crunch mode is effective
I stumbled on this post of Marco, that directed me on the original post, speaking about crunch time. In my experience it is a very abused technique, expecially here in Italy, where managers tells you “We are late, we are not in time, we must hurry, we must work more!”
The original articles shows a lot of reasons why crunch time is not the solution to speed up the process, but in the end there are more, not really related to productivity, or sleep time or some other physical condition. In my experiences when you always work in crunch time you * feel the hurry *, I do not know how to express this concept in good English, but it means that each day, when you begin to work, you really does not feel comfortable, you know that you are late, you are an overwhelming amount of code to write, you know that you will code even if in the weekend, you feel tired but you cannot stop working.
Despite physical problems, this lead to really poor code.
- People write less and less tests
- they does not refactor the code
- they throws in the compiler the first things that comes into their mind
- they stop to study, read articles or doing everything else than code, code and code
Crunch time make people uncomfortable, then they try to code at full speed, hoping that one day, they could work again 40 hours per week. The goal of the project should be Create a good software for the stakeholder, but crunch time modify it into: try to code at full speed to make crunch time end. During long period of crunch time you begin to heard excuses like:
- I do not have time to write test, we are in hurry, do not have time to test
- I do not have time to think at a good way of doing this, I try the first thing it come to mind, launch the program, and if it not crashes I assume that it is ok, I have another 100 tasks to do today.
- I know that this is bad code, but I have no time to think at a better way of doing this.
And the list can continue.
A manager cannot expect people to create good software if they constantly work crunch time, the overall quality of the code decrease a lot, the manteniance time increases, modifying the software to add new functionality is a pain because you do not have test. If you work with large team, there is not time to create a common style of coding, like: how to comment code, naming rules, and so on.
Crunch time can be used for short period, and can really be useful. If a couple of weeks of crunch time helps you to meet the deadline, this makes people happy. “Hey, we worked hard these two weeks, but we really reach the goal, we are great!”.
Alk.
Tags: Crunch Time