Description: Agile is a flexible approach to work organization and mindset (system of installations). It is focused on teamwork, close interaction, and personal responsibility principles. Lots of leading companies use Agile, but its implementation may be rather challenging. It is not always easy to evaluate the team members’ skills as well as the work complexity. This is one of the hardest parts of the developers’ job. Many factors need to be taken into account by product owners. These decisions will affect the entire team and even the company in the future.
Agile main principles
Developing a product in small iterations allows finishing it faster. Moreover, the team constantly gets feedback from customers. Agile tools are the issues like retrospectives activities, daily team meetings, etc. Kanban service desks are the visualization tool. They provide transparency, so the team can divide tasks without the help of a manager. Agile methodology is based on four main values:
People and their relations are more important than processes and tools. Tools and processes should allow the team to work as efficiently as possible, not just to limit it. Everyone can decide which tools and processes are most appropriate for them.
A working product is more significant than documentation or reporting. Therefore, within the framework of Agile, the focus is on ensuring that the product will be ready for use as soon as possible. Technical documentation and reporting have much less priority.
Cooperation with the customer is more important than compliance with formal requirements. Even if a contract with strict conditions and characteristics is signed before the project started, it may be changed during the working process. For example, some details may turn out to be not so significant, and the problem can be solved much easier and more efficiently. This will be done in the client’s interest, not regarding formal requirements.
Readiness for changes is more principal than following a plan. Changes can and should be made at each stage or iteration. It is not reasonable to postpone them until time and resources are already running out. For the sake of this, it is quite possible to sacrifice something from the planned issues, if the main tasks are already resolved. Agile is an approach to building products in the face of uncertainty. It is rather useful when the aim is not completely clear as well as the way to reaching it. In some cases, Agile is the only viable tool, especially if talking about newly-launched products.
How does the scrum work?
As a project management methodology, scrum assumes that a self-organized team presents a finished product in a fixed time frame (sprint). To successfully use the system, the company needs to understand its structure. It includes rules, roles, events, and artifacts. Scrum is based on the 3-5-3 principle: 3 roles, 5 events, 3 artifacts.
The team consists of the product owner, the development team, and the master. At the same time, it includes marketing specialists, developers, designers, and other specialists depending on the development needs. The scrum sprints basis is a clear rhythm of the team's work. The length of the sprint varies, it usually lasts from one to four weeks. Any event is related to the definite sprint:
Backlog organization. The product owner is responsible for this event in Scrum. He monitors the market situation, clarifies the needs of the customer, checks if the product meets the initial requirements. The owner keeps track of tasks, determines priorities, and ensures the relevance of the collected information. This allows the team to start implementing specified tasks at any time.
Sprint planning. The development team, together with the scrum master, plans the scope of work for the upcoming sprint and sets goals at the general meeting. The team decides what tasks can be done within the sprint. At the end of the meeting, participants understand what can be done in one iteration and how to implement it.
Stand-up. A short meeting, up to 15 minutes, is held daily. Usually, at the beginning of the working day. The team sums up the results of the performed work, exchanges views, discusses unclear points. Each participant receives his work plan for the period until the next stand-up.
Sprint summary review. At the end of the sprint, the entire team jointly reviews and examines the result (increment). Developers demonstrate the work result, the owner determines whether it is possible to use the created product. Basing on the review, the owner finalizes the product backlog and this can be the beginning of planning for the next sprint.
Sprint retrospective. This scrum event is intended to provide an overview of the completed tasks. The team records the results, discusses the details of the sprint and related processes. The purpose of a scrum retrospective is to draw the team's attention to what has worked out and what they can try to improve next time. In this case, the event has no purpose to accentuate mistakes.
All of these events take place during the same sprint. Once the duration of the iteration is determined, the development timeline cannot be changed. This approach helps the team draw on valuable experience from the past sprint and build on the lessons learned in the future.
What should we know about Kanban?
It is a method that is aimed at improving the quality of service. This means that all efforts are purposed for making the product better, through the reasonable dividing tasks among all participants. Here team members act without curators and informal leaders.
The process is not divided into sprints but is divided into project stages: planning, development, testing, and launch. The main efficiency indicator is the fast completion of each stage, without overtimes. If they do occur, the team makes a common decision regarding optimizing the process.
The Kanban system has the following features:
- Does not imply 100% adherence to Agile values and focuses on self-organization. Kanban means customer needs, collaboration, and transparency orientation.
- It is used not only in software development but also in modernization, support, and operational activities.
- The number of the performed tasks during the same period is limited. This limitation is necessary to control the rate of production, as well as the speed of response to plan changes.
When all the team members have access to data, it is much easier to find the “gaps” in planning. Aside from the cards, Kanban teams usually use two general reports: management schedules and aggregate flow.
What is sprint planning?
In Scrum, a sprint is a fixed amount of time during which all work must be done. But before implementing, the team must plan the sprint. Answers to the following questions will help to make a proper plan:
- Who?” Sprint planning is impossible without both the product owner and the development team’s involvement. The product owner sets a goal that depends on the desired value. The development team needs to understand if it can achieve this goal (and how to do it). It is almost impossible to plan a sprint without any of the parties.
- “What?” The product owner sets the goal of the sprint and explains which tasks from the backlog must be completed to achieve it. The scrum team decides what to implement during the sprint.
- “How?” The development team draws up a plan of work that needs to be done to achieve the sprint goal. The final sprint plan is agreed upon between the development team and the product owner in terms of value created and effort expended.
- “What is the input data?” The product backlog is a great starting point for sprint planning, as much of it can be incorporated into the current sprint. The team should also analyze the current work that was done in the increment and evaluate its capabilities.
- “What are the desired results?”. The main purpose of sprint planning is for the team to understand what needs must be achieved in the sprint and how to start moving towards that goal. This can be illustrated in the sprint backlog.
Agile is a set of project management techniques to increase the speed of creating products, minimize risks through iterative execution, and provide quick responses to changes. The Agile main advantages are speed, adaptability, and focus on the main goal.
Interaction with the product owner
In Agile software development, the product owner's job is to prioritize the product backlog. It is a job checklist that summarizes all the features and fixes that need to be implemented. Product owners formulate requirements on behalf of the company but do not always understand all the intricacies of their implementation. A correct assessment will help the product owner to understand how much time and effort need to be spent to complete each work task. When the tech team starts assessing complexity, there usually arise questions about requirements and other details. These questions give the whole team a better understanding of the working process. For product owners, in particular, breaking down tasks into small components and evaluating them in points help to place accents between all areas of work. Typically, when product owners receive the Agile estimation results from the development team, they re-prioritize the backlog.