Thursday, January 14, 2016

Leadership

Recently, I started thinking about my career and what I can do to work on impactful projects. I work in a technical company. In this company, the projects are loosely given to teams of people. In the team, there’s usually a notion of a team leader, and other employees. Every employee (including team leads) has a level assigned to them and going for a promotion means increasing your level. It’s reminiscent of a game in which hard work, some mundane grinding, and finishing quests or projects will eventually get you to a place where you level up. Each person develops a set of skills and abilities as they advance through the levels. One of these skills is leadership. At my current level, aside from required technical skills, some degree of leadership is desirable. However, the next level emphasizes leadership quite a bit more. In other words, in order for me to advance to the next level, I must exhibit strong leadership. So, I started thinking about what it takes to be a leader. What qualities do leaders have that separate them from non-leaders?

Over the course of my education and career, I worked with a number of people that can be considered to be leaders. Some of these people worked directly in a leadership position (ie manager, team lead, professor). Some were leaders even though their role did not require leadership. Now, as it will soon become evident, I haven’t done any research on the topic. However, from experience I can usually tell when a person is a good leader. After all, I’ve worked with both effective leaders and also leaders that were only starting to acquire and use their skills. So, I decided to write down a few thoughts on what I think it takes to be a great leader.

As I see it, there are several qualities that every person in a particular position has. These qualities can also be quantified from high level to low level, depending on how proficient the person is with this quality; how well the person uses the quality. For example, when talking about knowledge, a person can have a high level of knowledge (an expert) or a moderate level of knowledge (there is room for improvement). Leadership, it seems, is a meta quality that is a combination of other, more fundamental, qualities. I would say that as more and more of these fundamental qualities approach high proficiency, the person becomes a better leader.

Knowledge: know the present

Knowledge is clearly an important attribute for any person, leader or otherwise. There are several aspects to knowledge. I’m mostly going to talk about technical knowledge since that is what I’m exposed to at work. For a technical person, knowledge means an in-depth understanding of a system, product, or process. For a leader, this an important quality to have. This allows the leader to be able to both answer questions as well as educate others on important aspects of the system.

I think it’s important to distinguish deep knowledge from what I would call cursory knowledge. Cursory knowledge or understanding is simply knowing the rules, guidelines, and how the overall system works. People with cursory knowledge cannot answer questions that challenge the system or propose different approaches. They simply haven’t developed a deep enough understanding to have meaningful discussions on the topic. People that have deep knowledge, however, are able to explain the reason the choices were made that led to the development of the rules, guidelines, and the whole system. They are able to defend these choices or acknowledge better alternatives. To put it differently, cursory knowledge allows a person to say how the system works. Deep knowledge allows the person to say why the system works the way it does.

In order to improve knowledge, one has to be inquisitive. Leaders, when faced with a system they need to work with, will first take the time to understand it. They will dive in and figure out how the system works, reach out to experts in the area, ask questions, and in general try to develop an intuition for design choices made. Before long, leaders will be able to answer questions about the system and at the very least redirect questions to appropriate experts who understand why the system works the way it does.

Note that one does not have to be a leader to be an expert in an area. However, in my opinion, one has to be an expert in an area to be a (technical) leader.

Experience / Intuition: know the future

The second leadership attribute is intuition or experience. This refers to the ability to guide the design in a direction that yields the best results. In other words, a person with good intuition or sufficient experience will be able to foresee problems before they arise. They will be able to also predict how the system will evolve and will design it to ease incremental development. Technically speaking, this deals with coming up with the right abstractions and relationships to make the system flexible and augmentable. This allows greater parallelization within the team and, in the long term, reduces complexity.

For example, a leader might opt to design a system that isn’t micro-optimized and is in fact marginally slower than the alternative. However, the design might be better in that several components of the system can evolve separately due to a strong API contract between them. This makes it very easy for several people to optimize separate components without worrying about subtle bugs creeping in.

That being said, this can also be the wrong choice. Perhaps the separate components will never evolve, so it might be better to combine them into a single component that can benefit from further optimizations. Each case is different and a person with good intuition or experience would be able to predict which direction is appropriate.

