Process and Challenges of Growing a Team - I
In this 2-post series, I would like to write about our 5-month-old project team’s growth process or journey. When we talk about people related problems it’s very hard to propose standard solutions. Solutions can change for different countries, cultures, people, organizations, projects etc. So I can just talk only my own experiences about my team. And these are just my own ideas and observations, not the company I worked with.
What’s the Problem?
One of our main problems is lack of mentoring to junior developers. Junior developer means a developer who has 0-2 years professional experience for me. Lack of mentoring causes having experienced(!) developers who lack many basic technical and professional abilities. Also, this problem increases employee turnover rate. It becomes harder and harder each year to teach something to those developers about professionalism and technical skills because of their experienced egos. As it said in a proverb; “twig is bent, so is the tree inclined, as the”.
Most of the time these developers and their leaders have not been aware of the root cause of their problems. And as a solution, they have been focusing on new technologies, new projects, new titles etc., just something that’s only new. Because of everyone talking about these new shiny toys. When these new things are provided, only one year later, the same disappointment is appeared again, because after one year the thing that’s provided isn’t new anymore and developers start to find these things boring again. Because just the symptoms were fixed over, but root causes are still there. Solutions to these root causes need a long-term vision, investment to people and patience.
An Opportunity
Most of the time every project has a time stress. This situation is one of the obstacles of trying a solution to our problem. Of course there are individual efforts to over these problems, but their scope is limited and these efforts didn’t get enough support from management. As a result, these efforts have not been sustainable. We need more structured, long-term solutions. Fixing these problems in a project, team or organization level needs lots of people who have common vision and goal. But it’s clear that we must start from somewhere. Because time is passing…
5 months ago we started a new project and we foresaw relatively less time stress in this project, thus decided to apply some management and technical practices in this project.
Team Structure
Before I joined the project there was an already formed team. There are 6 developers in the team, 4 are new graduated and joined the company after their graduation, one is 1-year experienced and one is 6-year experienced. Also, we have 2 testers, 2 analysts and 1 project manager. With me, my role is solution architect, there are 12 people in the team.
Which Practices We Want to Apply?
We decided to apply management practices, such as;
- Business oriented cross-functional team,
- Professor and entrepreneur model recommended by Mary and Tom Poppendieck,
- Scrum with one-week sprints,
- Knowledge sharing activities
and technical practices;
- Evolutionary architecture,
- Applying some Domain Driven Design concept,
- Test-driven development,
- Pair/Mob programming,
- Code review process,
- Behaviour driven development
In part II, I’m going to write about how we apply these practices shortly, challenges of the process, our solutions to these challenges and progress of the team.