While valuable in a number of industries, agile methodology has proven most successful in software development and during the software development life cycle (SDLC). Originating from the twelve core principles of the Agile Manifesto, agile methodology involves iterative processes focused on the continuous monitoring and improvement of deliverables.
Agile processes were developed as an alternative to traditional Waterfall techniques. The Waterfall method is a sequential design process that requires completion of a step prior to moving on to the next one. Conventionally, Waterfall methodology has proven successful in construction; however, for more technical industries, an agile approach holds greater value. Instead of following a step-by-step approach, all phases of a project are completed in parallel. Agile processes attempts to deal with the unpredictable nature of the development cycle by identifying errors and eliminating the need to restart the project completely.
A core principle of agile methodology is satisfying and providing customer value through continuous deliverables. Rather than tackling one big project over a long period of time, agile methods break a project into smaller, simpler and more manageable tasks that can be completed effectively and quickly.
Spotify is recognized for its agile processes: the company’s smallest group unit, called squads, behave as autonomous startups. Each squad focuses on a specific function and iterates based on the minimum viable product, releasing updates early and often. By definition, a minimum viable product is the newest version of a product that allows the team to collect the maximum amount of information needed to determine what works and what doesn’t. At Spotify, each squad handles a small project; however, each projects builds to a common goal of a creating greater customer value.
By delivering a product early and often, organizations are forced to eliminate anything that does not add value. Individuals become experts in certain areas of the development cycle since each small team focuses on one mission for an extended period of time, which helps with identifying and eliminating errors. Whereas with the Waterfall method, feedback is provided towards the end of the project after significant time, money and energy have already been expended, agile methodology allows for changes along the way through continuous feedback. Through continuous feedback and flexibility in terms of adhering to the original plan, adding or changing features keep organizations up to date with the latest developments in their industry.
Tasks in an agile project are driven by iteration. An iteration is a time frame, generally one to two weeks, during which clients’ needs are developed and transformed into running, testable products. A key feature of agile methodology is the assumption that projects consist of a sequence of iterations. Teams can use their velocity to track how much they accomplish during each iteration in order to keep plans realistic and avoid overcommitment. In each iteration, a shippable product is completed after going through analysis, design, testing, quality assurance and user experience. While all the fine-tuned features may be missing, team members should be confident that they could release the product if required.
Several frameworks exist within agile methodology, including Scrum, Lean and Extreme Programming. Most organizations that transition to agile methodology choose to start with Scrum due to its simplicity and flexibility. Scrum projects provide companies and clients with structure for roles, meetings as well as rules. Team members are responsible for learning and adapting processes in order to cope with unpredictability.
Each Scrum project has a backlog or to-do list of work. During the planning phase, the backlog is populated with tasks, goals and a timeframe for execution. After the backlog has been discussed, the project is broken down to sprints, which are one to two week periods aimed at completing a number of backlog items. During each sprint, the team has daily meetings to discuss current progress, future progress and any factors hindering progress. At the end of each sprint, all necessary steps should be completed in the event of a potential product release.
Next, the product owner conducts a review in order to determine whether all stories in the sprint backlog have been sufficiently completed. At this time, the ScrumMaster meets with the team for a retrospective. Team members reflect on their own processes in order to adapt behavior for future sprints. It is crucial the ScrumMaster avoids common impediments and creates an encouraging environment for discussion. Due to the unpredictable nature of software and product development, each sprint is unique and must adapt to change.
Scrum projects are facilitated by a product owner, ScrumMaster and team. During each sprint, the team, which is comprised of self-managing individuals, is responsible for determine and delegating how it will accomplish all the necessary work. Within the team, each member has an area of specialty; however, there are no formal titles or a hierarchy. The ScrumMaster is a dedicated individual who resolves impediments and keeps the team on track while ensuring transparency of the sprint backlog. Lastly, the product owner is responsible for creating and communicating the product vision and decides whether products should undergo more development or are ready to release.
The Bottom Line
Widely used in software development today, agile methodology was developed for work that lacks defined processes. Agile methods, unlike sequential approaches, are not intended for repetitive types of work. Many industries have and continue to implement agile methodology within their business structures.
The agile framework contains multiple subsets, including Scrum, lean and extreme programming, which help individuals deal with unpredictability and flexibility. On the surface, agile methodology can help improve end-to-end processes; however, individuals must be committed, adaptable and able to learn in order for it to work.