Note that intuition and experience are two sides of the same coin. One can simply have a gut feeling about the correct way to proceed. This is intuition. Some people lack intuition, but overtime it is substituted with experience. That is, if a person lacks intuition, they will over time gain experience that will act in the same way as intuition acts for others: it will provide the gut feeling that is required to predict the future of a system.

Confidence: change the world

Next up is confidence. What is confidence? Well, a person with confidence trusts in their knowledge and experience. It’s really as simple as that. Acquiring confidence means questioning your own decisions less. That means that if you decide to design a system a certain way and you can explain your choices, then you should trust yourself that the design is sound.

Note that this is perhaps the first attribute that somewhat depends on knowledge and experience. It’s hard to trust your knowledge if you don’t have any. Hard, but not impossible! That is, it is possible that a person has a lot of confidence in their choices, even if the choices lack underlying knowledge or experience. This is can be dangerous, since a confident person that lacks other attributes can cause the system to develop in an overly complicated, overdesigned, way. This inadvertently leads to a complicated, rigid system that is hard to change or augment.

That is not to say that “proper” confidence is impossible to achieve without knowledge. Sometimes confidence means knowing how to say “I don’t know”. That is, knowing and recognizing one’s limitations is a useful tool, which doesn’t hinder confidence; it improves it.

The main effect that confidence has is that it gives a person the ability to make large changes without second guessing the decision. It is sometimes easy to fall into a design paralysis, where decisions are harder and harder to make because the person simply isn’t sure if what they are doing is the best for the product or the team. When one develops confidence, these situations arise less frequently, since the person trusts their decisions.

Trust: let others change the world

Trust is perhaps one of the hardest qualities to develop. Contrasted with confidence, trust refers to trust in others. Good leaders trust their team. That is, they know the strength and weaknesses of every member of their team and are willing to gamble the success of the project on their team’s ability to execute.

This is a hard quality to develop, since it goes against the natural inclination to do things yourself. “If you want something done right, you have to do it yourself.” This is a phrase that goes against trust in others. This is especially true for leaders that are also capable of solving the problem themselves. To put it differently, some leaders do the work themselves instead of trusting others to do it. That’s not a bad thing, since leaders typically have more knowledge and ability to do the work. In fact, a lot of the time the work that leaders do themselves is superior to what would have been done by junior team members. However, I think to be a good leader it is important to force yourself to give up this control in order to empower the team. It’s important to invest into the team. It’s important to let the team members grow.

As the team matures and as leaders become more familiar with the team members’ capabilities, trust becomes easier. The most difficult step is taking the initial step to give up control. There will be failures as well. Maybe some team members aren’t capable of completing the task. The trust may have been misplaced. That’s OK. It’s important to consciously continue to develop the understanding of the team’s skills and distribute the work appropriately.

Being a Champion

All of the skills above culminate into being a team’s champion. It’s somewhat hard for me to put into words what it takes to be a champion. Every bullet point list I came up with seems insufficient. A champion is a person who knows that they are a leader of a team. They know their team and are willing to fight for their team. They encourage team members to grow into leaders; they guide them; they help them. They also sometimes take a fall for the team in order to protect the team’s image or even to protect individual team members from stressful situations.

One way I can put this that I think reflects the attitude of the champions I’ve worked with is that they no longer care about their own personal level or position within the company. They start to care more about their team’s projects and their team member’s levels and positions. The champions I’ve worked with will surely rise higher in levels, but when interacting with them, I always had an impression that they cared about my level more than their own.

This sounds self-centered. I’m not trying to say that I want people to care about me. But, it is good to know that a leader and a champion can put aside their personal priorities in order to help the team; to give credit even when sometimes the credit is undeserved; to take the blame when the blame is not theirs to take.

What now?

This post only really touches on some aspects of leadership that I think are important. These are the qualities that a person should have to be considered a leader. However, even within the ranks of leaders there are qualities that differentiate people. Some of these are conflict resolution, communication style, being mature, having vision and scope, etc. Once a person is a champion for the team, they can still move up to be even more impactful. As for me, I’m just trying to be a leader first.


I’m kind of tired of revising this post over and over again :), so I’m just going to close with this:

Be a leader. Be a champion.