Code

What are agile methodologies and how can businesses implement them?

What are agile methodologies and how can businesses implement them?

Free course: “Fast start at Python»

Learn more

Dmitry and Alexey shared their thoughts and experiences.

  • when agile methodologies should not be implemented;
  • which task trackers and services are best to use;
  • why the Scrum practice of Planning Poker is interesting;
  • how to monitor team performance in the office and remotely;
  • and how to save personal time.

A quick reference provides basic information on a specific topic or question. It helps you quickly familiarize yourself with key aspects, basic facts, and important details. This format allows you to save time by obtaining concise and up-to-date information. A quick reference can include definitions, statistics, main concepts, and other important information that will help you better understand the subject of discussion or research. Using a quick reference helps you absorb information more effectively and facilitates further study of the topic.

Dmitry Simonov and Alexey Troshin were key figures in the development of the "TeamLead" course. Their experience and knowledge in team management contributed to the creation of a high-quality educational product that will help many people master effective leadership and project management skills. The "TeamLead" course offers practical recommendations and strategies that will help future leaders become more successful in their professional careers.

Dmitry Simonov has extensive experience building teams for startups in the fintech, telecommunications, and advertising sectors. He worked at such large companies as Yandex, Mail.ru, and Rambler.ru, where he acquired valuable skills in project management and business development. Dmitry is also the organizer of the "Tech Director's Day" holiday, which has become an important event for technology professionals.

Alexey Troshin is the head of the IT Development Department at Finam. Since 2009, he has been actively applying Agile philosophy to optimize development processes. Under his leadership, successful projects such as Avto.ru and Banki.ru, as well as a number of other initiatives, have been implemented. Alexey's experience in team management helps him achieve high results and effectively adapt to changes in the technology market. In the previous discussion, we discussed with experts the origins of the team lead profession and the key competencies required to successfully fulfill their responsibilities. Now, we will focus on the technical aspects associated with this role. Understanding the technical nuances of a team lead's work is crucial in managing teams and projects. A team lead must possess not only leadership skills but also deep knowledge of the technologies used in the project. This allows them to effectively collaborate with the development team, make informed decisions, and ensure high product quality. It's important to note that the team lead is also responsible for implementing development best practices, managing processes, and optimizing workflows.

How Agile Works

Alexey, Dmitry, you are both experts in agile methodologies. Why did the Agile philosophy gain such popularity in its time? What existing demand did it respond to?

Alexey: One of the core values ​​of Agile is the involvement of all process participants. Unlike the classic approach, where tasks are performed sequentially and changes to them are practically impossible, Agile offers flexibility. There are no strict technical specifications; instead, a task list is used for the entire team. This allows each team member to contribute their ideas and actively participate in shaping the final result. This approach promotes more effective interaction and improves the quality of work.

Thank goodness, fanaticism around agile methodologies is gradually becoming a thing of the past. This boom ended relatively recently, although as early as 1999, the article "A Methodology for Every Project" called for a conscious choice of project management approaches, foreshadowing the Agile Manifesto published in 2001. Now, it is more important than ever to carefully select methodologies based on the specifics of the project and its needs, rather than following fashion trends. Agile project management methodologies, such as Agile and Scrum, can be effective in most cases; however, there are situations where their implementation may be inappropriate. Firstly, if a project has clearly defined requirements and deadlines, the use of agile approaches can lead to confusion and failure to meet customer expectations. Secondly, in large organizations with established processes and hierarchies, agile methodologies can generate resistance from the team, reducing overall effectiveness. Additionally, if a team lacks sufficient experience working in an Agile environment, this can lead to a lack of productivity and lost training time. It's also important to consider the specifics of the project: in highly regulated industries such as pharmaceuticals or aerospace, strict rules and standards can make Agile methodologies less suitable. In such cases, traditional project management approaches can be more effective and secure.

