Does the manager need to be able to program

    Last week, the seventh enrollment in the Yandex School of Managers started . This time we decided to supplement the program with technical lectures and for the first time added a technical question to the test task. In this post, I will share my opinion on why, without the ability to program, it will be more difficult for a manager to know and develop his product.

    Everyone understands that to work on a product, especially in IT, knowledge of technology is somehow necessary. For a manager, the words “backend”, “layout”, “database” should not be new. To catch bugs or see growth points in a product, you need not only to constantly use it, but also to understand how it works. It’s better for developers to come up with the wording “layout takes a long time on the mobile Internet” or “part of the data doesn’t load in this scenario” rather than saying “something slows down, look.” Thus, the manager shifts the generation and testing of hypotheses about what is happening in the problem place to the developer who has “the same exact leg, but does not hurt”.

    If the manager, for example, when reproducing the problem, opened the browser console, saw network errors in it and came to the developer with the data from the traces of these errors, or looked himself in the data and saw that the backend had given incorrect json, the situation immediately begins to look like corroborated by evidence a problem, not just a single user complaint.

    A similar situation arises with the ability to program. Imagine that there is a manager who roughly corresponds to all points from the last post , but does not know how to program at all. How is this person perceived by the rest of the team?

    • Hi, I think that it’s necessary to gag the awesome feature A (B, C, D, ...), I want to check how much it will be in demand. Please tell me, what is the proportion of such and such scenarios in the use of our product?
    • Hi, I occasionally have a page crookedly drawn, if users see it too, it's just a shame. Check what is going on?
    • Hi, here in the AB experiment, the metric is statistically significantly changed, let's understand why?
    • Hi, here I am writing a post about our new implementation, please check if I have correctly described the implementation details.
    • ...

    Such a manager is perceived by the team members as a constant generator of additional and sometimes useless work for them. And here the ability to program can help the manager to organize his work and the work of the team more effectively.

    Being able to program, you can quickly test your own hypotheses without relying on other people's calculations and without distracting people with orders for these calculations. You can independently calculate how many users saw feature X, or collect some statistics for the presentation. Many programmers do not like to switch contexts, and the manager’s requests to “quickly figure out” something distracting according to the data and can “bring down the mood for work” for a long time. A manager who can “quickly figure out” himself will pull his team less, thereby increasing its productivity. What is called product vision should be supported by qualitative and quantitative research. And the happy team is that in which the manager knows how to conduct at least simple quantitative measurements on his own.

    In addition, the ability to program helps to validate the calculations that analysts bring. If, for example, the manager asked to calculate the proportion of requests with some kind of complex set of actions on them, and the analyst brings a calculation in which the total number of requests simply does not match the manager’s own calculation, he has reason to doubt the correctness of the calculations and ask for a reasoned check.

    Even the most basic programming skills sometimes help a lot to speak the same language with developers. This at least adds “karma” to the manager among developers, because how can he set tasks for them, if he does not understand what they are doing? If the developer says that you need to take a week for refactoring, and the manager does not understand why this is necessary, and rushes him with features, and then the developer has a huge technical debt, the whole project may suffer from this.

    It can also help with planning, because it allows you to better understand the complexity of the task, and if the developers say that there is development for three days, and the manager understands what he would have done in a day, then you can more adequately assess the timing and not be afraid to dispute the voices voiced by the development options.

    In any specialty, cool self-sufficient specialists are appreciated. Other things being equal, programmers with developed soft skills will prefer an introvert programmer, just as a manager who knows how to program and has a technical background will be valued in technology companies more than just a good manager.

    Where can I start?

    Many work files, scripts and some data are located on servers with console access via ssh, so you need to be able to be friends with the command line to work with them. The command line interface is also available on unix-like systems (Linux, MacOS), and on Windows.

    If you haven’t worked on the command line before, you can start the acquaintance by reading, for example, the article “Linux Basics: Introduction to bash” .

    I give specific references only as examples. I would like you to have an idea on how to:

    • navigate the file tree
    • create, copy and delete files
    • edit files using Vim or nano
    • using ssh and scp to exchange any file from the laptop to the server and back.

    Often, data files are very large and you cannot use, for example, Excel familiar to many of you. Therefore, it is worth getting acquainted with the commands for working with text files:

    It will be useful if in the end you get an idea of ​​the following commands: cat, sort, uniq, wc, head, tail, awk, sed, grep, join.

    It is very useful to know the grep command using regular expressions:

    A more powerful and flexible tool for working with data is Python. In order to master it, any online course is suitable, you can start with codecademy . 10 minutes to pandas - for those who want to quickly and easily analyze data.

    In conclusion, I want to clarify that the ability to program for a manager is not dozens of read books on python or pluses, not thousands of lines of committed code (although most likely no one will refuse such a manager!). Many companies have ready-made tools where, in the sql-like language, or in general drag-and-drop fields in a beautiful interface, you can configure a query for data and get a report in the right form. And in this case, “programming” is about the ability to understand the data structure, the critical attitude to the information received and the desire to get to the very very depths of your product yourself. However, the larger the project needs to be managed, the more technical knowledge can come in handy. The manager may need to evaluate the project architecture proposed by the developers, monitor the availability of tests for all components, suggest what you need to refactor. Good managers can endlessly develop technical knowledge and immerse themselves in the device of their product. Honor and praise to such managers.

    Also popular now: