Effective technical leadership

image

Most successful projects have a single developer responsible for moving the project forward through confident making major technical decisions. Usually this person is called technical Manager. As a rule, he does not manage people, but instead teaches them the best way to do their job.

All companies are different, but among the best technical leaders that I have worked, there is something in common. Hats off to Brian Storeroom, Nathan hunt, Evan Gilbert and rich Burdon for the fact that I was a good example.

In this article I will tell you that is a strong technical leader, in terms of its qualities, functions and actions. Many of these principles makes a person in General is cool in life. Your experience may differ from mine.

Quality


You should always improve its quality: competence, speed, and awareness.

1. Competence
Technical knowledge gives you the insight and confidence to make the right decisions. Strong technical leader has a broad and deep knowledge. If any team member asks, how does a particular component or system, you should be able to explain it in enough detail or point to someone who can do it.

To stay competent, I do three things in the following order:
    the
  1. Evaluate the code
  2. the
  3. Read project documentation
  4. the
  5. Write code (see ABC: Always Be Coding)


The order is important, especially for the first two points. If the work is done, but waiting for assessments, almost always you need to set aside their own work and to help the project to move forward. If you are helping others, writing code helps you to be aware of the code base.

The technical leader must master several technologies. For example: Java, JavaScript, C++, distributed systems of data storage and web development on the client side allow you to hold the position of technical Manager for serious web applications (read more about the Full Stack specialist)

2. Speed
You must learn to quickly react and to make instant decisions, always taking the ball forward. Coming to you with questions, developers should know that you will get a quick response.

I personally pride myself on my ability to answer quickly. The goal is to seem omnipresent to his team. My secret weapon – my incoming emails, so I prefer to use tools that closely integrate with email.

For example, regardless of what software you use to track problem-solving, assessment of code and reminders, team members should receive email notification and have the opportunity to comment via e-mail. Let each member of the team to respond quickly to new or changed issues and to stay updated with all changes, even using a mobile device.

3. Awareness
You must learn all the time to keep in mind the current state of the project. Otherwise, you will not know about the potentially imminent blockers. If there is an internal or external force that can slow the project, you should know about it.

Again, the key point here is integration with email. Ideally, all changes or updates must somehow take place via email, even when it comes to offline meetings. For example, after each meeting, someone should send a memo to all team members, particularly if there were important decisions.
You should always enhance the three above-mentioned qualities, because you can always become faster, more competent and more knowledgeable.

Options


There are five main features that, as it turned out, I was constantly performed at one time or another, as technical Manager. Almost every action can be attributed to one of the following functions.
Over the years I realized that two of the most important things you can do the technical supervisor, the opposite: this is lock and unlock.

1. Lock
The lock requires a high level of awareness and covers the strategic decisions and tactical development tasks. The technical Manager should always know what's happening in the project, and always be ready to engage and block the bad decisions before they are adopted, usually by offering the best solutions.

For example, the developer sends the assessment to another project developer of any code which looks to be the evaluator safe, but in fact introduces new bugs. You can intervene and warn the author before the transfer or release that will be very useful for the author, the evaluator and the project as a whole.

The lock should not stop progress, it adjusts the process so that he wouldn't stop. Think about how to do it right initially, not how to fix it.

2. Unlock
Opposite lock unlock no less important. The road to hell is paved with idle developers. If someone has a question, you should be in a position to answer, or to lead for that right person.
Helped me to develop this skill the presence of interns. The best interns ask a lot of questions. And if they don't get answers, they can often get stuck or worse, give up. I had to learn to give the correct answers or lead them to people who will lead them forward.

3. Redirect
No matter how good you are, you don't know everything. And you can't answer any question. And even if technically you could do almost all your time would be given over to answers to questions. To fill these gaps (and be able to perform your own work) you have in mind to compile a list of experts to always know where to find the answer. The original and the redirection is an extremely useful practice. Technical Manager often "man 302" (or forwarding), which connects people. If a developer in your team not sure or asking a question to which you don't know the exact answer, understanding to whom it should be sent is extremely valuable and saves a lot of time.