Alexey argues that Agile methodology is unsuitable for software development in systems where error criticality is critical. For example, projects involving nuclear power plants have a high degree of risk uncertainty. Using Agile in such an environment can have serious consequences. Similarly, in financial institutions, where data security and financial transactions are paramount, thorough testing of all processes is necessary. In such cases, Agile can only be applied to small development areas where risks are minimal.

Dmitry: I disagree with Alexey's opinion. The hypothesis testing approach in critical areas like nuclear energy is truly questionable. However, I know teams in the nuclear industry and fintech that first test hypotheses and then implement them. This helps minimize risks and improve operational efficiency.

Recently, I personally encountered the fintech field. Previously, banks were perceived as closed structures where experts created complex and not always practical solutions. However, in practice, it turns out that banks are actively engaged in the "wrapping" of their services, including mobile applications, web interfaces, and reporting forms. In this context, short-term planning using Agile methodologies is proving quite effective. Of course, there are important components, such as PCI DSS standards, that require a cautious approach, but these are few in number. Financial technologies open up new opportunities for optimizing and improving customer experience, making them relevant in the modern banking sector.

Alexey speaks at the annual conference for team leads "Saint TeamLead Conf" in 2019

Agile methodologies begin to function effectively under certain conditions. First and foremost, support from company management is essential; they must understand and embrace the principles of agile development. It's crucial to build a team that is highly self-organized and accountable, allowing them to quickly adapt to changes and respond to feedback. Transparent communication between team members and clients is also key, as it facilitates a more accurate understanding of requirements and expectations. Furthermore, having clear and understandable processes, as well as tools for tracking progress and managing tasks, significantly improves the effectiveness of agile methodologies. The combination of these elements creates a favorable environment for the successful application of agile approaches in project development. A team begins to work effectively when it rises above specific tasks and focuses on the value of the product. It's important to understand what needs to be improved, what metrics to measure, and what changes to implement. Each team member should understand how their contribution affects the overall result. This creates motivation and encourages active participation in the process.

This joke illustrates an important principle of teamwork: one person lifted 50 kilograms, and together with a partner, they lifted 80. This shows that in a team, everyone can contribute, and sometimes even more than they could alone. It's important to change your mindset: we are a team capable of much. Collaboration and idea generation are powerful motivators for employees. The use of agile methodologies in business not only saves time and money but also improves control over work. Effective teamwork contributes to achieving better results and increasing overall productivity.

For a business to evaluate the effectiveness of agile methodology at intermediate stages, it is necessary to establish clear criteria and metrics. It is important to regularly analyze results, comparing them with established goals. Introducing regular meetings to discuss progress, as well as receiving feedback from the team, allows for the timely identification of problems and adjustments. Furthermore, using tools for tracking performance and customer satisfaction helps measure the success of agile methodology. These measures will provide an understanding of how effectively the agile approach is working and what changes may be needed to improve processes.

Transparency and openness of processes are important in Agile. For example, when a business requests the development of a chat assistant on a website within two weeks, a sprint with clearly defined business goals is created. These goals can be tracked at each stage of the project. The business has the opportunity to monitor the process and see the end result in two weeks – the availability of a chat assistant. The Scrum approach allows for a clear demonstration of how resources are spent, which makes it particularly attractive for businesses. This project management method promotes more effective interaction between teams and customers, and also increases end-user satisfaction.

Scrum, Kanban, Services and Practices Within Them

The Kanban methodology is often used in software development. The main difference between Scrum and Kanban is the approach to task and process management. Scrum emphasizes iterative development with fixed time cycles called sprints, which typically last from one to four weeks. Kanban, on the other hand, emphasizes the continuous flow of work, allowing teams to flexibly manage tasks in real time without a rigid schedule.

Furthermore, Scrum has predefined roles, such as product owner and scrum master, while Kanban is more flexible in terms of team structure and roles. Kanban also uses visual boards to track task progress, which facilitates a better understanding of the current workload and the identification of bottlenecks in the process. Therefore, the choice between Scrum and Kanban depends on the specifics of the project and the team's preferences.

