Monday, October 23, 2017

Organization of the development department from scratch

Slides: link

Introduction

What is the basis of the post?

I base my post on more than 10 years of experience in organizing various types of activities and groups:
  • As a foreman of the brigade of installers, I organized networking activities
  • As a teacher, I organized the activities of students to achieve the goal of pursuing the course
  • As a customer, I organized the work of contractors
  • As the head of the testing department, I was engaged in organizing work to achieve the required level of quality of projects in the development
  • Now as the head of the development team, I am engaged in the organization of works on the creation of projects.



I tried to make a squeeze out of my observations and conclusions drawn from them. I want to warn: the topic is extensive and the materials are written a heap, so I'll tell you the key things. If you have conflicting questions, doubts and turbulence as a result, that's good. Ask me them by mail or through social networks.

Define the concepts

Organization is a process, an activity to create and improve the interrelations between parts and elements in order to bring order to processes and improve their effectiveness.

No matter what activity - the principles of organization are laid the same. Yes, each group has its own characteristics (specificity of activities, culture, ways of implementation), which the head takes into account, but the essence of the organization as an activity does not change.


Why is it so difficult to start from scratch?
On an established project, much has already been determined: processes have been established, regulations have been established, people have been hired, and tasks have been prioritized. We are already in the process and take into account the circumstances.

At the start, you start from scratch. Eyes run up, you have to do so much and it's unclear how to start, where to put priorities, what tasks to choose. At this stage, you are already waiting for results from the program, but nothing is ready yet.

The first relief:

In fact, with all the problems of growth and development, it's easier to grow. Since energy is spent less than when stabilizing and maintaining a balance. But there is a high share of uncertainty and risks.

Where do we start?

First we need to understand where to develop. You need a clear understanding of the goal, in order to know more precisely where you will move and how you will understand that you are going in the right direction? The goal defines the criteria for achieving.

What's next?

To determine the goal, talk with your manager and the heads of departments with whom you will work. Find out what they expect from you. Have your manager expect these expectations.
For navigation in space, in addition to a clear understanding of the goal, it is important to understand where you are right now. What means do you have? What do you have? What is the budget? What means of production? How many people are there? What time frame?

How to move towards the goal?

Tasks and their implementation - the main way to move to the goal. As soon as you begin to understand the path, you can estimate that with the current means for you is realizable and what is not.
Remember the project triangle? Money, time, demands, and in the middle quality. This is what you manage in terms of tasks. You can ask for more resources, reduce the quality of tasks, throw out tasks, ask for more time.
Restrictions are an important indicator. They allow you to focus on reality and execute a project. They give definiteness, they gather people into a pile and give them the opportunity to do something. Without these frames, you will be like amorphous amoeba.
What is the power of limitations? They give control points. In fact, your task as a leader is to feel these limitations, to catch them, to look at them in terms of their importance and understanding of what can be done with them.

You discussed the tasks, discussed the stages ...

Act iteratively. For project management, many use the Agile methodology. Why did they take root so? In fact, they make it possible to bring together the leadership and subordinates, make the processes more transparent and give the opportunity to receive feedback.
Why is it important? You create a zone of trust, but do not lose control of the project. You give people the opportunity to choose things (solutions), but at the same time lower them tasks from above and watch out for the result.
The choice of methodology does not affect management. There are basic principles that exist in any production. Does not matter the industry, standards, people and stuff. These nuances, of course, change the appearance and make adjustments to the processes, but people are still people.

When is the formation of the department?

Formation of the department occurs as projects are implemented. Do not immediately describe in detail every millimeter of the path. So you will not do anything. Excessive planning drowns projects. Ideally, if the process is fixed and detailed, it is necessary if necessary. As you enter new people, you:
  • fixing arrangements;
  • fix and approve plans;
  • Establish job duties and regulations.
In my opinion, it is worthwhile to think about the formation of the department as the portfolio of projects grows. While you only have one project, you only need to pull it. You are still too weak to formalize processes and recruit people.
On the other hand, planning, regulations and job descriptions create a framework and allow for the recording of agreements. They make it possible to reduce the zone of confusion in the minds of people.

Matrix vs Hierarchy vs Agile

In my opinion, the organization of the structure depends on the context, the customer, the specifics of the product, but it does not change much. In our case (the Gett company) on the face is a combination. When there is a matrix in the hierarchical structure in which there is an agile of a team whose members are subordinate to the development manager who submits to the director.
It's like burning a fire - balance is important: too much wood - and you can not light a fire, it's not enough - the fire will quickly die out and give a little heat.
I proceed from the idea that it is better to lack and shortage. This gives a certain mobility and clarity. On the other hand, this approach deprives you of reserves that can be useful on a rainy day.

Stages of department growth: Employee.

While you are alone, maybe you do not need more documentation and everything else. You would have the project done. Ask people only in case of flooding with tasks. The lack of tasks is worse than their excess. When there are not enough tasks, productivity is lost, people begin to engage in nonsense. They believe that they are paid for doing nothing, and when work comes, it is difficult for them to return to their previous channels.
When to recruit people? My recipe is this: If you work more than 2-3 months - you need an assistant. When you work for 1-1.5 weeks, people should not be taken.

Stages of department growth: Team.

The team begins to form after 3-4 people. Then the leader is revealed. But remember that the more people, the more difficult it is to negotiate. What 2 people agreed for 1 hour, 3-4 people will agree 1-2 days. Contact is already lost, conflicts and misunderstandings arise. The more people, the less you will program and the more you will communicate.
When you have more than 6 people under you, you can forget about programming in general. Up to 6 people you most likely will not have the need for testers, designers, analysts. All this you will manage to do by the team.
At the stage of 6-7 people there is a need to formalize the processes, clarify the agreements, introduce regulations. Why is this necessary? Very simple. To protect the vocal cords. When you start telling the same thing from time to time, and people will ask the same questions - it means that it's time for regulations, and you need to start recording processes. Do not be afraid to make a mistake. You will be told immediately about the poorly developed processes.