In addition to the redirect issues proactively adding the right people in any process or evaluation code can help improve the overall quality of work. For example, if a developer adds code to a critical component, not originally created by him, adding the expert to the evaluation code will help to ensure the correct implementation of the function.

4. Decision
Part of your duties – decision-making, which will rely your team. The faster you are able to make a decision, the sooner others can begin to act in accordance with it. Often a clear path forward is missing, in such a situation the right thing is to follow your gut.

Listening to your instincts, make sure you take a sensible decision, which will stand the test of time. The project will likely continue after your departure, and you would not want your receivers you cursed. This often happens with projects that have a large technical debt.

Faced with the need to make a decision when there are several possible options, I usually adhere to the following procedure:
the
  • Reduce the number of options to 2. The complexity of any problem increases exponentially with each option.
  • the
  • Quickly determine whether you can make the best choice based on experience or data.
  • the
  • If the correct answer at this stage is not obvious, is it possible to redirect the question to someone who is more suitable for decision-making?
  • the
  • If still can not make the best choice, then you may have insufficient data or asked the wrong question. I or block the decision or unlocks it, following the instinct.


  • The above steps should instantly be held in mind.

    the Quality of solutions like RAID Falcon in good time, allowing him to shoot down and kill his victim. – Sun Tzu


    5. Demonstration
    One of the most important qualities technical leader is the ability to demonstrate by example. We've all heard the phrase "lead by example", but I prefer to show and not tell. Technical Manager is typically not a Manager, so he focuses his energy on code, not people. It is therefore necessary to gain respect and confidence from his team, which is best achieved by demonstrating that you know your business.

    Most managers can be hard to find time to write code, but to do is very important. I call it "create time". Even if I spend very little time "black work" to eliminate the annoying bugs or add something where necessary small useful pieces of code, I'm going to do it. It is more valuable to you than the code itself.

    Actions


    Below is a list of what typically makes the technical Manager to promote the project forward. This list is far from exhaustive.

    the
      the
    • Creates and maintains plans for the development, testing and release.
    • the
    • Conducts effective meetings team.
    • the
    • as needed ensures the usefulness and conciseness of the meetings.
    • the
    • Helps to identify and prioritize the project.
    • the
    • Often says "no" to the new excess functions.
    • the
    • Determines the best ways track solution.
    • the
    • Organizes hackathons and bug fixes.
    • the
    • Supports cross-functional relationships.
    • the
    • Specifies target dates.
    • the
    • monitoring the emergence of useful tools.
    • the
    • Instructs other developers.
    • the
    • Hires developers from other teams.
    • the
    • Accepts interns, making them successful.
    • the
    • evaluates the code and leave helpful comments.
    • the
    • Reads, writes and comments on the project documentation.
    • the
    • Wrote the right code at the right time.
    • the
    • Protects developers from management, if necessary.
    • the
    • Works with other teams, especially dependent.
    • the
    • Defines technical debt.
    • the
    • Explains why decisions are made.
    • the
    • Fighting for the right decisions.
    • the
    • Finds time to work with technical debt.
    • the
    • Distributes the load in the team.
    • the
    • Accept new developers and assigns developers as mentors.
    • the
    • Adjusts the rate and target dates as needed.
    • the
    • Supports the determination of the minimum viable product of the project.
    • the
    • Evaluates architectural decisions and their consequences.
    • the
    • Provides write tests for basic functions.
    • the
    • Supports the processes of on-demand and on-call processes.
    • the
    • of necessity raises the blocking problem.
    • the
    • Examining the issues of privacy and safety of the product.
    • the
    • Often generates new ideas and superior solutions.
    • the
    • Solve complex production issues.
    • the
    • ... and so on.


    Install, how to become a successful technical lead, does not exist. The best of them are productive coders with vast real-world experience of product development. Now remember the best leaders with whom you worked, and think about how what you read above is applicable to them.
    Be confident, keep moving and improve constantly!

    the Translation is done in the framework of the summer school start-UPS Tolstoy Summer Camp.
    Article based on information from habrahabr.ru

    Комментарии

    Популярные сообщения из этого блога

    Briefly on how to make your Qt geoservice plugin

    Database replication PostgreSQL-based SymmetricDS

    Yandex.Widget + adjustIFrameHeight + MooTools