Congratulations! Someone has made the wise decision to hire you as the new technical lead. It is an exciting time. You start in a new environment, will be working with a new team and maybe even have to learn new technologies along the way. This can be quite challenging. In this two-part article I want to share my personal views regarding Introducing change and shaping teams as a technical lead.
When starting in this new environment you probably bring lots of energy and want to leverage your experience to change things for the better. In my opinion introducing changes in a new environment requires some consideration.
As technical lead you are (hopefully) up to date with the latest principles and technology trends. As technical lead your life purpose is to "build the thing right" because "building the right thing" is someone else’s concern ;-) You quickly determine that the project you inherited has some some design/architectural issues that should be addressed promptly. So the next day you climb on a chair and give a passionate speech about how things need to change. Wait right there! Even if you are right, you need to consider some things. First remember that you are judging the work of the current development team. They probably put their heart and soul into it. Secondly there are often influences from outside the team that drive technical decisions. The most obvious are deadline but there are others. Don’t be judgemental about the current state of development, because it can quickly create a gap between you and the rest of the team.
Changing something requires some time for the team to adjust. This means you can’t pile change on change, even if they are beneficial. If you make to many changes you effectively try to change the team’s entire way of working. Consider the change velocity of the team. This doesn’t have anything to do with experience. Sometimes junior team members find it easy to adopt new ways of working while the seniors are reluctant to change their ways. Getting this right requires at least experience and some feeling.
So am I telling you that you can’t propose any changes at all? Not really. After all you were hired as lead so you get some credits from the get go. You can introduce some minor changes to the product or processes. Often some minor changes can help the team work more efficiently. Maybe eliminate some small repetitive tasks for example. Proposing some good changes can really help establish your position as lead. Also people are more receptive to minor changes then they are to big changes. Just be aware of how many of these changes the team can adopt.
Before you start introducing big changes, I think it is important to take some time to reflect on past and present. During this time quickly gather information. Try and get to know about:
the system’s architecture;
the technologies used;
the history and past architectural/design decisions;
The external systems your system interfaces with;
the project stakeholders (business, privacy, security…)
Don’t be afraid to ask questions. A lot of information will be in the minds of the team members you work with. This information will help you prioritize and drive your future decisions. When you have settled in the team and have a good sense of the context you are operating in, you can start discussing the changes that are most urgent.
When introducing change try to not be that bull in the china shop. Instead take some time to really get to know the history of a project, the team members who work on it and the context that you operate in. If you are able to identify some quick wins you can propose some of them to the team. Use the information that you gathered to prioritize and drive any major changes that you deem necessary and propose them at an appropriate moment. Consider the velocity at which your team can adopt these changes to prevent piling on to many changes at the same time.