Dmitry argues that Kanban focuses on effective technical support and process operation, while Scrum is focused on the development and implementation of new solutions. It is important to understand that both approaches have their unique advantages and can be used depending on the needs of the team and the specifics of the project. Kanban helps optimize work processes and increase productivity, while Scrum promotes more active team interaction and rapid adaptation to change. Correct application of these methodologies can significantly improve work results and accelerate the achievement of goals.

Alexey: Scrum is an iterative project management method, where each iteration is called a sprint. Within a sprint, a set of tasks is formed that corresponds to the goals of a given stage. It is important to note that the planned sprint remains unchanged, which emphasizes its significance in the work process. Scrum allows teams to respond flexibly to changes and ensures regular delivery of results.

The Kanban method is a task management system based on the principle of continuous flow. Effective task management in this approach is carried out taking into account previous statistics and the current situation. In the Kanban method, constant changes in task priority are a natural process, which allows for adaptation to new conditions and ensures high team productivity.

Project management methods often cause confusion due to the use of Kanban boards in both approaches. The term "Kanban" has its roots in the Toyota Production System, where it refers to a board on which task cards are moved. This visual system helps teams track processes, manage workflows, and improve efficiency. Understanding the differences between methods using Kanban boards is key to achieving success in project management.

When discussing the practical application of project management methods, it is worth noting that in technical support, there is often not enough time for task planning. In such cases, it is most effective to use Kanban systems, which provide flexibility and visualization of the workflow. However, when a business strives to achieve predictable results within strictly defined deadlines, it is advisable to implement the Scrum methodology. Scrum allows you to organize your team's work in a way that achieves maximum productivity and adaptability to change, which is especially important in a rapidly changing market.

It is important for team leaders to have access to effective services for monitoring task completion and meeting deadlines. There are many tools that help organize the workflow and track the team's progress. These services include project management systems that allow you to assign tasks, set deadlines, and monitor their progress. Popular solutions include Trello, Asana, and Jira, which offer visual task boards and collaboration capabilities.

These platforms help visualize your workflow, which facilitates a better understanding of the current status of tasks. Furthermore, integration with other tools, such as Slack and Google Calendar, allows you to receive notifications about deadlines and task changes.

Thus, the use of specialized services significantly simplifies the team leader's task of monitoring the progress of projects and helps the team effectively achieve their goals.

Alexey: I expect heated debates.

In the Telegram channel "Technical Director's Notes" Dmitry has a whole sticker pack about himself.

There's a famous saying about three kinds of lies: lies, damned lies, and statistics. However, according to official data, 83% of Fortune 500 companies use Jira. This application has become an industry standard for many corporations. Jira has a developed ecosystem, is constantly updated, and effectively supports teams practicing continuous integration and delivery (CI/CD). Using Jira allows you to optimize project management processes and increases team productivity.

I rarely encountered Trello being used in companies. These were mainly organizations engaged in custom development, where Redmine was used as a free task tracker to avoid additional licensing costs. I was surprised how anyone could get by in the modern world without more modern tools. Ultimately, it turned out that all work was being conducted in the clients' task management systems, and they didn't attach much importance to tracking internal tasks.

Dmitry: I found that the most interesting and effective combination of three systems is the Jira project management system, code management platforms such as GitLab, GitHub, and Bitbucket, and my preferred time tracker, Toggl. This integrated solution allows you to optimize workflows, improve team collaboration, and increase productivity.

Employees who accurately and honestly record their work in Jira tickets and follow established commit standards in GitLab ensure process transparency. At the same time, time tracking with a time tracker allows the business to have a complete overview of current tasks and each employee's workload at any time. This significantly simplifies project management and minimizes the number of questions that arise.

