Connect with Us

Search for:

What is Agile Software Development?

Written
by Segue Technologies
on August 24, 2015

You may have heard the term “Agile” more frequently these days, especially in the world of IT. So what’s all the buzz about? Agile is a method of developing software solutions, including websites, web applications, and mobile applications, that focuses on delivering high-quality working software frequently and consistently, while minimizing project overhead and increasing business value. Stick with me to learn how an Agile software development approach can improve the effectiveness and quality of your next software development project.

During our 20+ years as IT Professionals, we have all too often seen projects that are over budget and over schedule, while not always providing value to clients and their users. At the same time, we recognize that IT projects are often complex, requiring a deep understanding of our customer’s goals, challenges, industry, and customer needs and expectations. To address these challenges and opportunities, more and more software development projects are turning to Agile. In our experience as Agile Teams, we have seen the ability of Agile methodologies to dramatically improve results, while also increasing client and team collaboration, engagement, and satisfaction.

The Agile Manifesto

The Agile Manifesto, originally written in February 2001 by 17 software developers, states:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over Processes and tools

Working software over Comprehensive documentation

Customer collaboration over Contract negotiation

Responding to change over Following a plan

That is, while there is value in the items on the right, we value the items on the left more.

While there have been criticisms that the Agile Manifesto is outdated and does not reflect the emergent realities of software development, nevertheless its core values still influence modern Agile practices.

The Agile Approach

While there are many implementations of Agile methodologies, the most common steps in an Agile software development approach are:

1. Discovery

It’s important to understand a client’s vision and background when starting any new project. Agile software development projects start with a series of DiscoverySessions and research to understand a client’s goals, challenges, business climate, and customers and users. These sessions include key members of the project team including the client, project manager, designer, developer, and product owner to ensure a shared understanding across the entire team.

2. The Product Backlog

During Discovery, the team works together to create a high-level Product Backlog, a wish list of all the features that would be useful to the client and their users. The product owner works with the client to prioritize these features, determining the order in which the features are elaborated, developed, tested, and delivered. By allowing the client to determine priority, the team stays focused on delivering the highest value features before moving on to lower value features.

3. Iterations

After ensuring the team understands the client’s vision and has created a high level backlog of features, the team delivers features through a series of time-boxed iterations called Sprints. These are fixed durations of 1-4 weeks (depending on the project size and duration),each delivering a subset of the overall product backlog.

4. Continuing the Cycle

Additional Sprints are conducted as needed to deliver additional features and incorporate feedback from previous iterations, reviews, and user beta testing. Each successive Sprint is both Iterative, providing improvements to work completed in previous sprints; and incremental, adding new features to the system.

Incorporating Agile methodologies into your software development process can have a big impact on the overall success of your program, as well as the interim usefulness of your development and investment. Feedback and correction can occur quickly to fix small glitches before they become big problems. Communication throughout the process is also improved by the Agile approach to project management. Overall, Agile provides a lean and effective model for the successful development of software.