You have a million dollars to spend and an idea for a product. What would you do?
You would recruit the best people and believe that their experience will make the team effective in creating high-quality software, right?
You come after three months and you see that:
- the first month passed on discussions about branching strategy, test architecture, deployment, application, cloud selection, CI / CD technology stack and the application itself, choice of linter and code formatting standard and several other similar topics
- one and a half months it took to implement the infrastructure in the cloud, automatic deployments, application architecture and refinement of tasks
- in the last two weeks, the team have delivered the header and footer as well as user login and registration
You feel hypertension pressing against the walls of your arteries, your kidneys are itching from adrenaline production, and tooth enamel creaks from nervous tension. However, you also learn that:
- Max is going to quit because he disagrees with Peter regarding the chosen infrastructure of the application
- Anne has hardly spoken for two weeks and nobody knows what she is doing, but apparently she is configuring the cloud
- Half of the code was written by Xi
- Matt is hated because he does not accept pull requests
- Mark wants to be a team leader even though you have agreed that there will be no team leader
You return home, open 18-year-old Glenfiddich and with each sip, you become more and more convinced that IT is a swamp.
What went wrong?
Of course, the described situation is exaggerated, but there is a lot of truth in it. There are two problems – greenfield and seniority.
Greenfield is a new, fresh, pristine project – one that is built from scratch, where devs have the freedom to choose technology, practices, architecture, practically everything. This is the dream of many programmers locked in the cages of maintenance of legacy systems.
High seniority is good, valuable, almost priceless, but in everything you need balance, and good is never pure – there is always a flaw in it. The flaw of the senior developer is his ego. Many experienced programmers are convinced that they have seen so much that they think they are always right. The truth is, however, that everyone is sometimes wrong, and that many opinions in IT do not matter – or they do, but the profit is less than the cost of not making a decision.
Gathering many seniors in a greenfield project is a risky venture. The ability to choose technology and architecture inevitably creates a discussion in the first phase of the project. The more seniors, the more frenetic this discussion will be. Juniors or mids will rather adapt – seniors will usually stubbornly defend their opinions. This is understandable, of course, but it is disastrous for this type of project.
A ‘self-organizing team’ is an additional source of the problem. When there is no official leader, there is a fight for power. When there are no obedient sheep, because we selected only old stagers – we have a problem.
Seniors devs’ greenfield is a synonym for failure. During the selection of the team members for the greenfield project, let’s not be tempted to choose only experienced professionals. The selection of an official leader is also a good idea – this will speed up the building of the hierarchical structure, reduce the struggle for power and give clearly defined responsibilities to team members.