The road to ideal: a short guide for programmers and their leaders

Niccolo Machiavelli wrote in a manual for an effective manager: “As an artist, when he paints a landscape, you have to go down to the valley to cover hills and mountains, and climb the mountain to cover the valley, and here: to understand the essence of the people, to be a sovereign, and in order to comprehend the nature of sovereigns, one must belong to the people. ” I think that according to the observation of the Italian thinker, anyone who goes from a programmer to a company leader collects a whole collection of typical problems of managers and developers. In this article I want to share my observations. I must note right away that all the errors cited were made by me personally, and some even several times. Any coincidence is not accidental: we are all human.


Tips for executives from employees

1. Define goals and objectives and try not to change them every day.

The well-known management consultant Yitzhak Adizes compares the organization with a chain of interconnected gears, in which the head is a large gear, and his subordinates are smaller gears. A small movement of a large gear can cause several small revolutions. If the leader is a person who has “seven Fridays in a week,” then his employees will very quickly get tired of his constant throwing and will be guided by the principle of “do not rush to fulfill the order – cancel”, and the organization turns into a viscous swamp. The leader should have a clear vision of goals and objectives, and, of course, the will to achieve them.

2. Do not demotivate!

“Yesterday I tried the stick and carrot method on my subordinates. The gingerbread is uncomfortable – it crumbles upon impact. We must test the whip and whip method. ” Unfortunately, sometimes this joke turns into a steady behavioral pattern of a leader. An employee performs all his tasks and even more, but he is not noticed, good work is taken for granted, and any mistake is considered a critical failure. This model of behavior is very hard on the motivation of a specialist and negatively affects the whole team as a whole. Employees begin to be guided by the principle “Closer to the kitchen, away from the bosses.” Managers need to learn to see the results of work and successes of employees and to encourage their achievements.

3. Keep your friends away from business

It’s good to drink beer with friends and discuss IT industry news, but running a business can be problematic. Friends of the leader at some point may decide that they are outside the established rules. Envy may appear, a desire to use friendship in their own interests and to the detriment of the common cause. The manager must clearly distinguish between personal and working relationships. Friendship built on business is better than business on friendship.

4.Do not be a rag, fire loafers

Management is related to conflicts. When the leader tries to be good for everyone, this can lead to the situation when loafers appear in the team, whom he cannot fire. The reason is the threat of tantrums, tears, tales of a difficult life situation, and sometimes blackmail. There are situations when an employee frankly “scores” for work, but when threatened with dismissal, he “remembers” that he, it turns out, has a demanding wife and children at home who need to be fed and must be taken out to the warm sea for a month or two in the summer. Why does the awareness of his personal responsibility not come at those moments when he begins to “knock down” to work at one in the afternoon or include entertaining videos on YouTube during working hours? If the manager admits similar behavior in his team, then the efficiency of the remaining employees begins to decline, as people ask themselves: “But what, it turns out, could it be?”. You need to be able to part with loafers quickly and without unnecessary sentiment, they must work with our competitors.

5. If you require processing from employees, then head it!

In the mid-2000s, I participated in a project to develop an inventory management system for an American pharmaceutical company. The project had a poor background: the customer independently described the requirements, and our project manager joyfully agreed to remove the phase of collecting and analyzing requirements from the project. Accordingly, when it came to implementation, unpleasant surprises surfaced: contradictions in requirements, ambiguities, obvious mistakes, and the project deadlines “floated”. The manager made a strong-willed decision: “We will work on Saturdays!” We fulfilled the decision and began working in the office on weekends, but we did not see the manager in those days. Our attitude to the leader sharply worsened, which affected the effectiveness of our work. If the manager wants to encourage employees to process and labor exploits, then he himself must prove himself and not forget about the motivation of his employees.

6. Learn to hold meetings

The higher the employee ascends the career ladder, the more space in his life is occupied by all kinds of meetings. It is known that meetings can have different types and take place in different formats. Meetings may be:

  • operational (questions: “Who / what is doing? What are the results / problems? What are the plans?”);
  • systemic (questions: “How to establish this process and remove the mess in it?”);
  • strategic (question: “What are our goals and objectives?”);
  • ideological (questions: “Why are we all doing this?”).

Everyone is also familiar with the meeting formats:

  • exchange of opinions (each speaks in turn);
  • report (one delivers a presentation / report);
  • discussion (anyone can take the floor);
  • brainstorming (chaotic generation of ideas with a complete prohibition of criticism).

It is necessary to prepare for meetings, manage their progress and ensure the implementation of decisions made at them. If the leader admits the mixing of the types and formats of meetings, lets everything go by itself, then instead of solving problems, he achieves only their “speaking out”. By the way, resumes of specialists began to come across, in which, among their key skills, participation in meetings was included, perhaps candidates imply that they learned to sleep with their eyes open.

7. Understand what you are leading!

If the leader took his place, but at the same time did not go the way from the bottom of the career ladder, then there is a risk that not all the processes that he is trying to manage are transparent to him. In this case, he becomes a hostage to his subordinates, who can tell him for years about unsolvable tasks and space terms. The leader must be able to understand the essence of the problem and, if necessary, dive even to low-level details, for example, look at the implementation of the algorithm in the product that his company creates.

Tips for employees from managers

1. Check for yourself!

