Agile project management has emerged as an optimal alternative to traditional project management models like Waterfall. Why is that?
Although software development methods have become more popular since 1957, it was not until the 1970s that “Agile” was first discussed in more depth by William Royce, who published an article on the development of large software systems.
Later, in 2001, Agile’s manifesto “Formal statement of 4 key values and 12 principles guiding an iterative and people-centred approach to software development” was approved and published by 17 software developers.These developers got together to discuss lightweight development methodologies based on their combined experience.
Now, Agile is also attracting CEOs, becoming a common method in project management. With a unique implementation method, showing flexibility and dynamism, Agile brings useful values in the management strategy of each business.
Agile overview: What exactly is Agile?
The concept of Agile (short for Agile Software Development) means a flexible software development method, applied in the software development process with the goal of bringing products to users as quickly as possible.
Many people define Agile as a method. In essence, Agile is like a methodology, a philosophy based on more than iterative and incremental principles.
Today, the Agile philosophy has gone beyond its traditional area of software development to contribute to a change in the way of working, management, and production in other industries such as manufacturing, service, sales , marketing, education … and become the most popular project management method today with many representatives known as “Agile family” methods.
Agile does not define a specific method but there are many different methods that satisfy and follow its criteria. The table below lists 13 Agile family methods, it also shows that the majority of companies today are already using Scrum as a basic approach.
Besides, many companies have combined the methods together. For example, 44.4% of companies use Waterfall, which means that a certain percentage both use Waterfall and use Scrum in their activities.
4 principles to follow in Agile method
- Individuals and interactions are more important than processes and tools: The focus is on people, building interactions and support among team members. Competent members who support each other in their work will bring success to the project.
- Better useable products than full documentation: Concentrate time to make complete software that perfectly meets customer requirements.
- Collaborating with customers is more important than negotiating contracts: Understand what customers need to advise and adjust products instead of just relying on the terms of the contract.
- Respond to change rather than stick to a plan: Agile encourages adaptation to change, be it changes in technology, personnel, deadlines, etc.
12 important principles in Agile
- Fully meet customer needs through early delivery and valuable products.
- Changing requirements are welcome, even late in development.
- Deliver working software to customers on a regular basis.
- Business people and software engineers need to work together throughout the project.
- Build projects around motivated individuals. Provide the necessary support, work environment and confidence to get the job done.
- Face-to-face communication is the most effective way of communicating information.
- The main measure of progress is how well the software runs.
- Continuous and sustainable development.
- Improve flexibility by taking care of engineering and design.
- The art of maximizing unfinished work – simplicity is essential.
- Self-organized group.
- Adapt frequently to changes.
Features of Agile
- Iterative: The project will be implemented in iterative segments (Iteration or Sprint), usually with a short time frame (1-4 weeks). In each segment, the development team does all the necessary work such as planning, requirements analysis, design, implementation, testing to produce small parts of the product.
- Incremental & Evolutionary: At the end of the segments, the team produces small pieces of the final product, which are usually complete, workable, well-tested, and usable. Over time, one segment after another, these executables will accumulate, growing until all customer requirements are satisfied.
- Adaptive: Because segments last for a short period of time, and planning is also constantly adjusted, changes in the development process (change requirements, technology changes, changes in orientation to goals etc.) can all be met in an appropriate manner.
- Self-organizing and cross-functional team: These team structures assign work on their own without relying on hard descriptions of titles or working on a clear hierarchy within the organization. Self-organizing teams have enough skills to be empowered to make decisions, self-manage and organize their own work to achieve the highest efficiency.
- Empirical Process Control: Agile teams make decisions based on real data rather than theoretical calculations or presuppositions. Agile shortens the feedback lifecycle for easy adaptation and increases the flexibility to control the process, and improve employee productivity.
- Face-to-face communication: Agile is not opposed to documentation, but appreciates face-to-face communication rather than paperwork. Agile encourages the development team to talk directly to better understand what the customer really needs. In intra-team communication, Agile encourages direct communication and agreement on the design of the system and jointly deployed into the required functions.
- Value-based development: One of the basic principles of agile is that “good performance is a measure of progress”. Agile teams often collaborate directly and often with customers to know which requirements have higher priority, bringing more value as soon as possible to the project.
Why is Agile project management more effective than traditional methods?
For its advantages
Agile was originally created for the software development industry to help streamline and improve the production process. Thereby, developers can identify and correct problems and defects quickly.
As an alternative to the traditional Waterfall approach, Agile provides a management approach that helps teams deliver a better product faster through short sessions and interactive sessions/sprints.
With increasing customer expectations, constant competition requires finding project leaders who can use the best approach to project execution.
- Make changes easy: Because the project is divided into small, separate, independent parts, changes are made very easily, at any stage of the project.
- No need to know everything from the beginning: Suitable for projects that do not have a clear end goal, as this is not necessary in the early stages.
- Faster deliverables: Breaking projects down allows the team to test pieces, identify and fix issues faster, resulting in more consistent and successful handovers.
- Pay attention to customer and user feedback: Both customers and end users have the opportunity to contribute ideas and feedback, thereby having a powerful and positive influence on the product final.
- Continuous Improvement: Agile encourages team members and customers to provide their own feedback, so that different stages of the end product can be tested and improved as many times as needed.
However, Agile has a few disadvantages
- Difficulty in project planning: It is quite difficult to determine the exact delivery time of the final product, as the project is broken down into different parts and each part has a separate delivery time.
- Detailed instruction and training is required: Agile methods are much more complex than traditional methods. They will need to undergo training and guidance to be able to grasp the method clearly, especially at first.
- Less documentation: Since Agile varies so much, the proper documentation is also often overlooked, as expectations and deliverables are not clearly defined from the outset. While documents are not the most important factor, they are still essential.
- Collaboration is required for project success: This requires a commitment of time from both parties for the duration of the project that other project management structures do not always require. There must be active user involvement and continued collaboration for it to work.
- High Cost: The cost of implementing Agile method is usually a bit more than other development methods.
How to apply Agile in project management model?
Traditional cumbersome methods like the Waterfall model often require project teams to meet and discuss full project goals throughout each phase. However, Agile uses smaller teams that are focused on achieving more specific goals, making it easier for you to implement the rapid changes required.
This allows teams to be more agile and efficient, and increases their ability to successfully meet customer goals, especially as customer needs change.
A complete Agile process
The product development stages are broken down into specific user-interactive increments. As a result, the product will get the feedback it needs to avoid serious problems and get better.
In addition, this iterative product management process allows the team to move on to another growth while the problems of the current growth are resolved.
What type of project does Agile fit into?
Agile is suitable for projects that require flexibility and have a degree of complexity or uncertainty. For example, a product or service has never been built by the team.
Agile was born in the field of software development. The stages in the Agile model are suitable for software development and testing. Today, however, the Agile philosophy has gone beyond its traditional area and contributed to a change in the way of working, managing, and producing in any industry or business such as manufacturing, service service, sales, marketing, education and high efficiency.
However, not all businesses fit the Agile model. To successfully apply this model, a number of prerequisites are needed in the organization:
- Firstly, members coordinate and communicate effectively internally. Good communication skills help the team understand customers, cooperate well with each other to ensure quality and speed.
- Second, the autonomy of each member must be ensured so that self-managing groups can operate in an active and smooth manner instead of just following the instructions of their superiors as in traditional models.
- Third, activities are modularized through cross-functional groups. These teams are capable of working with speed and high quality, with the customer at the center
Challenges when applying Agile
In fact, there are businesses that have applied Agile for 5-7 years but are really still unsatisfactory and in general are still in the state of “new bottle but old wine”. Project teams still want to apply Agile, but there are many teams that only apply Agile to avoid the complex process system of the enterprise or the huge volume of documents of the project.
This is not surprising, as while Agile looks simple to understand, it is very difficult to master, especially in a large enterprise. One main reason is that Agile focuses a lot on human factors including culture, communication, collaboration between stakeholders, ability to work as a team. And changing culture and human behavior is never easy.
To solve this problem, hiring a good Agile coach is essential. Only people with the right mindset, deep understanding of Agile, and a lot of experience and coaching skills can help businesses or project teams approach Agile the fastest. The training process takes from 3 months to 1 year or longer depending on needs.
Agile streamlining the number of management documents has improved product development speed. Instead of using lengthy documents that not everyone has time to read, Agile fosters interaction among team members, with customer feedback, imagination, programming, and experiments, and new ideas.
These factors will contribute to finding the right solution when there is a sudden change instead of sticking to a plan and not being able to cope when a situation arises.
However, adopting Agile is not easy, it depends a lot on the flexibility of the leader himself. Bringing Agile into the business is not like a project, it is a big change to corporate culture and human resource development strategy.