The software industry is maturing. Over the last decade:
- We learned that agile, iterative approaches are far more successful than driving software development from a requirements document.
- We learned how to engage users during development.
- Users have become much more knowledgeable, confidently using consumer and business technology every day.
Startups Lead the Way
Startups are showing corporate IT and established software vendors new ways to innovate and deliver successful software. Startups had no choice — they had to change. Following repeated failures it became obvious that the notion of “build it and they will come” was a recipe for failure.
Build it and they will come | Agile |
---|---|
|
|
The startup community has learned from countless startup failures where products were developed in stealth mode, with sophisticated features, and launched years later with a ‘big bang’ only to discover no-one wanted it.
Minimum Viable Product
Now, smart startups build an early version and get it into customers’ hands as soon as possible. This helps them
- Prove what customers will use and how
- Learn which parts are most important
- Focus on making core features work well
This early build is a “Minimum Viable Product”
- It is a viable solution i.e. it works
- It includes the minimum needed to solve the core problem and no more.
- It is a product i.e. a customer could buy this.
The agile approach embraces rapid iterations. To get a great solution you will need to iterate many times. So don’t waste time trying to perfect the first iteration. Get people using it as soon as possible.
- No lengthy meetings or design documentation.
- Focus on main use cases for core users
- Keep momentum and enthusiasm going
Later on, you can:
- Add minor features and handle exceptions
- Build for scale and optimize performance
- Design and polish UI elements
Corporate IT Adopting Agile
Larger businesses appreciate how nimble and innovative startups can be. They cannot change course so quickly or take extreme risks, but they can cherry pick approaches that are proven to work.
Corporate IT teams are adopting Agile methodologies and best practices in many areas. The customers are internal, but the concept of a minimum viable system is just as important. For internal systems to be successful, they need to be ‘sold’ like a product and solve customers’ problems.
Ideally, an IT team can use a software environment to rapidly create and iterate solutions. Creating applications in days or weeks – not months or years.
They need to focus on the business data, business logic, business process where they can add value. And not waste time creating databases, writing code, designing forms, reports etc.
Let’s look at how an IT team could quickly build a minimum viable system, without spending time on infrastructure or coding.
Example
In this example, Jane is creating a sales forecasting system. If successful it will be rolled out globally across the firm. It will be used by thousands of people for hundreds of products in over 100 countries.
First, she wants to build a minimum viable system. This will be a prototype for strategic products in 5 European countries. Country directors need to enter forecasts for the next 3 years for 10 products. The forecasts need approval by the regional VP.
To build this she starts with the data
- A list of countries and who will enter the data
- A list of the 10 strategic products
- An example sales forecast
Then she creates datasets with this data — like this…
Build a System in 3 mins.
Jane can then quickly create a view for country directors to add forecasts just for their country and a view for the VP to accept or reject each forecast.
The key here is that a minimum viable system like this can be built very quickly. People find it much easier to give feedback on what is needed if they can see and use it for real while the idea is still fresh in their minds.
Rapid Development
By focusing on the data, large organizations can deliver new systems quickly and efficiently. User satisfaction is far higher as these systems rapidly improve following real user feedback and quick iterations.
After the core functionality is established and proven, then decisions can be taken about refining the system:
- Adding minor features and cosmetic improvements
- Optimizing performance and scalability
- Providing user help and documentation