Product development requires the delivery of value on a regular basis. Agile, when used to develop web and mobile products, facilitates the effective delivery of five key outcomes. These outcomes are critical for any product to be successful.
Clear Executable Strategy – By clearly defining what you want and categorizing this into a clear backlog based on priority, you have a clear direction. By tying this backlog into a clear simple vision for what and why you are building these features, you get a compelling product that continually delivers value to your users even as their expectations change.
Small, complete interactions, Sprints, also change how you think about releasing. No longer is there pressure to squeeze every last thing into a release because if you don’t it will be six months or more until it can be released. With Agile if something isn’t ready, it’s not a problem. It just waits until the next sprint. Since the software is ready to deploy after each Sprint, when you deploy becomes a business decision not a software decision.
Inspiring User Experience – Today, products must have an inspiring user experience worthy of the brand that they are built under. For most products, users can switch to a competitor with a simple Google search. This makes inspiring your users and not frustrating them critical. The user experience includes the aesthetics, but also how it functions and its ease of use. To accomplish simple, intuitive and beautiful interfaces takes time and iterations. You need to make assumptions and test those assumptions. You need to iterate. Further, the user experience designers can’t act in a silo, they need to be working hand in hand with the developers so that everything works seamlessly. This is what Agile does so well. It gets everyone working together focused on a small part of functionality in a Sprint. This collaboration and focus has the best chance of delivering an inspiring user experience.
Higher Level of Quality – Quality used to be defined by “does it work?”. Today, not breaking is table stakes. You have to be able to cover all perspectives of quality. From security to performance and compliance, quality is much more than just “does it work”. Years of research shows that the most inefficient way to get a higher level of quality is to build everything and then test it all at the end. This causes rework and surprises which impact quality and deadlines. Pressure on deadlines invariably leads to poorer quality in a rush to just get it done. Instead, using tools and automation you can verify your quality across many perspectives during each iteration. This finds issues early, increasing efficiency and quality. Agile therefore, by forcing smaller interactions, gets working software out faster and at a higher level of quality.
Predictability – Predictability is about delivering what you say you are going to deliver when you say you are going to deliver it. Predictability is typically needed at the macro view to communicate to stakeholders: from customers, to senior management and stockholders. Iterations get you predictability. If you have a prioritized backlog that can be release after each iteration builds the foundation of predictability. It allows demonstrated functionality early and often, after each Sprint. This builds confidence and allows you to deliver what is done on a date. This approach allows you to deploy on time with the worst case scenario being some less important features not included.
- Comprehensive Support – Once in production you need to focus on making the performance of the end user experience great. This means being proactive as well as reactive. So many support organizations get tied up in reactive work of addressing problems. Further, so many support organizations focus on metrics that indicate the performance of the user experience, but they fall short on focusing directly on those indicators. Metrics like incident rates and uptime while important are only important in the context of your end user performance. If users don’t use the system in the middle of the night then you shouldn’t care if you are down during that time as long as you are back up before morning.
As we discussed above in strategy, agile allows you to deploy much faster. This means that support issues can be addressed more quickly by enhancements and new features instead of work-arounds. Further, if your support team focuses on the end user experience then automation and monitoring can be incorporated to catch issues before they become problems. These features aren’t directly attributed to agile, but agile makes these easier to do.
Products today need to deliver enhancements and quality faster than ever before to keep up with changing markets. Agile allows you to do this while increasing efficiency and developer happiness and ultimately delighting users and stakeholders. It is therefore a win for all parties: the team, the business and the end user.