You may have seen it before: teams of people file into a conference room and they don’t sit down; rather, they stand. Maybe you’ve seen Post-It notes adorning a hallway labeled with “To Do,” “Doing,” and “Done,” with smaller notes arranged below. These activities are part of an operating philosophy that has changed how software development is done, and is making its way into mainstream business. It’s called Agile.
Agile development isn’t a new concept. Until the practice was carried over, only smaller organizations were adopting the approach. Large enterprise-level companies, and more importantly the government, were just catching on to its value proposition.
In 2001, when representatives from different parts of software development community convened to discuss ways to improve processes, the Agile methodology was born. An alternative to documentation- driven software development, the movement resulted in the Manifesto for Agile Software Development (“Agile Manifesto”). In summary, Agile empowers people to collaborate and make team decisions through continuous planning, testing, and integration.
Agile can be considered a philosophy. To help achieve agility, there are a spectrum of tools or practices that Agile practitioners utilize, like Scrum and Kanban. Regardless of what approach a company chooses, there are certain rules.
For example, the “stand up” meetings and Post-It notes mentioned above are part of Scrum “ceremonies.” There’s even a devoted role – the Scrum Master – for ensuring Scrum ceremonies or rules are followed. Scrum breaks down the development process into iterations or short cycles of development, with the intent to deliver a bit of working software in each iteration. The Scrum team demonstrates this functionality to the customer and project stakeholder after each iteration. This allows the customer to provide timely feedback. In summary, Agile calls for adaptive planning, evolutionary development, timely delivery, and ongoing improvement. Agile also encourages flexible responses to change requests.
Three Wire’s Technology Services team is extensively using Scrum to fulfill a number of projects, including the Family Advocacy Program Network (FAPNET), Air Force Family Integrated Results and Statistical Tracking (AFFIRST), and (formerly) Military Community and Family Policy (MC&FP). There are also Three Wire Scrum teams working on the Army OneSource (AOS) and Federal Labor Relations Authority (FLRA) projects. Using Scrum for these projects presents an advantage for the customers and for the development teams. Customers get their applications quicker as compared to products delivered via more traditional “Waterfall” methodologies, and they get to make more intimate decisions on the look and functionality of the software product. On the delivery side, development teams are empowered to use the most innovative development tools and approaches.
After each development cycle, Scrum teams take time to learn how to improve their team’s performance. The Agile practice of reflection, collaboration, and adapting to change may be suitable for any business team seeking delivery efficiencies, e.g. relative to a more traditional command and control mindset.
Mark Meenahan, Three Wire senior developer, says performing product backlog grooming – another Scrum activity – is an essential and valuable process that benefits the team: “It allows the team members to collaborate on missing details that allow effective story estimation and prioritization.”
Developers aren’t the only employees that have found value in Agile concepts. Systems administrators use Kanban to prioritize and track work. The process is very simple and effective: the team uses an online tool to move tasks between three phases; To Do, Doing, and Done.
Agile techniques can also be employed across non-software development business applications and models, such as customer and staff engagement, etc. That said, Agile applications may not be suitable to some organizations and/or software development programs. Nevertheless, software development methods, including newer iterations of Agile – e.g. Business-Driven Development, Human-Centered Design, and Continuous Delivery – are sure to evolve in results- driven product and services business environments.