Group Dynamics: Preventing Conflicts in Newly Created Development Teams

711-boxing.jpg

It is not easy to implement smooth communication in teams even when projects are run completely on Agile methods. Conflicts do occur and it is natural. In the best-case scenario, they bring positive outcomes favoring progress. Otherwise, the consequences for a software development team may be rather destructive leading to poor performance or even dismissals.

For businesses, the cost of such clashes is high. The findings revealed by CPP Inc. says that the US employees spend about 2.8 hours a week handling conflicts. These figures relate not only to the software industry, of course, still, they give food for thoughts.

Finding effective methods of preventing conflicts is definitely worth time and effort. We at Svitla have simplified the task by outlining essential conflict-proof measures and a few more resolution tactics. Scroll down to get the answers.

Avoiding Risks in Project Planning

The truth is, disagreements in a software development team often stem from inattentive project planning. The latter may include anything from failing to clarify client’s requirements for poor risk management. Even if a team does everything correctly, the result may not necessarily meet client’s expectations, which inevitably leads to escalation. The outcome is stress, broken deadlines, and demotivated the team.

That is why risks and time needed for handling them should be considered before giving any estimates. Additionally, it makes sense to carefully study the logic behind a product; otherwise, a complex architecture and its implementation may turn to be too labor-intensive. For that reason, project managers (PMs) need to set deadlines allocating about 30% of the time for late task completion.

Effective project teams never give up assessing potential risks and distributing them into high, medium, and low priorities. So if a high-priority risk is likely to show up, developers will have a plan in place to stay safe and keep up with the productive pace.

Dealing with conflicts requires a proper assignment of roles and responsibilities too. Here are some thoughts on the matter.

Setting Clear Roles and Goals

Software development teams divided into units like UX, Product, and QA, often complain about unclear goals, roles, and interdependencies. In such a case, they have much room for misinterpretations: developers aim to ship software as fast as possible, QA engineers take time to ensure a product is bug-free, while designers prioritize usability and appealing interfaces over speed. It seems to be reasonable unless disagreements arise.

So the first thing to do is to align the goals for all software development team roles and avoid a conflict of interest. However, if developers work on a complex project, one will have to choose two out of three targets: product features, timely delivery or quality.  As a rule, hitting all of them at once may be rather complicated.

Next, PMs need to maintain firm control over the distribution of software development team roles. It is one of the paramount ways of preventing conflicts. Everyone is to be aware of the scope of work to perform and results to achieve. Here SMART system of assigning tasks can come in handy. It helps make them specific to avert ambiguity, measurable to track performance, achievable to meet set deadlines, relevant to attain the ultimate project goal, and timed to plan tasks and subtasks within a fixed budget.

Planning onboarding process for new hires is one of the most efficient ways of preventing conflicts. It makes another essential part of workflow mapping. It helps speed up their adaptation and relieve stress. This is how it can be put into practice.

Establishing Effective Onboarding Process

Productive performance of ‘newbies’ in a software development team largely depends on a well-planned onboarding process. Even though new hires may have a huge expertise, they still can fail to pass probation period. The stats shared by the 2017 Retention Report proves this statement: 34% employee turnover occurs during the first year at a company because of bad onboarding experience.

So to be on the same page with new hires, Team Leaders need to inform them about the project mission, vision, objectives, team Key Performance Indicators (KPIs), tech documentation, communication plan, software development team roles and responsibilities.

A dedicated mentor (or someone ready to take on this role) is very crucial too. This person can help prevent conflicts and eliminate any obstacles. Still, a great many teams take advantage of on-the-job training at the early stage, yet it is always a good idea to have someone experienced to go for advice.

Onboarding itself should integrate naturally with the well-established development process. But you better avoid making it too lengthy. Setting KPIs will make it real.

Choosing the Right Software Development KPIs

Metrics for measuring the development process show real team efficiency only if based on ultimate project goals. They should be clear, practical (without taking a lot of time for data collection), and kept to a minimum.

Efficient software development KPIs allow improving team velocity and enhancing development processes. If Agile model of setting productivity metrics is followed, teams measure lead time (shipping period), cycle time (the time required for introducing a change into production), team speed (the number of tasks completed within a sprint), and open/close rates (the number of production problems reported and fixed over a set time period).

When measuring developer productivity, velocity and cycle time cannot be the sole indicators of success. It makes sense to adopt the metrics for measuring the development process that would show overall software performance and crashes: Mean Time Between Failures (MTBF) and Mean Time to Recover/Repair (MTTR).

Additionally, at the early stage of a project team formation, PMs advise agreeing on a level of compliance to accurately set software development KPI. It reduces conflicts that may eventually emerge.

Communication in Software Development Teams

Handling conflicts in teams become way easier when communication is a number one priority, yet often it is one of the weakest points of software teams. Up to 36% of team clashes are the result of that.

That is why PMs should create success criteria for each engineer in a team and develop communication plans. They may include contacts, organization charts, group mailing lists, schedules for conferences held via Skype or other tools, daily team sync-ups, and more.

Filling out employee profiles is worth doing too. This is to ensure that a question is addressed to the right person at the right time. The profiles may specify job titles, projects, time zones, working hours, and days when a person is online.

It is no surprise that positive communication experiences grow when backed up by a strong team commitment. Here are a few proven methods to increase new team engagement shared by Svitla’s team leaders:

  • Scheduling regular calls with clients to stay on track
  • Capturing videos of all corporate meetings to share with teams
  • Encouraging code reviews
  • Maintaining transparent workflows across team units with Kanban boards
  • Initiating interactive activities like tech talks, workshops, and brainstormings

Dealing with Conflicts in the Workplace

Even if you go an extra mile to elaborate effective methods for minimizing and preventing conflicts, you still need a plan B. It is usually based on collaboration and compromise resolution methods. They foster a win-win solution compared to other existing approaches that can eventually lead to a bigger competition between teammates.

When dealing with conflicts, team leaders need to focus on real issues rather than assumptions and have them written. Some prefer to divide them into three groups: to deal with, give in, or hold out. When all pros and cons are in place, it is necessary to take a step back and encourage the team to come up with new solutions. If developers fail to bring expected output, conduct another brainstorming. This is what all retrospectives are actually about.

The positive effect of retrospectives doubles thanks to communication and engagement. They strengthen bonds within software teams and help uncover new approaches to create a productive environment, be it gamified Kanban boards or a Slack channel to share anecdotes.