Let's spend a little time with introduction before we jump into the world of organizations. If the previous chapters about business and user concerns were typically uninteresting topics for developers then this one is a nightmare. Meddling with the organizational aspects of our work, like process and collaboration optimization is not the favorite topic of many. It's far from the comfy labs in our towers, just in a different direction than the users. You might ask: why should we care about these when we are working on a framework for evaluating tech decisions? As you can guess, the choices we make can affect the workflow, team setup, hiring needs, mentoring and many other aspects that makes a difference from the organization's point of view. They also affect the business outcomes through their effect on workforce productivity and utilization. It's crucial to evaluate our options in the context of the company as a group of people organized to work together with set processes. This means there's a whole new dimension of the environment of software that we need to explore and map, to see the full picture and adopt our decisions accordingly. In addition, if you are going to be or already are in a lead position, where you are responsible for organizing the work of other people, understanding how organizational performance works will be helpful in many ways.
- What are the basic building blocks of any organization
- What are the general aims of organization optimization
- How those aims apply to the building blocks
- Some connection points with our everyday work
- What is organization value
I will focus on the bare essentials even more than so far. I really want to give you most of the benefits while keeping the topic easily digestible to all of us. This part has a timeless nature too. It's really cool, how the things concerning people tend to fall into this category. This means you only need to understand this once and you are done with it for life. The specific tools or forms might change with time but the essence will remain the same.
Edgar Schein an organizational psychologist famously identified 4 core elements of any organization*. They are the:
- Common purpose - Control
This means the business vision, mission and strategy. Its central role in the organization is to unify all employees and stakeholders in their aims.
- Hierarchy of authority - Oversee
The system put in place to structure the decision making process and to oversee the operation of the company.
- Coordinated effort - Organize
The organization and alignment of work across groups and individuals to realize the common purpose.
- Division of labor - Produce
Breaking down the complex goals of the organization to tasks that can be done by different, specialized persons.
The italic words are my own way of connecting the elements to their function. They give us a nice acronym: COOP. Do not confuse them with their original pair. They are similar but not strictly equivalent ideas.
Now you might have a question like: What do I have to do with this? If it seems very unrelated to your job consider this. We already saw in Chapter 5 that the most fundamental technology innovations or the adoption of wildly different tools can change the common purpose of a company. We are usually working on systems that are not developed and maintained by a single person. If we make changes to a part that concerns other people we need to coordinate our efforts to avoid messing up something. Or we might need to collaborate with a whole bunch of teams to even be able to incorporate the new changes. When we introduce a component to our stack, at least one person needs to pick up the responsibility of working with it, which is actually a form of specialization. Staying with the case of a newly integrated tool, if there are team members who already have significant experience using it, that might actually change who calls the shots about how to work with it. That's a change in the hierarchy of authority. You can see that our work is connected to each of the core elements. So there's very good reason for us to understand how we affect them and what kind of value they provide.
The first step is to define what does it mean to improve the different core elements. Optimizing an organization is making the best use of it's resources. This is very important to understand. Making the best use of it's resources. So we are trying to create and tweak a system that works optimally in realizing the common purposes. If we get 3 major characteristics right for all dimensions of the organization we achieved that goal. They are the 3 elements of organizational performance:
How fast and how cheap does it deliver the planned results. (like products, plans, designs, reports)
How well the delivered results are achieving the desired outcomes. (like user satisfaction, revenue, conversion rate)
The ratio of used vs unused total resources, during the operation of the organization. (Examples are: budget, capital, work force capacity, raw materials)
With these in mind we can review all the 4 core elements and talk about their improvement where relevant.
This area is the domain of the business oriented professions. Optimizing it is not a strictly organizational matter as ultimately these goals set the basis for evaluating the performance of the organization. The only exception is when an established company is creating a new strategy. It should take into consideration the available resources and create a plan that is utilizing them well in an efficient and effective way. I don't have to say, it's not our role to come up with ways to achieve these. We can get involved to advise on specific topics as experts. To do that effectively it's necessary to understand how the organizations work. In general however, our responsibility is the realization of that strategy and to align our decisions with it.
Efficiency: To optimize this aspect the goal is to organize the operation of the teams and management to:
- Eliminate communication barriers and overheads
- Eliminate bureaucratic overheads
- Improve cooperation and knowledge sharing
- Either make teams completely independent or;
- Set up synchronized processes and schedules across connected teams or departments
- Make the roles and responsibilities clear and visible to everybody
- Keep the costs of coordination to the lowest effective value
Effectiveness: The single most important factor for this is to align the operations with the real goals of the company and adjust every aspect of work to serve that. That usually revolves around maximizing the value delivered to the customers. Some general aspects of it are:
- Market research and idea validation
- Improving product market fit
- Building lasting customer relationships
The coordination of efforts can be called effective when it helps and accelerates achieving these goals across the whole organization. Some practical ways of doing that are:
- Coordinating the work so the right things happen at the right time
- Tracking and measuring how the work is done and optimize it based on the insights
Utilization: This is the easiest to discuss part as it simply means we are taking full advantage of the budget, tools and processes we have to improve the efficiency and effectiveness of cooperation. What are those tools and processes? Anything that is used for organizing, tracking and measuring work, communication, meetings and any organizational, operational or managerial tasks.
Efficiency: The tasks are distributed so that the work gets done on the fastest and cheapest way with optimal quality. In certain business cases it might instead mean slowly and expensively. Whatever leads to the preferred outcomes for the company. The following points help in the first situation:
- Having the right roles and responsibilities on all levels of the organization according to the skills, experience and potential of the employees.
- Improving workforce productivity.
- Training and mentoring to improve the employee's match to their current or future job
- People helping out each other
- In general keeping employee engagement high
- Keeping the costs of labor to the lowest effective value
Effectiveness: This stays the same across all 4 aspects, the goal is to align the work with the real goals of the company so those get realized. In the current perspective that means:
- Tracking employee performance, usually by a supervisor such as a team lead or by a software solution and using it to improve them.
- Testing the done work before releasing it to ensure it really delivers the value it's supposed to.
- Measuring and tracking KPIs that reflect the delivery of value and using it to improve the effectiveness of employees
Utilization: This one is quite simple again:
- Enough workforce is available so nobody is overloaded or under utilized with tasks
- The same is true for the tools in use like machines or software
- Untapped potential is explored and realized in the employees
- The same is true for any resources like software or hardware
Efficiency: This is similar to the division of labor case. Efficient leadership ensures the smooth operation of the people they are responsible for. They enable others to be or become efficient. This applies to both the structure and composition of the hierarchy. In simple terms, the management is organized in a way that fits the company processes and goals the most and the managers themselves are efficient at their job. Some signs that show it's going well:
- There are competent people in the lead positions
- Tasks are distributed and delegated well
- Deadlines and budgets are set up realistically and are successfully met
- The employees are kept engaged and satisfied
- A healthy workplace environment is created and sustained
Effectiveness: The goal is the same as in all previous cases. The hierarchy of authority is set up effectively when it ensures the achievement of the company goals. It happens when the management is:
- Realizing what we discussed under the effectiveness part of coordination of effort and division of labor.
- Cultivating a result oriented company culture
- Communicating the vision, mission and strategy clearly to every level of the company
Utilization: For the hierarchy of authority it is optimal when the utilization points of the previous parts apply to management and they are making them apply to the the whole organization.
This 4 x 3 set forms the source of organization value, our targets for improvement. All of them are complex topics with research done and books written about them. However, further details are beyond our interest and I'm sure even the small part I tried to cover can be improved as my exposure to management isn't really high. However it's enough to give us guidance in evaluating technologies, to connect the organizational life to the practical concerns of development and to define the:
I think you got the hang of these definitions by now. This however, is a little bit different from the previous ones, because the goal of the organization is the same as the goal of the business. We have another target here. Based on the topic of this chapter it's not hard to guess. Organization value is anything that helps to optimize the operation of the company. This is a good goal when we try to align our decisions with the full context of software. Let's see how that's done next!
*E. H. Schein, Organizational Psychology, 3rd ed. (Englewood Cliffs, NJ: Prentice-Hall, 1980).