When you develop software there is an infinite number of things that might slow you down. Certain things are harder than other to speed up. Like learning or introducing new team members for instance. Then there are disruptions like external dependencies which can cause delays and will send chock waves through your system or by other means disturb your process. The latter will probably be tough to control and the introduction and teaching of new individual is necessary work.

What I want to suggest is that you focus on something different and really nothing new. In spite of that, the phenomenon I am talking about has brought several teams to their knees and made them stop in their tracks. Yep, you guessed it.

Bugs. Errors. Misfeature’s.

Whatever you want to call it, it is waste and it does do not belong in a code base created by software professionals. I do realize that no matter how hard you try, sooner or later you will end up introducing errors. It is what you do at this point that is important.

The fact that errors of this kind is allowed to exist for longer than one iteration in any code base I find totally unacceptable.

Even one or two weeks might be a very long time but will probably not affect the end customer directly. It hurts the organization though and it must be stopped early. You want a predictable process and that is not what you are getting if you have disruptions of this kind. Because they will disturb you.

Any professional software organization will want to deliver high quality software all the way to the end customer. In those cases I would advocate a ‘zero bugs’-policy and be sure to follow that up with actions. Actions along the line, stop the production of new code and rid the system of existing bugs.

Why is this so important then.

Consider taking a longer trip by car. You will be driving across the country. From one town to another. Your objective is to arrive safe and on time. The adventourus kind will not prepare very much but that kind of behaviour is not appropriate in software development. Nor when traveling the roads with other. The slightest miss can set you back a few hours. Hit a curb and your tire may go flat, forget to fill gas in time or miss an exit and go for a long detour. All these things can be compared to bugs or maybe bad planning. My point is that this slows you down. It lowers your average speed remarkably. A half hour detour on a 10h trip makes 5% of that trip.

Am I telling you to take shortcuts. No.
Am I advocating reckless behavior. No, of course not.

I am simply saying, keep your eyes peeled on the road and your hands on the wheel. Kind of simple. Huh?

Do not let the bugs slip into your system. If they do. Get rid of them or they will come back and bite you sooner than you think!

Going fast for a short time which will force you to go slow at another time is not preferable. Average speed is important. In terms of speed that is the only thing that counts.

In order to improve your average speed: Keep you code base in tip top shape, at all times.

Advertisements

About Ola Ellnestam

Agile Coach, Systems developer, Agile Practitioner and father of three.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s