Path to the Dark Side

In coding not doing test automation leads you to the Dark Side. Yoda says the path to the Dark Side starts from Fear.

”Fear leads to anger.

Anger leads to hate.

Hate leads to suffering.”

Fear

In software development the path to the dark side starts also from fear of introducing new bugs. As a coder you start to fear that when you do a change to the system, you will break something (as often you actually do). I calculated once that for every 3 new lines of code, I introduce at least 5 new bugs. Generally speaking I’ve been observing that roughly 20% of all work is related to rework (in accounting, marketing, system administration, also software development) for a ”professional team” that is experienced and knows their trade well has not done any special efforts to improve quality, such as Six Sigma or Zero Quality Control. I observed the defect-work ratio of my own work in Nokia, and for my surprise I was unable to introduce any improvement for over 2 years (when not doing any special effort to improve, other than just measuring).

The management fears that their new system does not work, or the customers won’t buy it once introduced, and thus postpones the launch dates to fix a few more ”major” bugs and to introduce a few more ”critical” new features. This management fear slows down the the go-to-market times, creates waste of excess non-released inventory of unfinished work, and slows down the big wheel of adapting the company and products to always changing market demands, which can be fatal especially for start-ups.

Anger

In agile projects, Fear prevents you from doing Refactoring causing ever increasing Technical Debt, which will cause project failure typically within 18 months (according to my experience). You start to feel angry about the huge piles of the spaghetti, bad coding practices and architecture, and also the exponentially increasing number of bugs and time to fix the quality problems. Management feels angry about the steeply increasing operational costs, bad feedback from the customers and lack of progress in new ”business critical” functionality.

You notice this when somebody starts to talk about the so called Version 2.0 (i.e. complete rewriting of the application, because reasons x,y and z). Throwing away your previous work effort is a large scale waste.

Hate

If you are angry enough about your bad quality code, you will start to Hate it enough that you start to consider restarting from a clean slate as a better alternative. However, unless you fix the original reason for Fear, you will just repeat the same cycle within the next 18 months. You start to hate your work, hate your management, hate your co-workers.

Suffering

In the end you suffer and feel miserable about your life, but this is how the software development has been always done before. You are trapped into the chaos of Dark Side without way to escape the corruption and cycle of project failure.

Remedy

At PHZ.fi we fight the Dark Side of coding by embracing Behaviour and Test Driven Development (TDD, BDD) and test automation. Having a high test coverage and 100% passing unit tests, run constantly by the Continuous Integration server helps you to release from the fear of doing change. Actually you can start to Embrace the Change to achieve happiness both personally and professionally, and also create Sustainable Software with longer than a few months life-cycle (we target projects that stay maintainable for decades).