Development Team

1. Define The Size of The Team

organize-software-development-team
The graph visually shows the complexity of managing large teams and the communication overhead it can bring.
It is easy to assume that the larger a team, the more productive it is, and the better results it is able to drive. However, large teams are often much less efficient than smaller ones. Larger teams often require additional communication channels, which in turn, can lead to increased communication and management overhead.
Create a perfect team-size-formula for different kinds of businesses, in our experience 4-7 members is as close to perfect as it gets.
Large businesses require larger teams. In this case, it is highly advisable to hire the needed number of developers and then divide them into two or more small cross-functional independent teams each led by a team lead. It is better to have two relatively independent teams of 5 developers rather than one large team of 10 team members.
To Sum up: In order to keep your team on the same page, make its size about 4-7 members. Remember, the more people that are on a team, the more communication channels you will have.

2. Choose the Team Type

Choose-the-team-type
While building your own software development team, one of the challenges that appears is whether to build a team of generalists, specialists or a hybrid team.
  • Generalists
    A generalist is someone who possesses a wide range of knowledge and skills and is able to apply their competence across a vast range of areas within their expertise. Generalists can utilize a variety of different resources, perform different tasks and often have stronger communication skills and the ability to quickly acquire new knowledge.
    Hire a team of generalists (the term "generalist" usually refers to "full-stack developers" in IT industry) if the product you are developing requires a variety of different skills to be completed successfully.
  • Specialists
    In comparison, a specialist has a specific set of skills and techniques or a preferred single methodology. A specialist possesses a high level of expertise and the ability to use this methodology while solving complicated business problems in areas where greater attention is demanded.
    While working with software development teams, it is better to assemble a team of specialists, who are focused on a particular part of development, namely database specialists - for a database, Automation QA Engineer - for automation test suite, Manual QA - for manual testing etc.
  • 3. Document Responsibilities

    software-development-team-document-responsibilities
    Define and document the roles of your software development team (developers are not the only role we are talking about) before you start recruiting. For example if you work with Scrum, three roles exist:  Development Team, Product Owner and Scrum Master. It is reasonable to define specific roles inside of Development Teams: Architect, DevOps Engineer, Tech Lead, Tech Community Leader, whatever is most applicable to the engineering culture of your company. Additionally, here is a good interaction game to try with your software development team. The aim of this game is to define the roles and responsibilities by answering the following questions:
    • What are the roles of your software developers?
    • What are 2-3 important goals they work on, or ways they help the team?
    • What resources and/or support do they need that they aren't receiving?
    • What's getting in their way?
    By doing this exercise you will be able to define the contribution of each team member and learn what missing aspect hinders your success.
  • 4. Choose Your Management Style: Strict Management vs. Self-Organization

    choose-your-management-style
    Sure, you are not planning to provide your software development team with the full freedom of self-management immediately after meeting them,  this option requires time and trust to be implemented. Apply strict management during the initial stage of team development, and self-organization—when the team has had experience working together. To make the best use of self-organization on your team, try to distribute control and delegate the responsibilities among your team members.
    As soon as your remote developers understand what it is like to work as a united team, the idea of self-organization management can be considered.

0 Comments