Key Concepts in Agile Development

Author by Leah Shea

10 minutes
Tags: software developmenttechnology
Share:
Key Concepts in Agile Development

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.

1) Function Over Features

what's your problem post-its

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!

2) Time is of the Essence: Effective Sprints

time is on your side clock and calendar

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. 

  1. Set period of time. There is no standard answer here. Each product will have its own development cycle - some products may require 6 week sprints, while others require only 2. The time will depend on many variables and boil down to the project core - time, cost, and quality. However, once an appropriate period of time has been set for a product's sprint cycles, it is important that the sprints stay consistent across. 
  2. Team. A differentiator in agile development is the team involved in the product - it should be multi-disciplinary to ensure that nothing is missed, as each sprint is crucial to timely delivery. The team also needs to be in regular communication to ensure that everyone is on the same page. Communication mechanisms should not be limited to formal meetings, which is where platforms such as Slack and Microsoft Teams are important.
  3. Defined scope of work. Let's be clear - a defined scope does not mean you should spend weeks or months defining every detail. You need a basic roadmap for what you want to achieve (refer to #1 function over features), and then break out the work into sections that are relatively quick to complete with tangible outputs. Work for a sprint may include defining requirements, but there should be a result that leads to efficiencies or a component of the project itself.

3) Scope to Scale

not too big, not too small building scale

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:

  • Set a firm direction, but don't be rigid. It's okay to define a set of sprints, and then change or correct course as needed. Just be sure that you are always prioritizing function and your primary use case.
  • Take time to discuss or document your learnings from each sprint as you prepare for the next one. With the right team in place, listen to each other about what's working and what's not. 
  • Iterate often! The goal is not to have all of the answers but rather to enable continuous learning and gain efficiencies along the way. 

4) The Power of Versioning

beta make a version fishDo 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.

5) Celebrate Highlights Along the Way

celebrate your success dog with hat

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.

Beware!

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!

  • If you accomplish a win within a sprint, call it out and do a team "happy dance".
  • Recognize your super stars that are making your sprints successful.
  • Take the team to a celebratory dinner after or before a meaningful sprint.

Welcome! This site uses cookies to make sure you get the best experience. You can read how we use cookies in our Privacy Policy. By clicking "Accept" or continuing to use this site, you accept the use of cookies. Browse confidently and safely!
Accept