The Scrum practice of planning poker is an important tool for estimating the effort required to complete project tasks. It allows team members to jointly discuss and estimate tasks, which contributes to a more accurate understanding of the scope of work. Planning poker is especially useful in cases where there is uncertainty in estimates, as it helps avoid bias and gives all team members the opportunity to express their opinions. This practice also promotes improved team communication and cohesion, which ultimately leads to more effective project delivery.

Alexey: This planning method effectively reduces risks when executing large tasks.

Planning poker is a task estimation method actively used in Agile processes. Team members receive cards with numerical values. At the beginning of the discussion, the task to be estimated is announced. Each participant independently selects a card corresponding to their opinion of the task's complexity, expressed in hours, days, or story points. Then everyone shows their cards simultaneously. If the participants' opinions differ, a discussion begins, during which the team analyzes the reasons for the discrepancies and comes to a consensus on the time required to complete the task. This process improves the accuracy of estimates and facilitates more effective work planning.

The numbers on the cards correspond to the Fibonacci sequence, where each subsequent value is approximately twice as large and "heavier" than the previous one. This structure helps visualize progressions and relationships, making it useful in various fields such as mathematics and design.

The Fibonacci series is a sequence of numbers where each subsequent number is the sum of the previous two. It begins with 0 and 1 and continues as 0, 1, 1, 2, 3, 5, 8, 13, and so on. This series is important in mathematics and nature, as it appears in various aspects, such as proportions in art, biology, geometry, and even finance. For example, Fibonacci proportions are often observed in plant structure, such as the arrangement of leaves or the number of petals in flowers. The series is also used in algorithms and computer science due to its unique structure and properties. Understanding and using the Fibonacci series opens up wide possibilities for analyzing and modeling various phenomena in nature and science.

Alexey: There is always an element of uncertainty in the work. The less information we have about a task, the higher the risk of increasing its completion time. I can accurately estimate a simple task, such as pouring a glass of water in a few seconds. However, if the task becomes more complex, such as pouring a thousand glasses of water, then simply multiplying the time by 1000 won't work. During this process, I'll need time to rest and also to find additional resources, such as a water cooler, since one cooler is clearly insufficient for such a large task.

When using the planning poker method, it's important that participants' decisions are independent of each other. For example, if one team member assumes they can complete a task in a day, another may feel pressured and also declare that they will complete it in the same amount of time, even if they have doubts. In this method, each participant provides their own estimates without consulting others, which allows for a diversity of opinions. The participant who estimated the task with the lowest number explains their optimistic approach, while the one who gave the highest estimate shares their concerns and potential difficulties. After this, a discussion takes place, resulting in all estimates being averaged, which facilitates a more accurate understanding of the scope of work and the time required to complete it. This approach promotes honest task assessment and improves teamwork.

After this, no one can claim they failed to complete a task due to the allotted time, since the assessment was done collaboratively. All employees agreed on the timeframes and accepted them for implementation.

Dmitry with colleagues at Slurm DevOps in 2019

How to monitor team efficiency and save your time

The ideal team is A harmonious union of professionals, each with unique skills and experience. Such a team fosters an atmosphere of trust and mutual support, which facilitates effective collaboration. Team members actively exchange ideas and opinions, enabling them to find optimal solutions and achieve their goals. It is important that the ideal team recognizes the strengths of each member and provides opportunities for personal and professional growth. Communication and openness to criticism play a key role in maintaining productive work. An ideal team is not only professional but also adaptable to changing conditions, making it more competitive.

The modern understanding of a team can be formulated as a group of interdependent people united by a common goal. Members of such a team work together, applying their individual skills and knowledge to achieve a unique result. It's important for each team member to understand their role and contribution to the overall project, which fosters more effective collaboration and increases overall productivity.

Everyone strives to create a team whose overall effectiveness exceeds the results of individual work, but teams like love are a rarity, much talked about but few experienced. When Agile adherents discuss such teams, it often evokes skepticism. As the joke goes: if each team member lifts 50 kilograms, then together they should be able to handle a weight of 110 kilograms! Building a highly effective team requires not only professionalism but also the ability to collaborate, trust each other, and work towards a common goal.

