I have released a course on Pluralsight called Agile Fundamentals that talks about Agile Software Development in detail.
Lots has been written about the benefits of Agile methodologies and Scrum for the development team. Articles about the agile manifesto and scrum have encouraged developers to think about iterations, user stories, backlog items and delivering value with rapid defect feedback, but at the end of the day, what’s in it for your business?
In this article I am going to think from the businesses point of view. What’s in it for your business? They don’t really care about iterations, continuous delivery, unit tests and all the other good stuff us developers love. They care about their business and competitive advantage. Especially if there is a danger of a young start-up being disruptive and stealing market share from under your feet.
Faster Time to Market
The first benefit to the business is that of using agile to develop your product so you can get out to market faster by releasing the highest value functionality first. For any product there will always be a huge wish list of requirements that everyone would like to see, but you can always filter that down to the highest value requirements and deliver them to market first.
This can be important for many reasons, first you can start earning revenue from the product sooner, which is great for improving a companies bottom line. Another benefit is you increase exposure to your product earlier. If your system relies on public end users, then you need to start your marketing and promotion campaigns sooner to to raise awareness. Sure, you may only have a limited set of features to start with, but if you focus on the higher value features, then you get start to reap the benefits sooner, and what business wouldn’t want to do that as opposed to a big bang release after a year or 18 months.
The same also goes for internal application releases. At a previous company I worked at we had to deliver a web based call centre tool. Instead of delivering as a big bang we released early and often and brought functionality on-line sooner for the business which meant that although the call centre didn’t have all the functionality they needed from the start, they could start to streamline their processes soon and make some significant time and productivity savings.
Early Return On Investment
Another benefit to releasing high value features early is you start to get a return on your investment. Running a software delivery team is expensive. You have permanent developers and testers, as-well as consultants with expensive day rates. There’s business analysts, project manager as well as other hardware and software costs. These are all costs to the business. By releasing early and generating revenue from your product you can start to offset some of the initial investment in development costs.
On the flip side of that, if you have a more waterfall approach where you end up with a big bang deployment after a year, you may have already spent a large amount of money to fund the development with nothing to show for it until the end.
Another way of thinking about the release early and early return on investment idea is the concept of developing a minimum viable product as discussed in the Lean Startup book by Eric Ries. A Minimum Viable Product can be described as the minimum viable product with the highest return on investment versus risk. A minimum viable product has just those core features that allow the product to be deployed, and no more. The product is typically deployed to a subset of possible customers, such as early adopters that are thought to be more forgiving, more likely to give feedback, and able to grasp a product vision from an early prototype or marketing information. It is a strategy targeted at avoiding building products that customers do not want, that seeks to maximize the information learned about the customer per dollar spent.
The minimum viable product is that version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort. Eric Ries (August 3, 2009)
Feedback From Real Customers
If you release early this means you can start to solicit feedback from real customers a lot sooner. These customers could be public facing customers, or business sponsors. I have worked on many projects where the business customer specifies requirements which you then build only for the customer to want changes once they have something they can use. This always seems to happen. It is very hard for someone to specify a system without having something to play with. You can use prototyping software to help, but there really is nothing like giving them actual functionality early to start using.
One of the principles of agile is to embrace changes in requirements. This should be expected, so giving your customers something they can feedback on sooner will give them an opportunity to make changes sooner without causing too much disruption.
Build the Right Products
As mentioned above, once you start getting feedback from real customers you can start incorporating changes and new ideas from the feedback into the product. It is much more cost effective to make changes early on in a products development cycle than it is to wait until the end once a large release has been made.
It’s not just customer feedback that helps you build the right product. By testing your product early in the market place you can gauge customer uptake to see how popular the product will be. Again using some of the principles from the Lean Start-up, you can use the product to conduct targeted experiments against your customers to learn more about how your system really performs in the market place and feed that information back into the ongoing development cycle.
Everything we have discussed so far as business benefits all culminates in the fact that you should be delivering a better quality product with every release. By releasing early and soliciting feedback you can learn from the product performance earlier and use this information to create something of high quality.
Product and system development is all about continuous learning and improvement which is much easier to do when you are delivering a project by being agile. It doesn’t matter whether you are using eXtreme Programming, Scrum, DSDM, Crystal or any other agile project management frameworks, if you adhere to the core values in the agile manifesto and routinely delivery high value functionality early to your customers, monitor their usage and listen to feedback, you can apply these learnings to the ongoing development and increase quality as you go along.