Agile literally means “able to move quickly and easily”. In project management, Agile is a methodology that is popular in the computer industry.
A “methodology” is simply a way to do something. It is the methods, techniques and approach to getting something done. There are several different project management methodologies, and Agile is one of the most-used.
Agile is best understood in terms of how it differs from more traditional methods for project management.
As we’ve covered, traditional project management is characterized by a linear (step-by-step; sequential) approach that usually has some or all of these broad steps:
- Initiation (starting the project).
- Planning.
- Execution.
- Monitoring.
- Completion.
Agile project management methodology, first introduced in the late 1980s, is characterized by a non-linear approach. Instead of being completed in the “Planning” step, requirements and solutions evolve throughout the process through collaboration between self-organizing, cross-functional teams.
Execution of project work is done continuously throughout the life of the project. Agile methods involve adaptive planning, evolutionary development, early delivery, and continuous improvement. Agile encourages rapid and flexible response to change.
This method is increasingly popular and is often used to manage the process of creating software. It focuses on teamwork and finishing one feature of the software at a time (fully) before moving onto the next.
We covered some of the primary data and terms related to project management. Now let’s look at some concepts and words that apply to Agile.
In summary, Agile is a method of project management that focuses on dividing tasks into short phases of work, with frequent reviews of the project and adaption of planning mid-execution as needed. An Agile approach is flexible and less rigid than some other methods of project management.
One of the characteristics of Agile is that it’s incremental.
INCREMENTAL DEVELOPMENT
An increment is a small step. Incremental refers to moving forward in stages.
Incremental development is a practice where software is designed, deployed and tested incrementally (a little bit more added each time) until the project is completed. Each step builds on the previous with additional advancements.
ITERATIVE DEVELOPMENT
Iterative means performing repeatedly.
Iterative development refers to developing software through repeated cycles (iterations). These cycles each accomplish some sort of a minimum viable product. For example:
First iteration: Create a basic homepage.
Second iteration: Add the ability for a user to create an account and log in.
Third iteration: Add the ability to change your password.
Fourth iteration: Add a page that displays account information.
One of the actions included in Agile is a regular meeting called the daily standup. Let’s look at what this is.
DAILY STANDUPS
Daily standups are a daily meeting involving certain employees who are working on a project. It is meant to last 5-15 minutes. Often the attendees actually stand up. This is meant to encourage participants to keep the meeting short.
Each person tells the group the answers to these three questions:
- What did I accomplish yesterday?
- What will I do today?
- What obstacles are impeding my progress?
Daily standups help ensure that obstacles to getting your work done are identified and handled rapidly.
The whole purpose of project management is to complete tasks . Let’s go over how these are tracked in Agile.
PRODUCT BACKLOGS
You may have heard the word “backlog” used to refer to work that is overdue or should have been done already. For example, if you didn’t answer your emails for a month, you would have a backlog of emails.
In Agile, a backlog is slightly different. It simply means: work needing to be done. Any work that is supposed to happen is considered a backlog. Often it refers to upcoming work that has not yet been assigned to a worker or a target completion date.
For example, if you were making a software program that would allow you to manage the members, vehicles and schedules for a car club, you would break down what you had to do in order to implement those functions into many individual tasks. That list is your backlog. As you completed items, they would be removed from the backlog.
Now let’s cover how Agile manages time.
SPRINTS
A sprint is a set period of time (usually 1 week, 2 weeks or 30 days) where a specified amount of work is assigned to get done.
Sprints begin and end with meetings where tasks are assigned and reviews of past performance are done.
Agile breaks up projects into sprints. During each day of a sprint, daily standups occur where the progress of the project is covered.
The sprint goal is the key focus and overall product of a particular sprint. It is also referred to as the theme.