About Petri Kainulainen

Petri is passionate about software development and continuous improvement. He is specialized in software development with the Spring Framework and is the author of Spring Data book.

Why Continuous Improvement Is Worth It?

When we start a new software project, we are typically full of enthusiasm. The whole team thinks that this time we will be able to avoid the mistakes we made in our previous projects. We dream that this time everything will be perfect.

And then, we wake up.

When the first weeks (or months) are over, we start to notice all kinds of problems:
 
 
 
 
 

  • Our project owner has gone AWOL, and we suspect that he is not as committed as we are.
  • We cannot automate the deployment process because our build script sucks.
  • We notice that our codebase isn’t perfect and it needs to be refactored.

If we fix these problems, do you think that our problems are over?

No. We will notice new problems, eventually. That is why we need to have a continuous problem solving “process”.

The term continuous improvement (or Kaizen) is specified as follows:

A continual improvement process, also often called a continuous improvement process (abbreviated as CIP or CI), is an ongoing effort to improve products, services, or processes.

Kaizen (改善), Japanese for “improvement” or “change for the best”, refers to philosophy or practices that focus upon continuous improvement of processes in manufacturing, engineering, and business management.

Wow. That sounds pretty fancy (bullshit). However, we should not let the fancy definitions fool us.

There are three reasons why continuous improvement is useful to us:

1. It Makes Sense

Continuous improvement is not just a fancy word. It is a natural process which aims to improve our current situation. In fact, we use a very similar process in our everyday life. Let’s think about the following question:

What will you do if a light bulb burns out?

Exactly. You will replace it with a new one.

What will you do if the new light bulb burns out when you turn the lights on?

Will you replace it with a new one or order an electrician to check out if something is wrong with the electric circuit?

That is a tough call.

Often when we solve our existing problems, we notice new ones. Of course this doesn’t happen all the time but when it does, we have to react (or face the consequences).

Sitting in a dark room is probably pretty uncomfortable but continuing a software project without solving its problems can lead to a catastrophe.

Does it really make any sense to take that risk?

2. It Helps Us to Work Smarter

I am a pretty lazy person. That is why I don’t want to work harder if I can achieve the same or better result by working smarter. In other words, I want to eliminate all work that isn’t absolutely necessary.

This is exactly what continuous improvement does for us.

It is essentially “a continuous process” which has three steps:

  1. Identify a problem.
  2. Fix it.
  3. Ensure that it doesn’t happen again.

Problems which we face during a software development project are basically obstacles which causes us extra work (either now or later). Thus, it makes sense to solve them as soon as possible so that we can minimize the amount of extra work.

When all members of our team are committed to solve problems as soon as they are identified, we can do just that.

3. It Helps Us to Eliminate Waste (and Add More Value)

What is the most important responsibility of a software developer?

The obvious answer to this question is:

Write code.

Although programming is one of our responsibilities, it is not the correct answer. The most important responsibility of a software developer is to add value to the customer.

This leads us into waste (aka muda). Waste is an agile / lean software development concept which is specified as follows:

Everything not adding value to the customer is considered to be waste (muda)

This includes (amongst other things):

  • Unclear requirements
  • Slow communication
  • Delays caused by the software development process
  • Unnecessary code and functions

Does that list ring a bell?

The problems which we face during a software development project reduce our capability to add value to our customer. Thus, the sooner we solve those problems, the less waste we create.

Always Be Improving

Continuous improvement is not an easy method to follow. When everything seems to be in order, it is very easy accept the status quo, and stop looking for possible problems.

Ironically, this is the moment when we should press harder and harder. Obvious problems are easier to spot and fix than subtle ones, but those subtle problems cause us the most harm in the long run.

If we cannot identify the problem, we cannot “estimate” its impact or fix it. We are blindfolded!

I am painfully aware of the fact that many software projects are finished this way, and I claim that this is one reason why so many of those projects fails. If we cannot see where we are going, how can we expect that we succeed?

We should choose another path. We should maximize our productive by working smarter and smarter. We must be ruthless and continue eliminating waste even though we are not sure where we can find it.

If we are persistent, we will be rewarded.
 

Reference: Why Continuous Improvement Is Worth It? from our JCG partner Petri Kainulainen at the Petri Kainulainen blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

Leave a Reply


seven × = 21



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close