Picture this: You want to renovate your house. Naturally you start by envisioning what it should look like when it’s done. You hire an architect, a designer, and a contractor. You all agree on the plan, the timing and the price.
Then you plan an extended vacation at a remote location, with little to no access to phone or email, with these final words to your reno team: “Good luck folks, I expect a perfectly renovated first floor upon my return and if you have any questions along the way, simply refer back to our agreed upon plan. See you in six months.”
Maybe there are a few intrepid souls who have done just this, but for most of us (especially those of us who have lived through a reno already), the idea of not being around to check in on progress – at least every other day – leaves us in a cold sweat.
For good reason, we’d be uneasy at the prospect of such an important project in the works without our involvement to ensure the result will be exactly what we’ve planned. Our participation not only provides oversight, it gives the contractor regular opportunities to check for clarification and address the (guaranteed) unexpected.
And yet, this is precisely how a huge number of software development projects are executed. Clients put a ton of time and effort up-front doing detailed requirements gathering and building scope documents, only to walk away until development is complete.
Delivering great software and the definition of “done”
When it comes to software development, the goal is always to deliver to the client the solution they need.
Senthuran Sivananthan is Architech’s Practice Lead, Search & Information Discovery. He sums up effective delivery as: “Being able to deliver value to the customer.” That sounds pretty obvious, but there are a lot of not-so-obvious things that need to happen in order fulfill this definition.
“Managing risks, being on-time and on-budget, and staying open to the customer while maintaining the ability to pivot quickly in reaction to changing market conditions are all part of effective delivery,” Sivananthan says. “Delivery begins long before we develop a single line of code.”
Architech’s Agile development process is designed to give customers maximum transparency. Every one or two weeks, we begin a new “sprint.” As the name suggests, these are short and fast rounds of development that give us the opportunity to show customers how the work is evolving, but more importantly, it gives customers the ability to offer feedback – a critical part of successful delivery.
“This continuous feedback loop lets us understand how the customer sees the project evolving and provides opportunities to address risks that may arise,” Sivananthan says.
Your home reno should follow the same process for the same basic reason: Whether it’s lines of code or bricks and mortar, making modifications based on customer input is easier by orders of magnitude when done at regular intervals than at the end of the project. Staying agile throughout development saves time and money, and ensures that if the conditions under which the requirements were identified should change, your solution isn’t locked in to an obsolete model.
Stay Agile, stay relevant
Sometimes, with an iterative development model such as Agile, clients wonder, “When do you actually deliver the software solution?” The answer can often surprise them: we’re continuously delivering.
Because automated testing is a part of our development cycle, every one or two weeks sprint we’re able to deliver fully tested components of the solution in progress. Those components might not be in their finished state, but what they’re capable of doing actually works, or as Sivananthan puts it, “After every sprint, we have something that can be potentially shipped.”
Essentially, it’s similar to your contractor demonstrating which light switch causes the roughed-in pot lights to turn on and off, long before the drywall is up or the switch-plates installed.
You can already see the way this process can identify risks and opportunities quickly and efficiently, but there are other benefits, too. Some solutions simply couldn’t be delivered any other way.
Take for instance, Rogers One Number. When it launched, it was a first in the Canadian marketplace, giving customers unprecedented flexibility in how they managed their voice and text communications. Behind the scenes, it’s an intricate technology platform that seamlessly blends services from a variety of vendors.
Our Agile development and delivery methodology let us build the Rogers One Number platform in a way that maintained maximum flexibility – a key benefit when working in such a dynamic environment. Better still, Rogers was able to bring the first version of the product to market quickly, knowing that they could continue to release improvements as customer feedback dictated the product’s evolution. The result: one of Rogers’ most successful consumer products.
“It’s a case of a customer following the same Agile methodology to collect continuous feedback as we used to develop the solution in the first place,” says Sivananthan. Traditional development techniques could never have provided this level of speed and agility.
We’ve previously discussed the idea of Creating Software Joy™, and to us this means both great software and a vastly improved process for delivering it. Great software development and delivery takes a customer-first approach, embracing innovation and experimentation, applying Agile methodologies where appropriate, validated learning and Lean thinking, and being able to release a top quality product on demand. This is how we bring our clients’ great ideas to life, faster.
Contact us to see what’s possible for your organization today.