Software engineers work closely with project managers. They manage our workload, ensure we are within capacity, and get us the resources needed to succeed. A project manager's approach to task assignment directly impacts an engineer's velocity. Over the years, I have experienced task assignment strategies that have been helpful in my productivity and others that have been counterproductive. When launching an MVP, time is of the essence. Leveraging the right plan at the wrong time could decrease the team's velocity.
When launching an MVP, it is crucial to identify the right strategy for that team and project. One method that yields remarkable results and scales well is assigning similar tasks to the same engineer; I call this Domain-Driven Assignments (DDA). DDA does not require an engineer to work on the same thing daily, but they will work within a domain long enough to develop technical prowess. Engineers will be assigned lead and supporting roles in various domains to create full coverage. In times of need, each domain will have an expert to provide insight and accurate solutions. In this blog post, we will explore the benefits of this approach, including decreased learning curves, increased subject matter expertise, and, ultimately, enhanced team velocity.
The Learning Curve Conundrum
Every new story has a learning curve. When an engineer is assigned a new task, they must acquaint themselves with its specific requirements, technologies, and best practices. This initial learning phase can lead to a temporary slowdown in productivity and decreased code quality. However, this learning curve becomes an investment rather than an impediment by consistently assigning similar tasks to the same engineer. When engineers perform similar tasks repeatedly, they become more familiar with the technologies, codebase, and project requirements associated with those tasks. This familiarity drastically reduces the time needed for onboarding and orientation, as the engineer can confidently draw from past experiences and existing knowledge to tackle new tasks. Over time, engineers develop subject matter expertise in those areas. They gain an in-depth understanding of the domain, best practices, and potential pitfalls associated with specific task types. This expertise empowers them to make informed decisions, anticipate challenges, and propose innovative solutions more effectively, elevating the overall quality of the project.
Streamlined Collaboration and Code Consistency
Assigning similar tasks to the same engineer also fosters better collaboration within the team. Engineers can consult and share knowledge with peers who have worked on comparable challenges, creating a supportive and knowledgeable environment. This knowledge-sharing helps maintain code consistency and adherence to established coding standards, further enhancing the overall cohesion and maintainability of the project.
Enhanced Team Velocity
As the project progresses, the positive effects of assigning similar tasks become increasingly apparent in the team's velocity. Engineers can work more efficiently and accurately with decreased learning curves and increased subject matter expertise. The repetition reduces time spent on understanding new tasks, leading to quicker turnarounds and project iterations. When engineers can deliver consistently, it boosts morale, adding momentum to the team's velocity.
Encouraging Adaptability and Skill Growth
While focusing on task similarity can boost velocity, striking a balance is essential. Over time, engineers should still be exposed to diverse challenges to promote adaptability and foster continuous skill growth. The goal is not to create siloed specialists but to leverage the benefits of familiarity and expertise while encouraging a culture of constant learning and development. Most projects have enough features and requirements to give each engineer multiple areas of expertise. Numerous domains will help break up the monotony while covering all bases.
When assigning engineers to new spaces, keep the scope small. It allows the engineer to get their feet wet, ask questions, and point out anything that doesn't look right (one of the hidden perks of fresh eyes). I worked in places where trial by fire was the name of the game. They throw you in without expertise, minimal support, and high expectations. Whether you make it out is inconsequential to them. While they had many turnovers, the engineers that stayed were excellent. So I cannot say there are no benefits to another approach, but I have to mention that these places had big budgets, and their project would not make or break the company. I digress.
In the dynamic landscape of SaaS project management, optimizing team velocity is a priority for any successful development team. By thoughtfully assigning similar tasks to the same engineer, project managers can significantly decrease learning curves, increase subject matter expertise, and amplify team velocity. Emphasizing this practice drives immediate results and nurtures a culture of collaboration, innovation, and continuous improvement within the team. Overall, the worst task assignment strategy is no strategy at all. A developer's world is slow on planning days and fast-paced on coding days. The more work to be done, the faster the sprint goes. Engineers must maintain momentum during the sprint. Planning must account for momentum and morale; otherwise, team velocity takes a hit.