This blog post is the first in a series where we wanted to delve into what we think it takes to identify, design, build and deliver a software product today.
Long ago, we worked together to achieve a shared common goal. We roamed the land to gather food and shelter to survive. We developed a way to communicate with each other and we collaborated to learn, adapt and continually improve They would have been simple goals, met by simple means, but pretty agile.
Some time later, countries and economies grew and prospered on the back of the Industrial Revolution. This was the birth of management and control and the loss of agility.
Now we're in the Information Age or Revolution, where businesses employ knowledge workers. Knowledge workers are you, your partners, your colleagues and peers that endeavor to create great solutions to customer, business, social, economic and world problems.
Knowledge workers apply analysis, knowledge, reasoning, understanding, expertise, and skills to often loosely defined and changing needs. These businesses and workers need methods and techniques that cannot be met by old Industrial Age processes and procedures.
Agile supports interactions.
Virtually no business can confidently set out upon a software product at the beginning and know all that it needs in order to deliver valuable working software without change. Change presents both opportunities and risks to the success of a product. Unmanaged opportunities can mean the difference between a great company and an awesome company. Unmanaged risk spells disaster and ruin. Agile manages change.
Agile enables change.
Adopting agile allows you to be responsive to changing or new requirements. It empowers development teams to be the experts and make decisions supported by an engaged, trusting, and informed business. It enables you to deliver to customers what they really want. Ultimately, it puts you and your organization in control of delivering high quality valuable software that delivers on customer need and expectations whilst extracting a return on your investment dollars as early and often as possible.
Agile generates value.
There is a cost to adopting agile. It doesn't come for free. Transforming to an agile approach for software delivery can be a hard path to follow. However, if you internalize the agile philosophy, tread carefully, engage the right team with the right attitude, break things down, make it achievable, realistic and respond to feedback, you will reap rewards.
Agile promotes collaboration.
The following lists some benefits you can expect:
- Speed to market
- Earlier revenue generation
- Regular delivery of real value
- Protection for your investment
- Data, data, data
- Better product quality
- Manageable expectations
- Predictable outcomes
- Greater customer satisfaction
- Higher performing teams
- Improved visibility
- Transparency confidence
- Manageable risk
“ Success is not final, failure is not fatal: it is the courage to continue that counts.”
Winston Churchill may never have actually said this, but I think it's a pretty good summation of agile. We know agile is the best foot forward for most digital products. It encourages you to strive for success, but we always iterate and keep building on it. Agile will encourage you to fail, but fail early and move on. Having the courage to continue and to build the right solution based on insight informed by your customer is what brings the reward.
The thing to keep in mind is you can tailor Agile to your needs. Use the methods, techniques and governance that are right for your business. Wherever you start, be true to the content, context, and spirit of the method you use - keep it vanilla.
If you're just starting out - Learn. If you've been doing it for a while - Understand. If you're becoming awesome - Apply. Finally, if your business and your products are complex and interdependent - Govern. Over time, you and your teams will figure out what works best for your business, just do it quickly enough to protect the return on your investment.