With the advent of the new millennium, the Agile approach to project management also emerged. In less than 15 years, the little-known alternative to the waterfall has become a way of managing, which is now used by the vast majority of companies operating in the IT sector.
Agile methodologies are a group of interrelated methods characteristic by the breakdown of projects into time cycles, so-called iterations. They offer considerable flexibility. This allows the change of requirements during work, as well as implement frequent feedback.
1. Requirements and specifics of the Agile
The progress of some projects cannot be assumed. For example, software development consists of not particularly predictable processes. Therefore, a notable dose of adaptability is required. The Agile methodology carries the ability to respond flexibly to changes in requirements based on constant feedback from end-users. The processes running simultaneously are equally important, contrasting the linearity of the nature of the waterfall.
Like other methodologies, Agile is built on three constraints. The fixed time is one of the necessary prerequisites. Available resources are a determining factor, while the scope and priorities remain the object of planning.
Agile development is not a cascade of processes but is based on a breakdown into clearly defined, consecutive time cycles called iterations. The goal of each such addition is to produce a functional part or a product. In the meantime, you can change the workflow as needed. However, greater emphasis is placed on teamwork, responsibility and communication between the team and the client. Close cooperation brings harmony between the final product, customer needs and project objectives.
2. Agile development cycle
Agile is the homeland of development in cycles. Although stages can be identified in various ways, we traditionally encounter a combination of planning, design, development, testing, evaluation and deployment. The phases are very flexible, which means as many processes as possible should be completed in parallel - repeatedly and in any order. In conjunction with frequent communication, getting feedback is easy and already workable during the course.
Planning - mostly includes an analytical part that evaluates the feasibility of a project and defines the requirements of stakeholders. This phase also determines the project team, individual functions, and in particular, it divides the creation of the deliverables into smaller units.
Designing - based on the specified requirements (e.g. usage method, type of users, etc.) a technical analysis is carried out, which in detail says what the solution is supposed to look like.
Development - sometimes referred to as the coding or implementation phase; it involves the actual realisation of a particular product. Code creation according to specified requirements and conditions.
Testing - when the code is written as required, it is necessary to test it accordingly. Functionality is reviewed as a whole, in parts and with integration into the chosen environment.
Evaluation (review) - precedes the handover of the final deliverable to the client. It serves as a comparison and evaluation of how the reality meets the requirements.
Deployment (launch) - a fully prepared product is ready, delivered and installed by the customer to go live. However, the project does not end there; it goes into the maintenance phase - i.e. to guarantee a smooth operation and to respond to possible problems.
3. Advantages of the Agile and project types where it fits
Adaptability, or if you want flexibility, is one of the primary weapons Agile is equipped with. The ability to adapt is crucial for many types of projects. Agile does not shy away from changes, even accepts them and works with them at any time during the project. And without disrupting the overall process. As a result, it is not necessary to know the specific final deliverable at the beginning; the ultimate goal of the project is only clarified during the process itself. Time is the only determining factor from the start.
Breaking down into individual iterations brings a lot more benefits other than just easier management. Although at first glance, it may seem that splitting the development and conducting testing separately on every single part will be more time-consuming, it is not so. The quality of deliverables increases, errors are identified and solved faster, and changes are much easier to implement. Also, continuous priority scheduling allows you to change the order of delivery of items to match the preferences and importance. Last but not least, we must not omit to mention the reduction of project riskiness by creating subdivisions. In particular, the risk that the deliverable will not meet the ideas and needs of the client can be largely reduced.
Agile not only supports feedback but welcomes it with open arms. There's nothing better for a customer than having their opinions heard. Close cooperation with the project team has a real impact on the end product. It is typical for a client or another interested party to change their requirements based on particular situations, such as changes in the market. The emphasis is also on our teamwork - high level of information, communication and interaction. Agile also improves with every iteration. Incoming feedback, whether from users or team members, at any stage of the project and subsequent implementation of this acquired knowledge, makes it easier to work in the future.
Summary of benefits:
- flexibility, elastic response to changes, reorganisation of priorities,
- regular processing of feedback,
- it is not necessary to know the specific objective of the project,
- breaking down into sub-parts, easier handling,
- continuous testing and control, higher output quality,
- reducing the riskiness of the project,
- continuous improvement between iterations.
- projects for which the final product is not clearly defined,
- projects where clients or stakeholders require the ability to change requirements,
- projects where we expect changes to come during the process
- for project teams whose members are capable of independent and adaptable work,
- projects with a fast deployment requirement.
4. Disadvantages of the Agile and its risks
It may look like Agile bears only positives; that is not entirely true. Instead, it can be argued that it balances the shortcomings of traditional methodologies. Nothing is just black or white, so Agile has its pitfalls. This applies specifically, for example, to the issue of predictability and planning.
Due to the flexibility itself, there is often a phenomenon when the final product is noticeably different from the initial idea. Since an agile project does not necessarily have a definitive plan incorporating a specific objective at the beginning, it is appropriate to reckon with some differences in the deliverables. Each realised iteration based on client feedback mostly means a deviation from the original idea.
Understanding and adopting a methodology is an essential prerequisite for the proper functioning of Agile. Not only by the project manager but by all the members of the project team. Thorough training at all levels of the organisation gives people the ability to apply agile techniques to all aspects of the project. Agile teams tend to be small, but individual members must be well informed and qualified. The highest success rate with Agile is achieved with the full-time commitment of the development team to the given project for the entire duration of the project.
Agile does not naturally rely on deep-rooted initial plans. Estimation and planning thus lack specificity, and even a fixed delivery date can be challenging to determine correctly. Changes to task priorities, activity reevaluation, or movement across iterations can push the entire timeline, and deliverables may not be completed on time. Without detailed planning, it is all the more difficult to estimate the budget - it has to be built on the duration of the individual activities.
As far as documentation is concerned, Agile emphasises clarity and brevity. Although it is more moderate than traditional methodologies, it is impossible to forget at least the basics. It's about finding a compromise between the written and spoken form. Agile is not suitable for projects that require quantity in the detail of the documentation processed before the actual start.
Summary of disadvantages and risks:
- significant differences in the final product,
- qualification and training at all levels of the project team,
- acceptance of methodologies by the whole team, emphasis on information,
- less predictable, less specific planning, complicated budget estimation,
- time-consuming, commitment for team members throughout the project,
- only brief documentation.
5. Agile in real life
The Agile approach is currently a trend and is enjoying the limelight deservedly. More and more companies, including multinationals, are moving towards flexible project management solutions. According to the PMI Institute and its research conducted in 2017, up to 40% of the monitored used agile methods on a daily basis. If you also count the occasional users, you get to 71%, with the actual numbers being even more substantial. However, not everyone is ready for such a fundamental change and quickly fails in the transition itself. It is necessary to prepare well for the transformation. It is essential to understand all the requirements, fully adopt agile techniques, evaluate and choose suitable projects and invest sufficient time.
Since Agile was initially created for software development, the question is whether it can find applications in other industries. Many techniques and procedures can be applied to any field, precisely the way you need. Examples include stand-up meetings, visualisations, prioritisation or regular sprints and retrospectives.
The Agile is now booming not only in the technological field, where such giants like Google, IBM, Microsoft, Apple or Spotify represent it, but also in banking, namely ANZ - Australia & New Zealand banking group.
Where it makes the most sense:
- IT sector, software development,
- business, marketing,
- human resources,
6. Agile in conclusion
Adequately set and driven Agile brings a lot of benefits together; otherwise, it can become a roadblock on the way to more efficient processes. You can undergo Agile transformations in their entirety, or you can only accept certain elements gradually. It is necessary to choose those methodologies which will individually suit your team, company and environment. If you expect a large number of changes, if you do not have a clearly defined end product, or if you are working on a complex project, Agile can be a great helper.