As a former Head of Software Engineering, I have seen a lot of pattern and anti-pattern in the past 5 years. These are my top 5 learnings from managing 40 developers.
1. Automate as much as possible
Even though your team consists of great, intelligent and highly educated members, there is always a need to automate. Automation gives you time and quality advantage and introduces new processes to your work. For automation in software development there are several tools one can choose, best practices are:
- Git and Pull-Requests with Notifications e.g. in Teams/Slack/via E-Mail
- Test automation with Unit-Tests, Integration Tests and UI-Tests
- Release-Queues
- Deployment-Queues
- Automated Updates
- Automated documentation
2. Get your processes right
As any kind of leader, you are responsible for your team and that they get the work done. But it is not the goal to only get the work done, the work has to be done in a transparent and reproduceable manner. As a team grows and staff is working on different topics, the need to standardize and work in a specific manner is very important. So, the job of a leader is to introduce and maintain a certain kind of process how the work is done.
3. Discuss and Educate
Not only how work is done matters in a larger team, even more important is WHY we are doing it and WHY we are doing it in a certain way. As Simon Sinek describes in his book “Start with WHY”[1] it is one of the most important things for a company and a team to know why they are doing something. So, paint big visions and pictures in the minds of your colleagues. Often you think that someone who has multiple years of experience in the IT industry knows how certain kind of frameworks and processes work, but that’s not a given case. This is why everyone who is responsible for some kind of process like scrum should check the knowledge of each teammate. If there is something not clear or needs to be discussed the team members have to be educated.
- Start with the Vision
- Clarify the Why
- Educate your colleagues in Scrum and how good clean Software Engineering Processes work.
- Educate them and create a common knowledge of DevOps processes, and GIT processes
4. Show me the data
Often, we tend to create answers before we even looked at the problem and current state of the problem. In order to make good decisions you can not only trust your feelings. So, one big learning is that you need to collect and interpret data. You should collect the following data:
- Performance Data of your Sprint
- Data from your backlog
- Quality data (such as Bugs, Code Coverage, number of Tests written, …) of your Software
- Usage data of your Product (you need to know who is using your solution in which manner)
- Marketing data
- …
Only if you have the underlying data you can decide what the next smart move is and what to do next. Collect the data automatically and use tools as PowerBI to interpret the data.
5. Work with people and deal with emotions
Although we all work in a very technical environment and are technicians by heart, we all are normal humans and have our emotions. This is why you should never forget to create good vibes and have to deal with different kind of emotions. One big factor in increasing the efficiency of a team is by increasing the team satisfaction. Use video chats and other kind of technology to stay in contact with your teammates and make space for unofficial calls where you can also discuss private topics beside work topics and just care for your colleagues and their well-being.
What are your favorite hacks and tools?
Tell me about it in the comments section below!
written by David Theil
Recent Comments