Agile
What is Agile methodology
Agile is an adaptable project management methodology based on collaboration with the team and stakeholders. Within the definition of Agile, all workflows are also divided into stages, forming a single cycle until the product improvement is fully completed. This cycle always includes planning, implementation, and evaluation of results, broken down into iterations (popular synonym - sprint) and sequential development steps. This approach gives the team a holistic view of the final product and a stable, organized solution for specific tasks from more straightforward to more complex.
One of the characteristic features of Agile is that this methodology guarantees a high level of employee involvement, since in the Agile development process, the team meets regularly, communication with the customer is maintained, and all progress details are carefully highlighted. In addition, Agile allows, if necessary, to increase the duration of iterations and return to the previous or set new ones with new tasks if additional problems or conditions arise during development. That is why Agile project management is intended primarily for organization in IT and software development or technological products.
Agile manifesto
In 2001, seventeen IT professionals went to a ski resort in Utah, where they enjoyed skiing and eating out. However, at the same time, this company of specialists got unexpectedly engaged in the systematization of approaches to software development, as a result of which they called themselves the "Agile Alliance" group. As a result, although the Agile methodology still needed to exist (they came up with just the name), the Agile Manifesto was developed - a short document that lists 12 principles of effective software development. This document was a response to the growing need of the IT community for an alternative approach to working with technology to facilitate team management and documentation. The Agile Manifesto concretized the principles upon which the modern Agile methodology was based.
12 Agile principles
The Agile Manifesto includes the following principles:
-
First, the main priority of any development is customer satisfaction.
-
Changes are permissible and are required even at the last stages of development if they allow you to improve the product and strengthen the customer's competitive advantage.
-
The product should be demonstrated to the customer regularly at different stages of work, so dividing these stages into the shortest periods is preferable.
-
All stakeholders in the project must work together as a team daily throughout the development period.
-
Team members need to a comfortable work environment, be able to handle tasks independently, and receive any necessary support.
-
The most effective way to convey information is face-to-face communication.
-
The project's success is primarily determined by the working software used to implement it.
-
The project's development should be consistent and sustainable at a single pace with the possibility of extending deadlines.
-
Continuous technical improvement and product design improvement can provide maximum maneuverability.
-
Minimizing unnecessary work also contributes to the success of the project.
-
The most epic architectural solutions and design ideas come from self-organizing teams.
-
The team should regularly adjust their work and discuss ways to improve the product at the team meetings.
Key components and tools of Agile
The following tools can be used to implement Agile effectively:
-
User stories in Agile are a simplified description of potential users, their requests, and needs, which are entered into the "blocks" and are the basis for building the next "floors" of the framework. User stories ensure that the team achieves the order's goals and satisfies future product customers' needs.
-
An Agile board is a team collaboration tool that visually represents current, completed, and future tasks and their progress in solving them. This board is up to the step for all team members and can be created online using cloud programs and offline directly in the office.
-
A product backlog is a list of all the features with a brief description that the product should have in the final result. They can also be used for marketing.
-
Spike is an activity format an Agile team uses when encountering an unknown and unexpected task during a sprint. This activity can include a variety of ways of analytics and discussion, from brainstorming to clustering the team's choice.
Agile ceremonies
Agile ceremonies, or, more simply, team meetings, are regular and usually take place daily to discuss the readiness of their current tasks and problems. At large meetings, which are held twice per sprint (at the beginning and end), it is also part of the process to conduct a retrospective to examine the outcome of the sprint. Everyday meetings never last more than 15 minutes and are aimed only so that team members can share the difficulties that have arisen and, if necessary, jointly develop a more comfortable and practical work route, which, in addition to improving the quality of the result, also promotes involvement and strengthens relationships within the team.
Agile vs. Scrum
Since Agile and Scrum are parts of the same whole, they are often considered synonymous. Thus, the Agile definition is a theoretical methodology, a philosophy of work that defines its values and principles. Scrum, however, is a set of tools that allows you to put Agile principles into practice.
Although Agile can use other methods as tools (for example, Scaled Agile Framework or Kanban), Scrum tools are most often borrowed. For example, iteration or sprint is just one of the components of Scrum, as well as the designation of the Master, Product Owner, and other roles.
Agile vs. Waterfall
Agile and Waterfall are two completely different approaches to project implementation. If Agile product management is iterative and flexible, based on cycles and the alliance of all participants in business processes with each other, as well as allowing changes and new tasks, then Waterfall is its opposite.
The Waterfall methodology is strictly consistent, based on the principle of "release train," and does not allow the possibility of returning to past iterations or adding new ones. Although the stakeholders also work together, they are deprived of independence and freedom of action. Due to its linearity and conditional limitations, Waterfall is a more straightforward work methodology. However, it also includes design and planning project implementation, definition of requirements, development of necessary elements, quality control, and maintenance.
Agile roles
Each team member performs tasks within their area of expertise and is assigned roles according to them. So, the Agile team structure necessarily includes the following:
-
Team leader. If Agile values are combined with the Scrum methodology (and this variety is most often practiced), then the manager receives the title "Scrum Master." Combined with other methods, they can also be called "team coach" or "project lead." Performing the functions of formal and informal Agile leadership, the Scrum Master is responsible for the technical supply of the team, the distribution of resources and tasks, tracking progress, and helping to solve emerging problems. For this role, soft skills, team management skills, Agile sprint planning, the ability to draw charts, and an understanding of industry specifics are critical. In addition, a lot depends on the mindset of the Master.
-
Developer. This is a team member who is responsible for the implementation of the project. There can be an unlimited number of people in the development team, but if Agile uses the principles of Scrum, the team should have at most 7-8 people. devops is responsible for modeling, programming, design, testing, and all key workflows.
-
Product owner. This is essentially the product's customer, who is the main responsible and most disciplined person in the project, determines the list of requirements and development elements, makes vital decisions for the business, and provides timely information about the market.
-
Interested parties. This category includes everyone directly or indirectly related to the project - for example, potential users, investors, sales managers, connected and integrated systems developers, etc.
Agile software development life cycle and workflow
The Agile model development cycle consists of the following stages:
-
Concept development
At this stage, the product owner, or the customer, determines the scope and scale of the project. If there are several projects, then they are prioritized. All conditions and requirements are recorded in a special document, as well as the expected results with optimal Agile practices. All this should be stated briefly since the document and requirements can be supplemented during development. At this stage, the product owner only estimates the time required to implement the project and its cost, conducts a detailed analysis, and assesses the readiness of the team to start to work through planning poker or any other estimation techniques.
-
Starting the work
After the development of the concept, the gathering of the development team begins. First, the product owner assesses the candidates' competencies, selects the best of them, and then provides the team with the necessary resources and tools. After that, the team proceeds to design, that is, to create a product layout and build its architecture. Then, with the help of diagrams and analysis of the target audience, the requirements for the product are specified, and its mandatory functions are prescribed.
-
Iterations
Further, the work on the product is divided into short stages lasting from 2 to 4 weeks, called "iterations." This is the longest stage of the Agile cycle, which involves doing all the main work. The team leader, i.e., the Scrum Master, distributes tasks according to the competencies of the recruited specialists and controls that before the team moves on to the next iteration with new tasks. The functions of the previous iteration have been completed. This stage aims to create an essential functional product that can be refined and improved.
-
Testing
The finished essential product is tested in terms of functionality, design, and usability, first on the development team and then on a sample from the target audience. In the process, the team checks the purity of the code, eliminates the errors that arise, and identifies the product's weaknesses for further adjustment. After this stage is completed and the product is finalized regarding identified defects, the product is put into production in the form acquired during the final (corrective) iteration.
-
Maintenance
Once the software is available to customers, the team focuses on its technical support. Thus, developers fix errors reported by users, ensure the system's stability, and train users to use their product. At this stage, additional iterations can be launched to update the product, introduce new features, and eliminate previously unnoticed bugs.
-
Decommissioning
There are two reasons for this stage: either the software is replaced by a newer and more advanced version, or the software becomes obsolete and unsuitable. In this case, the developer team notifies users of the imminent termination of software maintenance and either transfers users to a new product or closes access to it after the agreed period.
Each stage can include many iterations since, in Agile, it is only allowed to move on to the next stage once the minimum desired result is achieved at the previous one.
Agile tools
Today, a wide variety of services and platforms are designed specifically for implementing the Agile approach in practice. The most famous and reliable of them are:
- ClickUp. It allows you to plan sprints and each Agile process, set story points, and track the progress of work on the project. Includes managing data, tasks, statuses, documents, and automation of all sprints.
- Jira. Most often used to identify and track software errors, it also offers opportunities for self-configuration through the JQL language. Independently tests products, monitors the implementation of tasks and sprints, processes the data obtained, displays statistics with reports, and literally assumes some of the Scrum Master's responsibilities.
- GitHub. A system that captures in real-time all the changes made to the product by your team and each Agile transformation down to the smallest detail. Any team member, from developers to product owners, can work on one code simultaneously through seamless cloud technologies, allowing you to create and track requirements and tasks.
- Lean Kit. An application based on the principle of "lean manufacturing," that is, the implementation of the project from the point of view of saving resources due to the timely detection and elimination of defects and inefficient processes. Visually, they look like cards with work items and their current status.
- Planbox. An application for monitoring and optimization alterations that analyzes employees' productivity in solving problems and displays Agile metrics in various graphs. Thanks to this, the team can visually track how far they are from the completion of the sprint and the entire project.
Agile certification
Obtaining a certificate confirming proficiency in the Agile methodology is optional. However, as a rule, certification may be required by a specialist for two reasons:
-
To test your knowledge level in the context of market requirements. Many specialists and project managers are confident that they are proficient in Agile since they already have experience in management. However, certification often proves that this experience is worthless, and there is still much to learn for the title of Agile Mastery.
-
To increase their professional value in the eyes of employers. Many IT companies and teams that practice Agile continuously value specialized education and documented evidence of the skills. Most often, Agile certificates are required by integrator companies that want to demonstrate a high rating of their out staffing and enterprise companies, in which employee certificates are integral to the status of the company. Also, certification is required for official Agile coaching if you expect to become a highly-paid consultant or coach.
Thus, if you have already established yourself in a niche, have fundamental Agile skills in practice, and have cases in your portfolio proving this, there is no need for you to worry about obtaining the certificate. On the other hand, if you are new to Agile and are only in the process of mastering it, passing and obtaining Agile certification will be a good education and career bonus.