Stages of department growth: Department.

The department is a structure in which there are more than 6-7 people. There may already be several teams in it. As you grow, there is a need to distribute work among people. Perhaps you want to make dedicated specializations.
These specializations will be needed when you have too many profile tasks, and you will need to allocate the resource to reduce the non-core load from the team: drawing the design, interface creeping, working out requirements, working with feedback from users.
You will need helpers in the leadership. Remember that effectively the leader manages 5-7 subordinates. If more people, he begins to lose focus of attention.

Life cycle of the team

In fact, we can distinguish five stages of the life cycle of the department:
  • Origin. Only the idea arose and the first person appeared.
  • Growth. The team is growing. The main thing here is not to stop the process. But do not give him too much growth.
  • Stability. The team is stabilizing. Be careful. You can lose the tempo. Team periodically need to throw in new Challenges.
  • Stagnation. Search for what you drag down. Change. Solve problems.
  • Dying. The command is bent. What to do? Update the command. Change the command or leave.

Management Position

It is important to remember that you, as a leader, are neither a friend, nor a brother, nor an enemy. You are a person who is higher, has resources and power.
Your position is to create conditions for the group to be able to move unhindered to the goal. All you have to do is identify problems, assess risks, make decisions, and facilitate them in a group.

Problems:

In my opinion, in the process of organizing the department the problems are as follows:

Loss of control

Loss of control is a normal situation. In fact, you can not control everyone. And as control grows, control is lost. It is important to organize a structure that will stabilize itself. With your participation of course. The more you control the structure, the weaker it becomes. Remember about 5-7 focuses of attention? That's the level and will be the performance of your organization, if you keep everything under control.

Informal leaders and opposition

...This is normal. Each team has its own chat room, where the dice are washed (first of all to you), there are always dissatisfied with you. There are always people who do not like something. If they start spoiling everything, then get rid of them by any legal and available means. With hayters, the question is subtle, if it does not destroy you, and you do not lose credibility - leave. This does not mean that you need to show cruelty and tyranny. It is important to be able to listen and hear them. When they are not pressed and listened to, they lose influence over the situation. And they can give valuable ideas for development that will allow you to achieve great success.

Riots

This is when your activity does not bring satisfaction, and the team is already ready or going against you. In fact, this is already a running version, and, perhaps, you will not do anything.
The very trap is the loss of the head in the process of work. And illusions are the worst thing. When you are wrong and there is a crisis, you face a tough reality, and, in fact, reality itself gives you feedback and limits you in choosing. Worse, when everything is going fine, or you think everything is going fine.
This is what leads to riots, not reaching the goal, losing influence. Because in this situation you do not really control anything.
It is very important at the same time not to forget about the main question: Am I not doing shit?

Assholes and psychopaths

These are people from whom you need to get rid of immediately. Usually they smile at you, and people behind you set people against you and abuse others.
Who are they?
It is necessary to distinguish simply people with a bad mood and habits from pathologically ill.
  • Assholes:
    • Maybe a person has a bad mood
  • People with pathologies:
    • Psychopaths - a pathological disruption of the brain
    • Sociopaths - antisocial worldview and behavior

What prevention can be:

  • It is necessary to find out the situation, analyze the connections between people, the mood in the team, the influence of the person on decisions and motivation
  • Track dismissals and loss of productivity
  • Carry out face-to-face bets, analyze.
  • Fix arrangements
  • Regularly monitor performance
  • Reduce emotional communication
  • Speak with the surrounding decisions
  • Do not be an asshole

Conclusions

  • Winners are not judged. Do not be afraid to make mistakes. If you succeed, you will be forgiven for your mistakes.
  • Work with management - these are those who give you resources, forgive your mistakes and give new projects.
  • Do not strive for empty power. Empty power is when you have opportunities, but there is no purpose. Such power is easy to lose.
  • Trust, but in case of problems, fix the arrangements. All changes must be recorded
  • The most terrible thing is the courts and labor inspections. Do not enter into a deal with a conscience - do not wash.
  • The department in the form in which you made it, will cease to exist after your departure - this is the norm. Do not make a monument out of him.
  • Work should not be the only joy in your life.

Literature

I want to advise you literature, that would develop the topic of the post:
  • Cognition in the wild - a book of the cognitive psychologist about how the administration of a military ship is organized (crew management, navigation, team psychology). It's no secret that software development is very similar to construction and shipping. Therefore, this book will help you understand the concepts.
  • Being geek is the book of the Netscape development manager, which passed from engineer to manager and describes this experience. The book tells different stages of growth (interview, communication with colleagues, etc.).
  • Jeffrey Pfeffer, Power, influence and politics in organizations is a very cool book about what management, politics, influence and power are. About how they are received, how they are lost and what to do about it.
  • Ethnogenesis and the Biosphere, Lev Gumilev - a book by a famous researcher is a story about how nations are organized. Who are passionate individuals, how the group develops, what stages of life it has and what they are connected with.
  • Snakes in Suites - a book about psychopaths and sociopaths in the work environment. About why they are many in modern companies and environments. About what they are dangerous, how to identify them, screen out and what to do if you work with one of them.
  • The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn't - a book about how to build relationships, about what dangerous assholes and unpleasant communication. What to do about it?