I’m painfully aware that over using quotations from business leaders is becoming tiresome. That said, when writing this piece one quote stood out. The quote is from Steve Jobs who said “A lot of times, people don’t know what they want until you show it to them”. This sums up one of the benefits of Agile development, although with a caveat.
“We don’t know what kind of racing bike we want-until we see a champ in the Tour de France ratcheting the gears on a particular model. We don’t know what kind of speaker system we like-until we hear a set of speakers that sounds better than the previous one. We don’t even know what we want to do with our lives-until we find a relative or a friend who is doing just what we think we should be doing. Everything is relative, and that’s the point. Like an airplane pilot landing in the dark, we want runway lights on either side of us, guiding us to the place where we can touch down our wheels.”
Our customers know what they want and they’ve usually got very firm views on what this looks like. But along the way it’s great to make changes.
This is what agile development delivers. We deliver projects in small but tangible stages. Each stage has a deliverable and each stage has something that can be tested and used. Want to change the field label from “Client” to “Customer” – sure, need to alter a workflow because a process has changed – no problem.
The net effect of this approach is to deliver the project our customers want. All projects change along the way, it’s the nature of the beast. Agile development means we take time to consider those changes before it’s too expensive or too late.
Agile software development methodologies date back to the 1970’s as a response to large sequential software development projects that failed to deliver as problems and issues were baked into the code. Issues were spotted too late as rigid project plans are followed without sufficient checks on progress throughout. Structured software development is a valid approach with numerous successes. It’s just not for us.
We approach a client need by first understanding what they want to achieve. This encompasses the inevitable collision of business process and technology with a few performance improvements thrown into the mix. We look to advise and guide as much as possible – without wanting to sound big headed – we’ve done this before and hope to add creative thinking wherever possible.
Then we break down the solution into multiple deliverables, all with an eye on the end goal. We review each deliverable and make any necessary changes. Quite often we change field labels, sometimes its business logic that needs to be tweaked. At each stage we look to get it right and build for the next deliverable.
To throw in some jargon, agile development uses the term “scrum” to describe a management framework of roles, responsibilities and “sprints” which are the individual work packages. Work is reviewed at the end of each sprint with a defined process for sign-off and conflict resolution.
Agile development is really simple for us. It gives us happy customers and helps us deliver work that makes a difference. Our customers seem to enjoy the process as they’re intimately involved in the creation of their software tool, forming and changing along the way to make sure they get the most from their efforts. It’s a great team building process and highly rewarding for all involved.