What started as a software development method has turned into an ideology. It was born out of a desire to establish an approach to project management that is not only iterative and flexible but, at the same time, values and shows consideration to people involved in the project. It promotes continuous improvement and takes advantage of opportunities available at any stage of the project. Agile Management and Agile methods embrace change and acknowledge it as an essential element of the business.
When using the Agile method, large projects are broken down into smaller portions, called iterations or sprints, which are more manageable and will produce something of value. This should have a defined result or product and should be something that can be launched and gain feedback from its stakeholders.
- 12 Principles of Agile Project Management Part 1
- The Backbones of Agile Part 2
- Comparisons Between Agile vs. Waterfall Part 3
- Misconceptions About Agile Management Part 4
- The Pros and Cons of Agile Management Part 5
- The Agile Product Roadmap Part 6
- 6 Agile Project Deliverables Part 7
- Keys to Successful Agile Projects Part 8
The Agile method was born between 11th and 13th February 2001 at The Lodge at Snowbird Ski Resort in Utah’s Wasatch Mountains. In this ski-lodge, 17 software developers met to find an alternative software development method that was not documentation-driven and didn’t overly focus on the process. These gentlemen advocated a project management approach that delivered excellent results by operating in an environment that considers people as the most important, and not just the ‘most valuable asset.’ This meeting gave birth to what we know now as the Agile Manifesto.
The Agile Manifesto values the following:
Individual interaction over processes and tools
The Agile Method values customers more than a set of standards. It takes into consideration their needs, insights and feedback. It acknowledges that human interaction tells you, as a developer of any product or service, how to create something that will truly respond to the needs of the clients or customers.
It also places importance on the collaboration between the customer and the developer. The method also allows for changes during the development process, if the client or the developer see the need to integrate them into the project.
Working software over comprehensive documentation
Often, software developers spend an enormous amount of time working on technical specifications and requirements, test plans, design documents and in securing approval for all of them. This happens before any work on the actual software can be done. When translated into a business perspective, the Agile method believes that it is more productive to focus only on fundamental processes that contribute to the production of a valuable product. As much as is possible, processes that do not add value to the end product should be eliminated.
Customer collaboration over contract negotiation
During a contract negotiation, the client and the developer talk about the specification and requirements and agree on timelines and costs. When the customer negotiates, his participation is usually limited to the pre- and post-development stages. The Agile method encourages customer involvement in the development process. This way, both the client and the developer can make adjustments during the project, based on what the client requires and what is feasible. If there is any misunderstanding, it can be immediately clarified and any errors immediately rectified. The result is an efficiently developed product conforming to the client’s preferences and requirements. Neither the client nor developer will have wasted their time nor effort.
Responding to change over following a plan
One of the favorable things about the Agile method is its responsiveness and flexibility to adapt to changes at every iteration. The Agile method views changes as opportunities to further enhance the product. Even if there is a plan to be followed, companies that have adopted the Agile method are open to amending the plan. They can easily modify the process to fit the team or the circumstances rather than doing it the other way around.
12 Principles of Agile Project Management
The 12 Principles of Agile Project Management accompany the Agile Manifesto. These 12 principles serve as a guideline or framework for those who would like to adapt this project management method.
Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
At the end of the day, what the customer will see is the product. It is the result of all the processes that the developer went through. It is the sum of all the knowledge, skills, values, and principles that the developer has.
In Agile project management, the most important thing is that the company produced something valuable for the customer and that it was on time.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Everybody knows that change is inevitable and it may come at a time when you least expect it. If a company or developer is not ready to incorporate changes within the product he is developing now there is a significant possibility that this particular product will already be outdated by the time it is complete.
Delivering working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
Most projects are well-documented. It is not a bad thing. However, if it hampers the development of a product, it is probably time eliminate those processes. There are also times when the developer or company spends so much time planning for the product that they find themselves cramming when the deadline approaches.
Again, what matters, in the end, is a final, working product.
Business people and developers must work together daily throughout the project.
Collaboration between the client and the company or developer should be as frequent as possible to ensure that the product being developed adheres to the requirements. Consistent cooperation and coordination between the client and developer are also necessary so that they can immediately address issues as they come up.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Micromanagement does not work well in the Agile project management method. The Agile process is keen on delivering valuable results—on time. Hovering above team members and tracking what they are working on at a given moment will only distract them, causing delays in the delivery and completion of the project.
Want to make sure that your team can deliver on time? Hire the best people.
The most efficient and effective method of conveying information to and within a development team is a face-to-face conversation.
Communicating directly with the person concerned is the fastest, most efficient way of passing on information, instruction, and feedback. If the team handling the project is a virtual team, it is important that they have a definite schedule of meetings where all team members are available. This practice will ensure that all members of the team get updated and receive the same instructions.
Working software is the primary measures of progress.
After everything has been said and done, the final measure of success is whether the product is works the way it should. If it does not work properly, no matter how hard the team worked, no matter how skilled the team members are, or how efficient the processes were, if there is no working product, then all of that is immaterial.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Long projects risk burnout among Agile teams. Teams should be working at a speed which is comfortable for every member to avoid burnout. It should be fast enough to deliver end products on time, but gradual enough that team members can keep up without too much overtime work, but not to the point that they may get bored.
Continuous attention to excellence and good design enhances agility.
With an Agile method based on iterative processes, there should be an improvement in the product at the end of every iteration. The process shall result in a final product that has undergone a rigorous development process.
Simplicity—the art of maximizing the amount of work not done—is essential.
The Agile method is a straightforward process. It frowns upon elaborate procedures that are not necessary for the completion of the final product or result. The simpler the process, the closer the gap is between stages of product development.
The best architectures, requirements, and designs emerge from self-organizing teams.
As previously mentioned, micromanagement does not sit well with Agile teams. With less supervision, these teams work independently and armed with the proper knowledge, skills, and tools to enable them to complete the job on time. They should also be capable of making decisions on their own, especially on crucial matters that need to be resolved quickly.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Agile teams, aside from being independent and fully-equipped to accomplish the job on their own, should assess their previous performance, analyze what they have done well, and where they might have gone wrong. If their last job was a hit, they should not rest on their laurels but, instead, commit to improving themselves further and become better versions of themselves.
The Backbones of Agile
The Agile method can be further structured by employing project management techniques such as Scrum and Kanban. If Agile is a soda, Scrum and Kanban are soda syrups that add a different flavor, aroma, and user experience. Each has its distinct features that address varying customers’ preferences.
Scrum is a structured framework of the Agile method. It is an incremental work methodology that specifies how each work process is done. Responsibilities are divided between three roles—product owner, Scrum master, and the team. It breaks down projects into smaller portions called sprints which are allotted two to four weeks to be completed.
Scrum requires that the team be disciplined and the members are self-motivated. Since each sprint has a specific duration, team members should be able to produce what needs to be delivered for that particular sprint. Otherwise, they run the risk of being branded as unreliable.
Kanban, on the other hand, is an Agile management technique that is less structured than Scrum. It is more relaxed than Scrum; which can be seen from the fact that there is no set time for sprints. There are no assigned roles beyond that of a product owner, and it requires team members to focus on the task at hand. Kanban helps manage the flow of project process.
At the center of its process is a visual board that helps visualize the progress of the project. Each column represents a step in the process flow. Tasks and work items are written under each step. The columns can be named as “To Do, Doing, and Done.”
Kanban also believes that zeroing in on the current task at hand makes the team execute it more efficiently opposed to multitasking approach that can spread the team’s efforts more thinly.
Although they are both “flavors” of Agile method, they are different in some ways. In Scrum, each team members have a defined role whereas Kanban encourages collaboration and team members are allowed to fill in positions which they think they can perform well.
Each sprint in Scrum is supposed to produce an essential result while products and services under Kanban are delivered on an as needed basis, depending on the pre-determined due dates.
Both techniques use a “pull system.” In Kanban, team members “pull” work when they are ready or as soon as they were able to complete their previous task. However, in Scrum, an entire batch of work is being “pulled” for each sprint or iteration.
Kanban also allows modifications to be made while the production process is still ongoing and encourages the products’ continuous improvement until its completion. Conversely Scrum discourages changes while a sprint is in progress.
In the Kanban system, productivity is measured based on the total time it takes for the whole project to be completed. Scrum, on the other hand, measures the speed of completion of each sprint, since the next sprint can be started only when the previous one has been completed.
Agile Versus Waterfall
Waterfall is another widely used project management approach. This method is an exact opposite of Agile. Under the Waterfall approach, work processes happen in sequence—the team cannot move on to the next step unless they have successfully completed the previous step. They also cannot go back to the previous step to rectify a mistake. If work needs to be redone, it must start again from the beginning.
The Waterfall method requires a meticulously detailed plan. The customer should review and approve the plan and the specifications before the design can start. This will result in expectations on both sides being managed well.
Compared with the Waterfall method that only requires customers’ engagement at each milestone of the project, Agile encourages customers’ participation at each stage of the project.
The Agile method sees changes as opportunities and will work around them, even it results in rising costs and extended schedules. whereas the Waterfall method only allows changes when the contract provides for such.
The Agile method is focused on producing results that work, even if those results are partial. The Waterfall approach ensures that whatever was agreed from the start will be delivered, even if the budget cannot fund 100 percent completion of the project.
The Agile method may work best if the odds are in its favor. On the other hand, contract constraints may hinder adjustments in a project which uses the Waterfall method of management. It is still best to push for an agile process of project management because of its flexibility and its openness to accept and work around changes. However, the Agile method may not work in a situation where everything and everyone is bound by fixed contracts which cannot be modified once the project has begun.
Misconceptions About Agile Management
Despite its flexibility, there are some who are afraid to employ this project management method due to various misconceptions and misgivings about the Agile approach.
It is unpredictable.
Unpredictable results do not only occur in Agile projects. Since none of us can tell the future, nobody can tell exactly how a project will end. The beauty of it is that the Agile method handles unpredictability well. It embraces the fact that there will be changes—whether the trends are technological, environmental, economic, or societal in general—and that the project can be easily steered towards these unpredictable changes.
Only the developers get to decide on how the product will turn out.
The Agile method highly encourages customer’s participation at every stage of the project. This means that he and the developer can collaborate and exchange ideas on the features of the product. This interactive collaboration is promoted so that the customer and the developer can decide and act in real time on the requirements of the project and they can immediately troubleshoot, should there be a need for it.
The Agile method only has a short-term vision.
Products resulting from an Agile project are built to be used long-term. Since the product has to undergo several launches and received feedback at each stage of the project, it has been improved and enhanced several times. Its shortcomings will have already been identified and addressed.
The Pros and Cons of Agile Management
The Agile method can quickly adapt to changes
Since this method works in short sprints, planning cycles can easily integrate changes which take place at any point of a project’s duration. Shorter cycles also allow for fixing of trouble spots. Moreover, because the project is open to changes based on current developments, customers are assured that what they will receive in the end is an up to date product which will work, whatever the circumstances are.
Customers are assured of high-quality products
Since product development undergoes short, iterative, and manageable processes, developers can concentrate on producing a high-quality product which has been tested several times until it reaches its final form, if not perfection. Before releasing the product to the customer or the public, problems were already addressed, and bugs were already fixed.
Customers are deeply involved in the project
Because the client participated in the project early on, he can share his insights and ideas, make immediate decisions, and address concerns about the project. He will be accountable for what the end-product turns out to be and, at the same time, he will have ownership over the results of the project. Developers will also have an easier time working on the project since they can directly communicate with the customer or the end-user and they will have a chance to listen to what the client needs or wants.
However, just like any other project management approach, there are also disadvantages in employing the Agile method.
Timelines may not be met
The Agile method’s flexibility is an advantage, but it is also a weakness. While it is good that Agile is not tied to fixed plans or documentation and that it can quickly adapt changes, it may also mean that the adjustments result in delays.
Moreover, when there is an extension of the timeline, it also entails additional cost
When time frames are not met, there will be additional days to be paid to the team, extra overhead costs and other financial setbacks that will occur because specific deliverables and milestones were not produced on time.
Customers may not have the interest or time to participate in the development process
It is possible that the client opted to outsource the development of the product he has in mind because he simply does not have the time, resources or technical know-how to produce such a product. He may not even be interested in how it will be made or whether his specifications were followed. If that is the case, the client might just find the process bothersome and time-consuming.
The Agile Product Roadmap: Value to Every Step
Saying that the Agile method doesn’t give importance to long-term planning is a myth. Just like any project management method, the Agile method project starts with high-level planning which lays out what the project needs to achieve or accomplish in the end.
Stage 1: The Product Vision
Everything starts with an idea. Unless there is a concrete image of what the result should be, the following stages of the project cannot be completed. The vision should spell out what the result should be, how it should work, and how it will benefit those who will use it.
Stage 2: The Product Roadmap
At this stage, the requirements of the product and the general timelines for each are identified. Planning and brainstorming at this point will take most of the time allotted to create the product roadmap.
Stage 3: The Release Plan
It is now time to identify the timeline for releasing a working version of the product. There will be some releases since we are talking about an agile project. The sequence of these releases will give priority to the most important product feature that needs to be tested down to the least important one. The Release Plan is created at the beginning of each release.
Stage 4: The Sprint Planning
The team now plans for each sprint or iteration. At this point, they will determine what requirement or features will be developed during a particular sprint and will start creating the product. Planning takes place at the beginning of each sprint.
Stage 5: Daily Scrum
Priorities for the day are established and coordinated at this point. The team may also conduct meetings which will last for not more than 15 minutes daily to discuss what needs to be accomplished within the day, the previous day’s accomplishments, and team’s issues and concerns about the project.
Stage 6: Sprint Review
The working product created during the sprint is now presented and demonstrated to the stakeholders.
Stage 7: Sprint Retrospective
After the product presentation, the team will convene and discuss the previous sprint and the issues they encountered. They will also plan for the next sprint.
Agile Project Deliverables
Aside from the final product itself, an Agile project uses six artifact deliverables that they also need to develop. These deliverables will be the basis of how they will monitor the progress of the project.
Project vision statement
A statement of how the product will contribute to the success of the organization or how it will help the customer.
A list of what the project will cover. The project scope is listed according to priority.
A high-level view of the product requirements, the roadmap sets a general timeline for the development of each element.
A plan detailing the product feature to be released and the target date of release.
A list of the goals for a particular sprint, including the user’s stories, that will guide the product development for that sprint. A user story shows how a particular feature will address the needs of the customer.
A user story is stated in this way:
As a (role), I want (desire) so that (benefit).
The list of product features already created at the end of each sprint.
Keys to Successful Agile Projects
The Agile method is beneficial when employed in a project. It can be more efficient when the following elements are observed;
In almost everything, constant communication with the people concerned makes everything easier, clearer, and smoother. Transparency is important in every process to avoid uncertainty and doubts. In an Agile project where changes are apparent, it is important that adjustments are known to the team so that everyone is updated and knows what they are supposed to do.
Communication should not only be among team members. The Agile method strongly stresses collaboration. This means there should also be constant and open communication between customers and developers.
All people involved must understand and believe in the product vision. They must also be committed to the success of the project as they are the core of it. A plan will remain an idea until it is acted on and it is the team who will turn the concept into a working product.
Although planned actions are not the main features of this project management method, Agile projects still need to be well-planned. Teams must know what they want to develop or achieve at the end of the project, including the functionality or features which need to be integrated within that product. They should also determine what they need to do to achieve their goals.
Read our in-depth article about Agile methods to learn more.