10AviationBPABusiness licensingCMSCMS_1Computer and mobile accessoriesComputer SoftwareCRMCybersecurityDesktopDigital marketingDiversityEmbeddedEntertainmentFarmingGamblingHelthcareHomeInsuranceIoTIoT_1LawMachine LearningMediaMilitaryMobileMobile_1QAQA_1Real EstateRestaurantsSocial projectSocialSocial projectSocial project_1Software developmentSportTransport

Group Dynamics: How to Form Strong Software Development Team from New Hires

by Svitla Team

December 18, 2017
scroll

There are no guarantees that a new, freshly formed software development team would endure in the long run. Stack Overflow has recently shared the report proving this statement. With over 64,000 respondents surveyed, it claims that 75.2% of currently employed developers are open to new job opportunities. 

This statistics proves that keeping motivation up is critical to both in-house and outsourced team performance. If team motivation is not looked after given, it may become the biggest obstacle decreasing delivery speed and quality.     

Another challenge to successful teamwork is to attract professionals who can complement each other’s efforts rather than compete. Otherwise, employing A-players alone, as Steve Jobs once advised, may lead to ongoing conflicts. The list of other obstacles can be a long one, but we would rather shed the light on how to achieve good teamwork. 

To make this read helpful, we at Svitla have reached out to our Project Managers who have years of hands-on experience in building teams for small and large-scale projects. So now, we share their hard-earned wisdom backed up with a set of proven approaches to new teams formation. Read on to find out how to create collaborative relationships inside a team to achieve stunning results.

Teamwork Evolution Stages

The truth is, good performance cannot be achieved from the very beginning. It takes time for any group to undergo essential transformations in order to bring thoughts and actions into sync.

Exploring group psychology is crucial to understand how teamwork evolves and what difficulties it may face. Bruce Tuckman’s model seems to be the best fit for creating new software development team from scratch. He defined five development stages: forming, storming, norming, performing, and adjourning. Each differs by behavioral patterns. 

tuckman

At the forming stage, most teammates are uncertain about the scope of work to be done. Their roles stay ambiguous. That is why they require constant guidance and clear directions to follow. 

As time goes by, team confidence grows and outside authority is getting less important for them. It is the storming phase. This is when conflicts may arise unless group goals and roles are set. If team members fail to pass through this stage, they become overwhelmed with tasks. To avoid these pitfalls, tech executives should spend more time communicating with the team.

During the norming and performing phases, people realize they are one team, distinguish each other’s strengths, exchange thoughts openly, and share common goals. Everyone strives to deliver tasks on time. This phase is suitable for delegating team lead work if needed. The overall performance rate remains high even though team members may decide to join or quit. 

The final stage is adjourning. It comprises termination of team relationships, which usually happens due to project completion. At this phase, it makes sense to introduce some procedures that can simplify and speed up tasks delivery. 

Obviously, effective teamwork in the workplace can be implemented once the performing stage is achieved. The amount of time needed for that varies. However, talented team leaders can greatly smoothen the process. 

Leading a Development Team

Everyone would agree that a Team Leader is a backbone. Still, not everyone manages to hire the right person. Unfortunately, these cases are numerous.

“The short answer is, we focus on all the wrong things, like a candidate's charm, their stellar résumé or their academic credentials. None of this has any bearing on leadership potential.”
Jeffrey Cohn at CNN 

When the future of a project is at stake, one should take filling a leadership spot responsibly with Team Leader roles and responsibilities clearly described. Selection of the right candidate who knows how to manage a new team is a multi-level process. Roughly, you can divide the process into 3 stages: 

  • short-list candidates with regard to their technical background, 
  • evaluate soft skills they possess,
  • take the final decision based on some extra criteria like personal strengths, a way of thinking, style of work, or anything else required by the project.

Overall, a Team Leader should be able to communicate project goals to the team, cultivate healthy group dynamics, coordinate team tasks, and keep track of its accomplishments. It may seem to be a real burden. However, it's not. Senior developers are the ones who share team leaders’ responsibility. A few suggestions on how to hire Senior developers and what they should be like are given down below.

