Not that long ago, any kind of software or technical development followed a lengthy project management cycle that took months or even years to complete. Defining a complete and detailed scope up front and following a step-wise approach to produce one product were the norm. However, this approach often led to missed expectations - either the end result arrived too late, or by the time it arrived the requirements had changed.
With the expansion of technology, needs rise and change rapidly. Companies depend on digital solutions to be developed quickly and iterated often. Thus, the advent of agile development.
At its core, agile development is a series of short, iterative cycles that speed time to initial use, prioritize enhancements, and build up capabilities over time.
The goal is not one major milestone, but a series of smaller milestones that build upon an initial version. This initial version of a product then gets into the hands of end users faster, with regular and frequent enhancements. There are many resources that walk through the formal cycles and process, we like this overview by Smartsheet.
Below we break down the key concepts that have the biggest impact in real-world web and mobile app development.
What problem are you trying to solve?
This is one of our favorite questions to ask, at the beginning and throughout any project. It is easy to get lost in the myriad of "nice-to-haves", aesthetic qualities, and nitty-gritty features that may or may not impact the end user.
With any development, but especially when working through agile cycles, it is most important to keep the problem you are trying to solve as your single north star.
The "problem to solve" forms your use case and directly guides the overall function of whatever software or app you are developing.
Features may come and go, but the function - the core of what this solution does - is always the most important.
If you are a start up or new business, the function also defines the minimum viable product or MVP. It is the minimum required functionality that is needed to make the software or product useable. You can always build upon a solid foundation!
Sprints are a critical element of agile development.
A sprint is a (1) set period of time for (2) a team to complete (3) a defined scope of work, often resulting in something tangible and setting the stage for an effective next sprint.
As outlined above, there are three components to an effective sprint.
A prime benefit of agile development is the ability to start small and scale your product.
One of the more challenging, yet ever critical components of agile is defining an overall direction, breaking out scope into right-sized sprints, and flexing based on changing needs or priorities.
When it's done right, a proper agile-oriented scope that allows your product to scale can eliminate waste and create efficiencies. The inverse is true when you have an overloaded or understated scope.
Remember - the power is in the journey!
We have a few tips for making this happen:
Do you have a beta? We're not talking about the fish*.
The key to achieving success with agile development is to shorten the overall development time and get a viable product quicker.
This means that you will want to start with an initial version, or a beta version, that can be tested in the real world. After beta, you will have ongoing versions of your app or digital product as enhancements are identified and implemented (hopefully) quickly.
It's okay to put a piece of software out there that is not 100% perfect. In this instance, perfect is the enemy of the good.
A good product with proper expectations set and in the right hands can help you effectively iterate the features, which could save you time and money (and reduce extraneous features).
*yes, the fish is actually spelled "betta" but we couldn't resist a good pun.
In traditional project and product management, there are a series of structured milestones and a final implementation or end point.... which is a great time for team recognition and celebrating.
With agile, there may not be an end or perhaps not a well-defined end.
This can create burn-out across your team as the end of each sprint marks the beginning of a new one. Additionally, it can hamper the effectiveness of your teams if you are not stopping regularly to provide reward and recognition.
Our final piece of advice - find the highlights to celebrate with your team along the way!