Alexey emphasizes the importance of the total cost of project management. Managing a disparate group of specialists requires more resources and effort than working with a unified team. This is due to the increased costs of coordination, communication, and process organization. Effective team management optimizes costs and increases productivity, which ultimately reduces the overall cost of project implementation.

Team synergy is a key factor in creating added value. Effective interaction between team members allows them to leverage their individual strengths and skills, ultimately leading to higher-quality work and the achievement of shared goals. The combined efforts of team members help generate innovative ideas and solutions, increasing overall productivity and competitiveness. Creating synergy requires open communication, trust, and mutual support, which are the foundation of successful teamwork.

In the "TeamLead" course, we discuss key aspects of team management in detail. Participants will learn about effective communication methods, project management, and leadership development. We emphasize practical examples and situations faced by modern leaders. The training is aimed at developing the skills necessary for successfully leading a team and achieving goals.

The course includes several lessons dedicated to different types of teams. Participants will be able to become familiar with the characteristics and features of each team, which will help them better understand the dynamics of interaction and the role of each member within the team. Agile teams do not operate in all fields. In some cases, centralized groups exist where employees operate in strict accordance with regulations and instructions. This approach is often compared to military units, where strict discipline and adherence to established rules are essential. Such teams emphasize stability and predictability of processes, which may be necessary in certain conditions. However, agile methodologies offer flexibility and adaptability, allowing for faster response to change and improved performance. I am passionate about observing the military, as they are the primary drivers of technology and management methods. Unfortunately, information about them is often classified, hindering access to data and research in this area. Nevertheless, studying military technologies can provide valuable insights for the civilian sector and help develop new solutions and strategies.

In recent years, we have seen the merging of two realities: offline and online. How can you build effective dialogue with your team in both environments? It's important to understand the key differences between them. Offline communication involves face-to-face meetings, which facilitates deeper interaction and immediate feedback. Online formats, however, require a clear structure and clarity in communication, as there are no non-verbal cues. To successfully establish dialogue, it's necessary to adapt the communication style to each environment, use modern online communication tools, and actively encourage the participation of all team members. This will ensure engagement and productivity in both offline and online formats.

Dmitry: In reality, the main difference lies only in the communication methods. The pandemic has demonstrated that remote teams can be just as effective as office-based ones. This may seem surprising, but the results confirm this fact.

In the future, teams will likely become more stratified. There will be a core team of employees who will be permanently based in the office, a separate remote team, and a talent pool. A clear system of mentors will emerge, allowing for a more effective transfer of knowledge and experience. A prime example is the involvement of DBAs. The institution of interns will also become firmly established. Today's interns strive not only to get a job with a competitive salary, but also to add a valuable line to their resume, which emphasizes the importance of practical experience for career advancement in the IT field.

Dmitry speaks at the HighLoad++ high-load systems developers conference in 2017

To monitor the performance of a remote team, several key methods must be used. First, it's essential to set clear goals and objectives for each employee. This will not only allow you to evaluate their performance but also provide an overall picture of the team's work.

Second, regular meetings and reports will help track progress and identify potential problems. Using project management tools such as Trello, Asana, or Jira greatly simplifies the process of monitoring task completion and promotes transparency.

Furthermore, pay attention to feedback. Constantly communicating with team members allows you to identify their needs and improve work processes. It is also important to consider performance metrics such as completed tasks, deadlines met, and work quality.

Don't forget the importance of corporate culture, even in a remote setting. Creating an atmosphere of trust and support helps increase team motivation and effectiveness. Ultimately, a comprehensive approach to monitoring remote team performance will enable high results and improve overall productivity.

