Changing Business Requirements? Not a Big Deal if You’re Agile
Agile Development for Rapid Delivery of Software
Busy teams know the importance of finding new ways to work smarter. Agile is a practice anyone can learn, and it can help your team:
- PRODUCE MORE using less
- ADAPT to changes easily
- LEARN new ways to improve
What is Agile Development?
Agile is a type of Lean process for rapid software delivery. Software development and engineering teams use the Agile methodology, which follows an iterative approach that allows teams to adapt to changes quickly by receiving continuous feedback from the business owner and/or stakeholder(s). Continuous feedback ensures that the work being done is correct and is representative of the most up-to-date business requirements.
Maintaining flexibility in adapting to change is the most important characteristic of an Agile development team. Because business requirements for software development projects can be so volatile, the ability to work iteratively, receive feedback and continuously improve are vital. These make up some of the core principles that form the foundation for how Agile development teams operate.
Practicing Agile is a continuous learning experience. Whether you are in a position to begin practicing Agile or not, a willingness to learn about Agile methodologies and how to introduce them to your company is the first step to becoming familiar with the concept
Agile Development Methodologies
There are several subsets of Agile, or Agile methodologies, that each tie back to the principle of iterative work cycles. Agile methodologies include:
- Extreme Programming (XP)
Let’s explore each of these types of Agile development methodologies and see how they differ.
Scrum is a term borrowed from rugby used to describe a team initiative that is carried out collaboratively and as a single unit comprised of team members working together to accomplish a shared goal. Software development lends itself well to Scrum as a work method, which is why development teams represent the largest group of Scrum users.
Kanban is another subset of Agile that is also an iterative methodology primarily used in software development. However; Kanban is also widely used in other fields of business that emphasize continuous improvement. The manufacturing industry is one example where teams have found tremendous value in the Kanban system.
Unlike Scrum that uses prescribed phases, or sprints, to signal when to begin on any portion of work, Kanban uses note cards (sticky note, signal card or virtual “card” on an online kanban board) to signal when work is ready to begin. This means that the phases of a project are more fluid, enabling work to be delivered continuously and allowing for more course corrections along the way.
Depending on the specific needs of a team and how well the current methodology is working, project managers may choose to either identify a new Agile development method or develop one of their own using a mix of principles and practices from each subset. Scrumban is a hybrid Agile methodology that was developed over the years by combining elements from both Scrum and Kanban.
Agile XP (Extreme Programming)
Extreme programming (XP) is an Agile process for software development that emphasizes customer satisfaction through quality and the ability to respond quickly to changes in customer requirements and technology. Now that technology is evolving so rapidly, multi-year software development projects can become obsolete if a development team cannot keep up with the pace of change. This change is not only driven by the technology itself, but by changes in the business climate that affect requirements.
Benefits of Agile Development
There are many benefits to practicing Agile in a team setting. With Agile, you can expect your team to:
- Focus – Complete smaller portions of work more efficiently
- Efficiency – Provide clear feedback to all team members using an Agile approach to status meetings
- Adaptability – Adapt to changes in a more cost-effective way than in a traditional Waterfall approach
- Visibility – Improve processes and procedures by using Agile methods to identify issues and track productivity
- Savings – Reduce the overhead cost to managing projects
The history of Agile can be loosely traced back to the 1950’s when the first incremental software development methods were formed. By the 1970’s, adaptive software development processes became known along with Evolutionary Project Management (EVO), a concept now known as Competitive Engineering.
Many of the first incremental software development methods evolved into what would become known as heavyweight Agile methods. The heavyweight methods were waterfall-oriented and criticized as being overly regimented, overly incremental and prone to micromanagement. The waterfall process is a development model that emphasizes sequential design and was adapted from the construction and manufacturing industries. Waterfall was heavily used by software engineers and software development teams until the 1980’s when more lightweight Agile models, such as Scrum and Kanban, began to emerge as predominant in the software development industry.
Striving for a less regimented approach, software development teams borrowed some of the principles from waterfall and from other incremental processes to form variations of Agile, including Rational Unified Process, Scrum, Crystal Clear, Extreme Programming, Adaptive Software Development, Feature Driven Development, Dynamic Systems Development, Kanban and Scrumban.
Agile is a set of principles followed by software developers and project managers whose focus is iterative development, customer satisfaction, continuous improvement, efficiency and productivity. As with any other discipline, Agile takes practice, and having the right tools to help you practice agile makes it easier to manage work in an Agile environment.
Most Agile teams use a combination of tools to help them manage projects. Some of the most common Agile tools include:
- Project management and project tracking software
- Kanban boards
- Scrum boards
- Online collaboration software
Image from Mountain Goat Software and Mike Cohn.