Let it go

I started my career in software development 30 years ago.

I was 9 years old when my dad bought me my first computer. In post-communistic Poland it didn’t come by easy. After weeks of going through local paper adds, he managed to secure one from a post graduate student. I became a proud owner of Atari 65XE.

As it was just a computer with no persistent storage, I had no other choice but to type in programmes myself. Initially I was copying listings for games and other software from Computer Magazines. After a short while I picked up a book on Basic and learned my first programming language.

Fast-forward few years later I finished my Master Degree in Computer Science and started my first job as a Software Developer. I progressed my career through variety of industries and technologies. At some point, I started to lead a team of developers. It was the first time when I encountered the important learning: becoming a leader means that I needed to “Let it go” . The “It” depends on context and leadership level, which I will come back to later. As well as discovering that I had to “Let things go” I also discovered that I was not very good at it.

Early days

When I started as a young tech lead on a team, I fell into following traps: trying to write code 100% of the time and making all the technical decisions myself.

Coding 100% had undesired side-effect, I was left with no time to think about software architecture and technical vision.

Similarly, trying to make all the technical decision left me becoming a bottle-neck, stretch my time thin, resulting in demotivating the team.

Fast-forward, few years later I was responsible for multiple teams and fell into similar traps: being involved in all the technical decision making, while still trying to write some code and being a developer.

As a result I had no time to write code and became unreliable team member who couldn’t dedicate time towards product delivery. I was also even bigger bottle-neck as now I was stopping multiple teams in progressing. Finally, I was not contributing towards wider organisation architecture and technology strategy as I had no time left for it.

However, recognising an issue is the beginning of a “therapy”. After reading an excellent series of Pat Kua’s articles on Leadership I discovered that I need to “Let go” of my current approach.

But … letting go is never, EVER, easy.


Why is it so hard for humans to accept change and “Let it go”?

It’s because our brains are pre-programmed with recognising patterns. Early human had to fight to survive. Every change in the environment meant unexpected consequences, at time resulting in death. Diverting from common patterns causes stress. We don’t like stress and that is why we are staying in a comfort zone of what we know, as we’ve been doing it before. It feels safe.

Image result for change

How to let go

Starting point is to accept that the change is inevitable. Trying to do all the same things as before plus dealing with new responsibilities is not going to work. You will drop the ball on one of them sooner rather than later.

Next step is to identify what you need to change and “Let go of”. For me change in the tech lead role meant initially that I had to stop coding all the time, learn how to delegate, reserve time to think and visualise technical vision.

After moving to another leadership level I had to learn the language of the business, how to communicate well and delegate even more.

Most importantly I had to accept the fact that I will no longer be the Subject-Matter-Expert in all aspects of the Platform, Products and Architecture but my new responsibilities include driving the vision forward.

I found that talking with my manager about ideas and changes I was introducing helped me a lot. That is why finding yourself a mentor or a coach is helpful during the process.

Finally, there are things you can do to train you brain to accept change easier, it involves cognitive training. Things like brain games, learning new languages or taking up a task that is not in your comfort zone. All of those activities will flex your brain muscles, helping you adjust to new circumstances introduced by change.


Wether it’s leading the team or organisation, leadership is about vision. Organically grown leaders are often falling into traps of sticking to their previous behaviours and patterns, sacrificing their time and forgetting about the vision.

We need to “Let go” of the old habits and accept the change, resulting in a clear vision for team/organisation to follow and more productive and efficient teams.

Napoleon of technical leaders

There is no I or Me in a team. There is only the team. But team needs a leader. It’s a well known fact, human psychology, we need leaders. It is something we might not admit to or not even know about it. We will look up at a guide or a inspiration that will lead our work, correct our mistakes or give advice.

Sometimes team leaders are developing during the process of team formatting (beginning of the team) as a natural process, sometimes they are being assigned to do the job.

Us developers need a technical lead, someone who will guide us while we are doing our job. After few years of IT experience, I can say that I have worked with few good and few bad team leaders.

What makes a good team/technical leader then? Whatever makes a good leader plus strong technical capabilities.
Good Listener
Good listening skills.
It means that you will be listened and your opinion will be taken seriously. I have worked on few occasions with people who just couldn’t listen to any proposition and everything had to be done their way. It ended up usually in waste of time and slide in project delivery. I do have to admit that some of them took all the blame and did extra hours to work out the problem.

Extreme Flexibility

Flexibility and openness.
This one is a brother to good listening skills. I have worked with a tech lead whose openness and flexibility lead to many great technical discussion with entire team and brilliant ideas.

Decision MakerAbility to make a decisions in difficult moments and change any decision if necessary.
As much as flexible and opened team leader can be, she/he always needs to make a decisions when it’s necessary. All the discussion we had as a team about technical and non technical issues on a project will never end if someone did not put his feet down at some point.

Point out mistakes and appreciate good job in person.
When talking to a bigger forum or entire team should not discuss individual success or mistakes. Taping someone in a back in front of the entire team will only tell others that they have not worked hard enough to deserve it. Same with criticising anyone, will make everybody else on a team feel better then the one poor geek that got earfuls. All that destroys team spirit and integrity.Motivator

Be good motivator.
People need motivation. I do. If there is no other driver in the team at least team leader should inspire and motivate.

VisionHave vision and approach things with passion.
Passion works like a motivation sling. It gives extra boost to entire team if there is at least one person that is so passionate about the tasks that team is facing. I’m damn convinced that at least team lead should be that person.

Presence and appearance.

Technical skills.
Last on this list but equally important. I was working with team leaders that were making bad decisions because they lacked technical skills. They were also to proud to listen to the team and take suggestions on a board. It ended in a massive disaster.

I’m sure this is not the complete set. It contains some of the important factors I could think of and I’m looking for in a leaders. You are more then welcome to complete this set in comments.

The list is not in any specific order. I believe all the points are very important and you can’t have great team leader without all the skills. I am also aware that in real life this will be far away from true. Even great leaders in the world history had their flaws. After all we’re all humans 🙂

Cheers, Greg