The world of management is rich and welcoming. There’s a ton of information out there in books, online and offline courses, and blog posts that discuss bits and pieces of popular theories and relate personal experiences. It’s not particularly hard to find information on any topic related to management – the hard part is to process it all and find methods and approaches that prove effective.
Not every company has the time and money to actually try all the popular management techniques and approaches in order to see what works and what doesn’t. This is why it’s important for established companies to share their own experiences with building effective managerial processes.
Throughout over 15 years in business, Apriorit has experienced significant growth in the number of employees and projects while at the same time forming a mature and effective managerial structure. We’d like to share our own experience with management and how we’ve make it work.
In this article, you’ll learn about our internal management structure, how we do things, and how our approach differs from mainstream approaches. This article should give you some food for thought and also provide you with some resources to work through in your quest to make your organization’s management even better.
At Apriorit, we provide managed development services to our clients. This means that we ourselves are responsible for handling day-to-day operations of the development team, solving issues, and generally ensuring delivery. Our clients meanwhile can focus on key decisions regarding product requirements and the direction of the project as a whole. This setup is convenient for our clients, but it also means that any problems in the management department are on us. We’re the ones who are expected to fix things. What allows us to take on this risk is the confidence we have in our management process.
However, apart from keeping projects going smoothly and keeping customers happy, strong management also serves another important function – it allows us to keep our developers happy. As a company with a very niche specialization – focusing mostly on cybersecurity, systems control, virtualization, low-level development, and SaaS development – we depend heavily on having the right people with the right knowledge, experience, and skills.
Luckily, our turnover rate at Apriorit is extremely low, and we manage to constantly expand our pool of specialists via effective training and mentoring. Part of what has allowed us to achieve this is our management approach, which allows developers to spend their time contributing to actual projects instead of wrestling with unnecessary bureaucracy.
Let’s explore how we were able to achieve this and what we did differently.
As a service company, we constantly work with an ever-changing pool of projects. Projects open, grow, and close, prompting the need to quickly move resources around in order to bring the right people with the right expertise to the right place. We use a matrix organizational structure to make this happen, which allows us to make sure that we can assemble or modify project teams very quickly.
Our matrix structure involves employees reporting to two or more managers – usually, a functional manager and a project manager. At Apriorit, functional managers mostly handle mentoring and professional growth, while project managers are directly responsible for controlling the work within a specific project.
This matrix structure has its advantages: it allows for flexibility within the organization, facilitates communication between teams, and helps put people with the right skills on the right jobs.
But it also has its disadvantages, the main one being the increased complexity of management and the various challenges that can arise from that. These challenges include excessive overhead, power struggles, and decision strangulation (when too much democracy leads to ineffective decision-making).
In our opinion, the best way to avoid these problems is to take an approach to management that emphasizes management processes and the importance of the role model structure within the organization.
There are numerous approaches to management, some of which are more obscure than others. Here’s a list of some of the most popular:
- Empirical approach – Based on the study of past cases and experiences.
- Behavioral approach – Based on social sciences and human behavior studies with a focus on social dynamics and company culture.
- Social systems approach – The organization is treated like a social system that can be managed only by understanding the behavior of people in groups.
- Decision theory – Emphasizes decision-making processes within management.
- Systems approach – The company is treated as a single dynamic system consisting of many integrated parts.
- Situational approach – A reactive approach in which managerial decisions are based on actions from beyond the system.
- Operational approach – Also called the management process approach, this is the approach used by Apriorit.
The operational approach emphasizes processes, which are equated to functions and considered universal across the organization. The four main functions of management are:
Each of these functions is equally important and all should be handled equally effectively. Any gaps in the work mean that a process is not yet refined or that a function is being performed incorrectly.
A process-focused approach allows us to navigate the complexities of our managerial structure without breeding excessive bureaucracy or strangulating decisions. In order to better illustrate this approach, let’s see how our functional management works to help our engineers grow and develop their skills.
In order to increase the performance and quality of deliverables of an employee, we use the famous PDCA cycle. Often called the Deming cycle, PDCA is an iterative method used to improve continuous processes and products.
Traditionally, the PDCA cycle consists of four phases:
- Plan – outline the problem and devise a way to solve it
- Do – implement the plan
- Check – evaluate the status of the problem after the plan has been executed
- Act – assess the effectiveness of the plan and resulting process, and implement changes if necessary
Traditionally, the Act phase is used to set a new baseline for the next iteration; however, in our opinion, this action is hard to separate from the next planning stage. Moreover, it’s often more effective to take the chance to establish a new baseline by analyzing previous experiences with similar tasks, which is what prompted us to slightly modify the PDCA cycle. The model we use at Apriorit has the following phases:
Whenever we mentor junior engineers, we start with the Do phase, during which all analysis, planning, and checking is performed by a supervisor. Once a junior engineer gets comfortable performing their tasks correctly, we allow them to handle planning, and eventually analysis and control. Once all phases of the cycle can be performed autonomously, a junior engineer is ready for promotion.
In order for this process to work, however, the supervisor needs to handle the delegation of tasks correctly. And when it comes to delegating tasks at Apriorit, we use the seven-level system of delegation designed by Jurgen Appelo.
Seven levels of delegation is a symmetrical system that should be applied to key decision areas in order to facilitate self-organization. These seven levels are:
- Tell – tell others what to do
- Sell – try to convince others what to do
- Consult – ask for input from others
- Agree – decide what to do together
- Advise – give advice to others on what to do
- Inquire – leave decisions to others but ask them to convince you that their decisions are correct
- Delegate – fully leave decision to others
Each level leaves a certain amount of control in the hands of a manager, and the key to successful delegation is to find the level that works best for each individual employee.
At Apriorit, when working with new employees, we usually start with the lowest level and go up from there. It usually takes around three tasks to complete a level. If we reach a level with an employee where the delegation doesn’t work out, we take a step back to the previous level.
One of the core principles of this system is that you should always move through the levels gradually and never skip any of them. The system is fully symmetrical and works identically whether you’re going up or down.
Another important thing to note is that task assignment should never be delegated. Sometimes there are situations when employees submit work order requests – basically, requesting that their supervisor assign them certain tasks. There are many reasons why this happens, but ideally this should always be avoided. Instead, a manager should always formulate tasks first and then translate them to employees.
Following the Deming cycle and learning to successfully delegate tasks are both extremely important when working with new and relatively unexperienced employees. Beyond that, however, there are two main keys to successful management that young professionals may not always be aware of: communication management and expectations management.
Communication management – One of the most important parts of successful cooperation is agreeing on communication channels and the way they should be used. This is particularly crucial when dealing with distributed teams, but is also important even if people are located in the same room.
For example, an issue might be brought up in the elevator in person, but then the discussion might continue via a messenger. Part of the information may then be exchanged via email, and most of it will probably not be tracked or documented anywhere. Such disjointed communication leads to chaos within the team: people can never be fully sure what’s going on, what’s already been done, and what’s in the works.
To avoid this, it’s best to choose a single communication channel for all crucial issues and tasks and always initiate discussions there (or transfer discussions there as soon as possible if they have been initiated elsewhere).
In our experience, we’ve found that issue tracking systems are best suited for the role of primary communication channel. They allow us to keep all issues organized and all discussions centered in a single place while allowing easy and intuitive collaboration.
Expectations management – Another extremely important thing is to make sure that all people involved in a project know exactly what to expect from each other. This allows everyone to quickly fall into roles that they understand and establish productive cooperation where issues are always redirected to people capable of solving them. If at any point management of expectations breaks down, it can lead to communication breakdown and may negatively impact the project.
Everybody should understand the expectations of everybody else within the project. This means not only that developers should understand the expectation of managers, but also that managers should understand the expectations of developers. Often, new managers neglect to establish expectations for themselves, which eventually leads to ambiguity because developers don’t clearly understand the full extent of the manager’s role.
When managing communications and expectations it’s extremely important to involve the whole team in discussions. It’s also useful to employ one of the principles from Kanban: at any point during the project, any person in the team should be able to say “stop” and prompt the team to re-evaluate the communication process or re-evaluate expectations. This allows the team to perform a soft reset and re-establish processes more efficiently.
In management, no matter how well-laid your plans, there’s always the possibility of something unexpected happening. A good manager should be able to recognize and adapt to such situations. Sometimes, this involves recognizing your own shortcomings. Good managers need to be self-aware so they themselves don’t become toxic to the teams they’re working with.
Only by establishing solid processes and continually improving and refining them are we able to get stable and predictable results from project to project. This is the philosophy that has helped Apriorit stay in business for many years, working on many projects and nurturing a solid base of professionals. We hope that you’ll find it useful as well.
- Jurgen Appelo – Management 3.0
- Peter Drucker – The Practice of Management
- Jeffrey K. Liker – The Toyota Way: 14 Management Principles from the World’s Greatest Manufacturer
- Dan S. Kennedy – No B.S. Time Management for Entrepreneurs
- Tom DeMarco – Waltzing with Bears: Managing Risk on Software Projects