Hiring Senior Developers

Similarly, to a Team Lead role, Senior developers are the ones who should think out of the box. This characteristic is as important as a technical expertise. It helps avoid doing odd things and establishes a stronger connection between a software development team and a Client.

As for the hiring process itself, a word of mouth is still effective. A-levels can recommend A-levels. However, it is not the only workable tactic. When recruited through professional networks or by team leaders, the chances to get seniors on board are high too. These people know company processes inside out and can emphasize the biggest advantages. 

Hiring a big team of Senior developers is what you should prevent, though. If you give preference to employing rockstars, disagreements may arise repeatedly. Developers with extensive background are more likely to defend methods of work they are used to. Eventually, this will cause rivalry. Therefore, you had better create a balanced workforce recruiting software engineers that can fill the team gaps.

Once a team is created, the next step is to build a product roadmap in close cooperation with stakeholders. Its goals and major components are shortlisted in the next passage.

Creating a Product Roadmap

Vision and strategy are the bedrock of any product roadmap and usually are defined by CEO and Product Owner well in advance.  To introduce the team with established roadmap is especially important in the early stages of team development. Not knowing what is going on within a project or company is a widespread issue, and a roadmap is a key tool to eliminate that risk as it highlights project’s objectives, required resources, and future prospects. 

Product roadmap prompts how to manage software development, specifies the amount of work, implementation methods (backlog), priorities (feature releases), milestones, and timeframes. Here it is vital to distinguish a product roadmap and release plan. The latter is far more detailed and divides the development process into smaller components with deadlines for each release.

Adjusting a roadmap is a continuous process. You can hardly predict where the market will be in a year. That is, weekly, monthly, and quarterly roadmap reviews are necessary. To successfully move along the map, it is important to make it realistic and simple-to-grasp. Every single stage should remain understandable, no matter how it transforms with times. 

Once completed, a roadmap needs reviewing by the team to freely exchange feedback and suggest edits. Right after its approval, Project Managers get down to workflow issues to maintain effective communication model and define roles. How to cope with it? Below is the clue.

Defining roles and communication model

The roles assigned to different project teams stay more or less the same. Thus, Product Owners take control over product quality, Project Managers (Scrum Masters) deal with product development issues, Software Architects build business logic layers, Front-End Developers create user environments (interfaces), and Back-End Developers build functionality. 

Project Managers choose one decision-maker for every team silo. As a rule, these are Team Leaders. It reduces the risk of chaos, favoring a linear model of product development. 

To achieve synchronized teamwork, Project Managers often resort to Scrum. It establishes strong communication among team players and facilitates software engineers onboarding. Regular stand-ups to speak on achievements and failures, demo presentations, retrospectives, and planning activities increase team motivation and performance. 

When distributing tasks, Team Leaders need to set global goals and emphasize shared responsibility. If not done properly, developers get too concerned about technical task delivery taking little care of what end-user will get.

To ensure workflow transparency, Project Managers usually use boards similar to those in Kanban. It allows keeping everyone on track, preventing possible misunderstandings and confusions. 

Wrapping Things Up

Having a strong software development team in place, tech executives still need to keep an eye on each team member behavior. 

To stay tuned, Project Managers can shortlist the key hindrances for every stage of team formation and check whether new hires overcome them successfully or not. Here is when communication can come in handy. It brings sanity to any work environment. By making the most of Agile-based communication methods, teams’ confidence and engagement will better a lot. 

The takeaways for team building shared with you above are not exhaustive, though. It turned out that we have way more tips to write about. So to find out how to achieve team goals, cultivate motivation, and avert conflicts and risks, keep following our blog updates.

P.S.: The insights about building new development teams were shared by Sergiy Shubin, Illia Chmut, Roman Ryltsev, and Mykhailo Churilov.

by Svitla Team
December 18, 2017

Stay informed - subscribe!

Join our newsletter and get the latest content right in your inbox once or twice per week.

Now you will get awesome news!