Two Essential Qualities of a Manager


Apparently a great way to increase one’s blog post popularity is to place a number in the title, as in ’10 Easy Tips to Achieve Ultimate Happiness’ or ‘5 Guaranteed Ways to Have a Great Date’. However, it’s not the only reason I used this headline. I actually believe there are two main, simple to understand qualities that you have to develop in order to achieve great results as a manager (although ‘simple’ does not equal ‘easy’ in this context). In my opinion, all the other traits are built on the foundation of the two below.

Ability to Execute

Let’s say your team has an assigned project, task, duty of some sort – and your task is to drive them to the finish line. You will face obstacles, have schedule or resource challenges, unexpected technical issues, and so on – but most of the time, your team will deliver. You will keep the team focused and motivated, help them get through difficult moments, negotiate with your customers when necessary, and do anything else that is required to achieve the final result. And you will do that without getting your employees or peers to hate their jobs… and yourself.

Sometimes the obstacles can be very tough, and caused by external factors. If someone analyzes them after your failure, they will clearly see that it wasn’t your fault. But guess what, it doesn’t matter. You’re no longer an engineer, you’re a manager – and you’re expected to get things done; excuses (even legitimate) don’t work anymore. Only the end result will be noticed – sad, but true. I guess that’s why so many software developers revert to a technical role after their first leadership experiences.

How to get there is an entirely different story with many books written on the topic. The bottom line is, you want to be the person that people describe as ‘making things happen’, rather than ‘whoa, that poor chap has a really tough project, sucks to be him’. The latter won’t get you anywhere.

Continuous Improvement

Let’s assume you are already good at execution– you deliver the results on time, creatively eliminate obstacles that show up, and so on. Does that make you a good manager?

I believe this is enough to be called an administrator of the team, but if you want to be a full-blown manager, you need to do one more thing: continuously improve your team’s performance. Enhance the development process, tools, knowledge, procedures – everything that can give a long-term benefit for the team and the company.

There are many possible approaches to do that effectively, and I will touch on that in future articles. The same with carving out time for long-term activities of this kind, as it is often difficult. For now, I want you to at least understand the importance of improvements.

What are the consequences of ignoring this aspect and only focusing on good execution of your day-to-day tasks? In the short-term it probably won’t get noticed, but after months or years, here’s what may happen:

  • Fires will tend to occur more often, as you usually focus on dealing with the immediate effects, rather than focusing on root causes.
  • Recurring problems will make your customers feel that they will never be resolved, which can damage their trust in your team.
  • Your employees will notice that they are not growing, which will make them worried, disengaged, and eventually seeking job change.
  • You will lower your chances to distinguish yourself among others in this position.
  • Your managers could see you as burnt out, and may stop considering you for the most interesting projects.
  • You yourself will feel stuck and bored, your work will be draining your energy instead of motivating you.

Of course, in order to have good results in improving your team’s work, you first need to have a vision and prepare a strategy, but also apply the changes in practice. That’s why I have described the execution skill as the first one to master.

So these are the two most important qualities of a manager, as seen by me. Of course in this area there are many different ways to achieve the same result – I wonder what is on your list? Please let me know by leaving a comment below.


What Others Can Learn From IT


In my introductory post I wrote about how I want to help in filling the gap in leadership practices between Information Technology and other industries. I focused on practices that IT leaders could learn from other areas. In this article, I’ll focus on the counter perspective.

There’s been an increased interest in Agile methodologies over the last few years. Agile was not born out of IT, but that’s where some of its applications (e.g. Scrum, XP, Kanban) have been widely adopted. Results were so great by comparison to traditional processes that other industries are now adopting Agile methodologies based on IT experiences.

One of the most interesting examples came from Joe Justice, the founder of Team WIKISPEED, who decided to apply Scrum to building… cars (yup – those with engines, 4 wheels, and everything else that’s needed for driving around). In doing that, he is utilizing a number of practices adopted from software developers. I strongly recommend watching his TEDx presentation (see below), where he explains details of the approach – I’m sure every developer will find them very familiar:

Several years ago, I experienced a similar situation myself, while attending a Scrum workshop. It turned out that only a fraction of the attendees had anything to do with software. I met a geologist, a publishing house PM, and lots of other interesting people who had nothing to do with IT. They simply came to the workshop to learn more about the topic that is becoming increasingly famous in the business world, to see in practice what all those geeks have been doing and how Scrum works under the hood.

People from both worlds, IT and business, can learn and benefit from each other. I trust the articles published here will be of use and value to the wider audience.


Why I Decided To Write This Blog


I’ve been leading software development teams for over 7 years now, and throughout this time, I’ve encountered great content published in the industry: books, articles, videos, presentations and lots of other stuff. Almost all of that knowledge was either purely technical (describing a specific technology or a set of programming practices), or related to particular software development processes. Unfortunately, there wasn’t much about the general aspects of team management in IT.

Sure, there are lots of blogs about Scrum, Kanban and other methods of driving software projects, but I’ve been always lacking a solid resource about people stuff – describing how to lead others, build your authority, manage relationships properly, coach team members, resolve conflicts, communicate feedback… Lots of the soft skills that other industries train their people in very early when they get the role (well, in good companies at least).

For an IT person, when they become a manager of some sort, it is difficult to shift the focus from technical aspects, and they are often left on their own to figure it out. The most curious ones will get to some general management resources – and there are many great ones, of course, but applying them in a quite specific IT environment may be challenging and could raise a lot of questions.

And that’s the gap I want to fill with this blog: gather the knowledge at the interface of Management and Software Development. Some of it will be from my own experiences, other pieces may come from various external sources. I am also hoping for lots of good discussion and knowledge exchange with all the development managers, team leads and lead engineers out there!

I would also like to help those who want to become technical leaders, or have recently started in that role. I still have much to learn myself, but I believe some of my experiences can prove valuable.

So let’s see how it goes – at the moment I have a number of ideas for articles, but I would love to hear topic suggestions from you, Dear Readers – please remember to mention them in the comments.