10 Agile ideas worth sharing
Nearly 20 years into the agile revolution, it’s a given that software development has been inextricably altered by the avid embrace of agile practices. Are large-scale systems engineering initiatives next?
Agile replaces the traditional, linear “waterfall” development model, in which projects are preplanned and fully built out before they are tested, with an iterative process where small parts of projects are being built and tested simultaneously.Companies have embraced agile for a variety of reasons — to boost product innovation, more quickly meet customer demands, accelerate delivery cycles, reduce risk, and improve productivity.
But while agile has a proven track record in software development, it hasn’t been put to the test or used extensively in other types of development, such as?manufacturing or engineering, said Eppinger, faculty co-director of the MIT System Design and Management program.
1. Spiral development cycles
In the traditional waterfall methodology, tasks and deliverables are broken up into staged gates of highly specific processes. Once each phase is complete, the output is reviewed; if something isn’t right, work continues on that phase until the output meets all the specified requirements, and only then does development move on.
By comparison, a spiral model is more fluid and iterative, addressing a problem through multiple passes, and cycling through the various stages of design until issues are resolved in small increments.
2. Time-boxed sprints
This practice splits development tasks into a series of iterations that must be accomplished within a specific time period — two weeks is a common benchmark, for example. Time boxing helps demonstrate progress and keeps everyone working within the same fixed parameters. It’s a concept that can easily be applied to non-software development projects to keep everyone working toward the same set of goals, Eppinger said.
3. Scrum teams
These are groups of individuals charged with working on a set of tasks to meet agreed-upon product requirements by following a common set of goals.
Key to the scrum lineup are the?product owner, who is in charge of requirements and prioritizing tasks that must happen within the sprint cycle, and the?scrum master, whose job it is to enlist new resources when necessary and resolve problems.
While these positions may not exist formally in most teams outside of software development, Eppinger said there are ways to source the roles using existing talent. For example, a standard product manager role could be modified to serve as a product owner, while someone versed in both leadership and project management could be trained to serve as a scrum master.
4. Daily meetings
A key tool in the sprint, daily meetings set the context for the coming day’s work, facilitate coordination, and serve as a forum to address any lingering concerns or problems. Eppinger said there’s no reason why agile’s hallmark daily meetings can’t be leveraged to keep other kinds of product and service development projects on track.
5. What vs. how
This concept separates authority for?what?gets done from?how?it gets done. The product owner prioritizes work based on requirements and maintains a running list of what needs to happen and what is backlogged. The project leader or scrum master ensures that the work gets done using mechanisms like the daily meeting or running interference.
6. Kanban
Kanban is a just-in-time scheduling system developed in Japan that relies heavily on visuals to track real-time manufacturing capacity. There are numerous ways to deliver visual displays of work in progress — from tools like cloud-based?Trello boards?to physical Post-it notes stuck to a wall for all to see in daily sprint meetings. Whichever way it’s accomplished, a visual roadmap is an effective way to keep the team apprised of who’s doing what and what’s been completed, Eppinger said.
7. Feature prioritization
Not every feature or plan is equally important. Agile practices put an emphasis on the prioritization of work so that high-value tasks are first in line. Large-scale systems development projects, which often stall due to the sheer volume of features or tasks that must be completed, could benefit from such a reset to accelerate delivery cycles, Eppinger said.
8. DevOps
Literally a mashup of?development?and?operations, DevOps gained popularity for developing in the cloud, and Eppinger contended it can have merit in other areas, particularly manufacturing and service delivery systems. Instead of a “throw it over the wall" mentality,?the practice involves getting operations and development to work closely together at early-stage design. The alignment allows issues to be resolved quickly and integration to happen continuously.
9. Branch and merge
A practice popularized by?Git, the open source distributed version control system, branch and merge lets people work separately on portions of a system and then combine their work in a way that seamlessly preserves changes.
10. Hybridized agile and planned-staged processes
To scale agile effectively, it helps to combine its principles with traditional development practices, Eppinger said. For example, it’s possible to retain the planning and control elements of the traditional staged-gate development process while allowing for agile execution.