Improving team performance is as much about attitude as it is about using specific techniques to improve quality. Here, “It Should Work The First Time” caught the imagination of the staff and became a cultural and performance changing philosophy.
In The One Key Step For Success I related how a software organization implemented a basic technique of “testing everything we changed,” and how it went right to the matter at hand and helped to dramatically increase quality. While this technique improved quality directly, a second technique used by the same team improved productivity significantly. Both these techniques taken together, rocketed this software organization up to a new level of quality and performance.
The second technique we used was “First Time.” This was very simple. The first time you compiled your code, it should compile successfully. The first time you executed your code it should work correctly. This meant the complete change, not some incremental part of the code. This was used primarily with software defect fixes and small software enhancements. This was also an environment where a compile required about twenty minutes to complete, and the programmer was engaged “pushing it along” for the entire twenty minutes. Yes, it was a pretty horrible environment by modern software development standards.
I had observed, for example, that a programmer could literally burn up a full day trying to compile her software for the first time. Add a few lines of code, try to compile it, find errors, and do it again. Making four or five coding errors, if caught sequentially, burned up hours of time. I made the challenge that the code the programmer enters should compile correctly the first time.
The same applied to executing the code. The programmer would finally get a successful compile of his code and then test it by executing it. If there was an error, they would then have to analyze the error, make any changes to the code, compile the code and then execute it again. If the programmer made a lot of “simple” mistakes, this process could take a long time. If the programmer put in code that practically worked the first time, this process took almost no time at all.
In the book “The Toyota Way” by Jeffrey Liker there is the notion of “one-flow” or what is now better known as “lean” manufacturing. This is where there is no wasted time between each step of the process, and each step of the process directly adds value to the product being built. While I was unfamiliar with this concept at the time of this initiative, I now recognize that this “First Time” approach had characteristics of what can be thought of as lean software development. In this case, it was a fundamental individual goal of getting it right the “First Time.”
I kicked off the policy by putting my current coding effort up to the standard of running the first time it was executed. Everyone was standing at various communication terminals representing what in actual use would be military terminals spread out over the theater of battle. I executed my code and waited for the results. Suddenly, all the terminals displayed at about the same time, and everyone could see the messages coming in. It had worked. The first time. Success! If the boss could do it, then surely they could do it too.
Later, I discovered to my embarrassment that while all the messages went out correctly, some of them went to the wrong terminals. I was telling the pilot to load certain weapons on his aircraft, and I was telling the weapon’s loader where the target was. I remained quiet about my mistake to keep the standard as high as possible for the team. To this day I still feel a bit guilty, but the results were worth it. “First Time” became a matter of pride for this multinational team of military programmers.
“First Time” is a quality goal that helped individuals to focus on activities that dramatically increased their productivity. It can be applied to any activity done by an individual. Why it worked here was because each simple mistake needed a significant amount of time to fix. Dramatically reducing the simple mistakes, dramatically increased the productivity of the individual. The ability to adopt this technique required making it a group challenge and appealing to the sense of pride of workmanship and the friendly competitive spirit within the team.
Previously “The One Key Step For Successful Improvements.”