Dmitry: I've worked with distributed and remote teams for a long time in my career. I've tried various platforms like Zoom, Google Meet, and Skype, and while they served their purpose, I found the ability to communicate quickly and directly was lacking. As a result, I adapted Discord to these needs. This tool functions like a walkie-talkie: you create a server, organize channels, and place team members in appropriate rooms, like at desks. If you need to contact a colleague, simply click their name and you're instantly connected. Discord also offers text chats, making it a full-fledged messenger for team communication.

In Agile, in addition to their core tasks, each employee faces additional responsibilities, such as attending work meetings and regular calls. These background tasks can create a certain burden. However, it's important to understand that they improve communication within the team and help better track project progress. As a result, despite possible difficulties, such commitments can increase team efficiency and contribute to achieving shared goals.

Dmitry: Indeed, this can be a challenging experience. For newcomers, standups are often perceived as a waste of time, especially when they require answering three standard questions every day. However, it's important to understand that such meetings play a significant role in team communication and facilitate more effective collaboration. Regular standups help identify problems early, improve work transparency, and foster a team atmosphere. Therefore, despite initial hesitation, participating in standups can significantly improve team productivity.

Yesterday I was busy with various activities. I focused primarily on work and completing tasks that required concentration and attention. I also devoted time to self-development, learning new materials and skills that could be useful in the future. I took a short rest this evening to recharge and prepare for new challenges.

What are your plans for today?

The problems that arise can be varied. These can range from technical issues to workflow issues. It's important to determine the root cause of the problem to find the optimal solution. If the issues are technical, it's necessary to diagnose the hardware or software. If the problems are related to project management or team collaboration, it's worth considering improving communication or redistributing responsibilities. Analyzing the problems that have arisen helps identify their root causes and develop effective solutions.

I explain that daily standups only take 15 minutes. They are necessary not only for control and reporting, but also for team synchronization and understanding the overall context. This explanation is usually enough to engage the team after just one or two sprints. Their value can be demonstrated during a project demonstration, where the client is satisfied with the result. This becomes a powerful motivation for the whole team.

Team leaders work even on vacation

There are enough related tasks for both employees and team leaders. How can you recommend effectively managing your personal time?

Alexey: The first practice is to organize meetings using specific time slots. This can be an effective solution for streamlining your workflow. For example, colleagues, if you'd like to schedule meetings with me, I suggest scheduling them for Tuesdays and Thursdays. I'm available anytime, just schedule them. On Monday, Wednesday, and Friday, I'm only available for urgent matters.

It's recommended to set aside time to check email: 30 minutes in the morning before starting the workday, 30 minutes before lunch, and 30 minutes before leaving work. This approach promotes effective time management and increases productivity. Quick responses during the workday are considered the norm in a corporate environment, and for urgent questions, you can always use the phone.

Dmitry: I actively use the Calendly service, which conveniently syncs with several Google calendars. Users simply click the link and immediately see when I have available time, allowing them to quickly and easily create a recording for a future broadcast. I also use this service to organize mentoring appointments, which greatly simplifies time and meeting management. Using Calendly allows me to effectively plan my activities and focus on important work.

Alexey recalled a joke about the three-folder rule, which helps me manage non-urgent background tasks. When a task arises but you don't have time to complete it, simply put it in an imaginary envelope #1. If someone asks about it again, move the task to envelope #2, continuing to postpone its completion. Only after the third request, move the task to envelope #3 and start working on it. This rule helps you structure your tasks and manage your time effectively.

The moral of the story is that important messages will still get through. Don't constantly get distracted by every little thing, as there's a chance the problem will resolve itself during the discussion or will be resolved by other participants. While this may seem like bad advice, it's worth applying from time to time. You can start by organizing your workspace, for example, by creating two folders for different tasks.

Read also:

  • The Dunning-Kruger Effect in Programming
  • What a Web Developer Does and What You Need to Know for Your First Job
  • Using the Pandas Library: Turning Raw Data into DataFrames