In relation to the results of their work, on one side of the spectrum you can place specialists who do everything to “get rid of”, and on the other side – perfectionists who can never finish work because of their manic desire for an unattainable ideal. A professional developer should be somewhere in the middle and create a code in which he himself is sure, since he tested the correctness of his work before transferring it to testing specialists. In severe cases, testing is carried out by customers for their own money. In my opinion, any employee of the company, before transmitting the results of their work, must independently verify the level of its quality and not rely on someone else to check for it.

2. Ask Google first!

There is an old student joke.

We decided to conduct a survey among students.
The American is asked:
– How long will you learn Chinese and pass the exam?
“Well, that’s a very difficult language … Two years of effort.”
The Englishman is asked the same question:
– If the four, then somewhere in the year. And I’ll never give it to the top five.
Asked a student at MSTU. N.E.Bauman, he replies:
– Is there a training manual?
– There is.
– Now I will finish, I will go to hand over.

Now any developer has unlimited access to documentation, to opensource projects, in which the problems that he encountered in his work are most likely resolved. Nevertheless, there are people who, having met the first difficulties, give up without finding a solution in a search engine. A good developer should be able to use Google, formulate thoughts in English and not be afraid to look into someone else’s code on GitHub.

3. Do not spend all the time creating a framework instead of completing tasks

As an undergraduate, he completed an internship at a company specializing in software development, during which he first heard about the standard problem of programmers that is still relevant. Developers are always interested in new technologies and pure creativity. Instead of trying to solve a specific problem that the customer needs, we begin to create our own framework, with the help of which, we think, then it will be possible to solve any customer problem. As a result, we leave very little project time to solve the problems for which we are paid money, and the quality of the product begins to suffer. You need to be able to solve not all kinds of problems, but solve those problems that are really important for users of our products, and, of course, initially lay the possibility of painless expansion of functionality. If you want to feel like a creator of the framework, then a lot of opensource projects are waiting for us in our free time.

4. Learn to structure!

The programmer, in my opinion, is a person who sees data structures and algorithms in everything and loves to find solutions to problems. However, sometimes in our profession there are people for whom it is extremely difficult to structure information, see dependencies, and find solutions. Instead of finding a solution, some happily come up with a dozen unsolvable problems. A professional must constantly work on himself and study the relevant literature, which will allow him to turn into a structured problem solver.

5. Do not try to become irreplaceable! Document!

At the internship mentioned above, the head of the training center told us about another standard development path. The project starts and is first led by only one professional developer who does everything himself and keeps everything in his head. Then he has assistant programmers who follow only his instructions. At the same time, due to the lack of documentation, as our pro has no desire to share his sacred knowledge, the assistants do not know how the product works and how it works. It turns out the product of one person. Then the solution is brought to the market, users begin to exploit it and find errors. Only pros can solve problems, and now his work is turning from free creativity into a nightmare. He is bored of this, and he leaves for another project in another company and no longer wants to hear about his brainchild. Happy users are left with an unsupported solution. Only full-fledged documentation of development and the exchange of knowledge in a team avoids such a sad situation. Now companies are actively implementing safe development processes, which also include detailed documentation of the project. By the way, GOST R 56939-2016 “Information security. Secure software development. General requirements ”was developed by experts of our company.

6. Love your product!

Professionals love their work and are proud of their code. Non-professionals may consider that users will already use their product, for example, due to the lack of available alternatives. A distinctive feature of such vendor companies is their reluctance to use their developments within the company. In my opinion, if a programmer does not burn with the product that he creates, does not respect his users, then he should think about changing the scope of his efforts. Thus, he will facilitate the life of both himself and the many clients of the employing company.

7. Be positive and open to communication.

Many IT professionals are not always sociable, because of which they can and undeservedly suffer. Moving from development to IT consulting, I worked hard to stand out among my colleagues and get a double promotion (jump over a step in the career ladder). Even the first time passed the CISA, CISSP professional exams, which should have been passed only by specialists who have a couple of years of experience more than mine. When the letters of appointment came, I was surprised to find that I was promoted as well as the others – by one step. Then I finally got the courage and asked my leader about the promotion, to which I received a simple answer: “Yes, you work great, but you never said about your goal to get a double promotion.” You need not be afraid to communicate with both colleagues and managers, people around you should know what is in your head. Even if the developer is close to genius, but at the same time does not know how to communicate with colleagues or even is “toxic” (negativist), then he will not be of much use, but he will be able to spoil the life of the whole team. Communicative skills in the modern world are very easy to develop and this opportunity cannot be neglected.

8. Understand what you are programming!

Just as managers need to understand the processes that they control, so programmers must understand the subject area in which they work. What is programming inherently? Creation of algorithms and data structures reflecting the subject area. If you do not understand what you are doing and how your program makes life easier for users, you cannot create a good product.

Instead of a conclusion

The topic of the article, of course, is extensive and it is impossible to limit it to a few sore points that we managed to write about. Famous authors write entire books about this. From what I read, I would like to recommend two: “An ideal leader. Why they can’t become and what follows from it ”by Yitzhak Adizes and“ Ideal programmer. How to become a professional in software development »Robert Martin. I’ll also add that right now we are expanding the development department at our Echelon Technologies company (part of the Echelon group of companies), and actively looking for talented developers of different levelswho share our views on life and work.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *