Data and Analytics Resources

Provide Confident Assurance to Your Organization

Agile Principle Part 7: Working Software

by Ken Rickard

Dec 11, 2017

Working software is the primary measure of progress

Things that don't work as expected are frustrating. If you ever had the original Nintendo, you remember all those times when the cartridge wouldn't work and you had to keep blowing on the connection pins until it worked.

Let's break this principle down...

Working Software - "Working Software" is the right amount of ambiguous language. It doesn't define what working means, so each implementation can be unique. I would think however that there is a basic core. "Working" should be defined by the people that requested, or will be using the software, not the development team alone. What makes software work is a combination of functionality and quality. This should be the primary focus of development teams. To state that another way...

(Business + Functionality) * (Development Team + Quality) = Value

Therefore... Working Software = Value

The ultimate goal for every company should be generating value. Simply put. Anything that does not contribute to value should be considered wasteful effort. What things at your company get in the way of producing value?

Primary Measure of Progress - The word "measure" is inherently incremental to me. There is even that saying, "Measure twice, cut once". We measure our children's weight and height as they grow, we keep track of all kinds of numbers and statistics in sports year after year, and we create fantasy sports for those of us incapable of playing ourselves. It's natural for us as humans to measure, and keep measuring to make sure we have growing and healthy children, compare ourselves to others to make sure we are the best player we can be, and compete in leagues so we can have the most bragging rights. All forms of measuring progress. Well that last one might be self-indulgence.

In the software industry putting working software into the hands of those that will ultimately use it is the goal. As we have learned in previous principles we should be doing that often, with a preference towards shorter time frames. Their usage and feedback will be the best measure of value and progress.

I'm an avid PC gamer. Game makers typically spend years making games before they are released. They spend the time and money making these games, not really knowing if they will become popular until released. But recently I found something interesting. There are small startup gaming shops, ones who instead of waiting for an entire game to be developed before releasing it, are now creating iterative and incremental games. These games initially have minimal functionality when released. They invite players to pay for the game at a reduced cost, say half price, to play the game as it's being developed. By having people play during development the game maker gets immediate funding to continue incrementally building a fully functional product, and the player gets early game access and the final game at the reduced preview price. The players also get to be a part of the direction the game takes while being built. I've participated twice now in this style of game launch.

It's amazing what agility will do to an industry. How can you apply this approach to the software your company makes?

This 12 part series was published by Ken Rickard on LinkedIn Pulse, to read the original version of this blog click hereTo read the entire 12 part series, click here for a table of contents. 

Interested in learning more about the Agile Methodology or incorporating it into your business? Contact a representative at CCG by emailing info@ccgbi.com or call (813) 265-3239.