Is there some useful function to hierarchy?
Or does it just get in the way?
Aren't flat hierarchies the way to go these days?
Many think that companies ought to have a very flat hierarchy.
I've heard some say that hierarchy, in general, is just not "fair". Everyone should feel as if they are equal in terms of their place in the company.
I've also heard others give a more practical reason: the chain of communication should be very flat in order to support the idea that anyone ought to have direct access to whoever it is they need to speak with.
If a developer, for example, needs to speak with someone from the marketing department, it's just more efficient to give them a direct line of access.
A more "levelled" type of hierarchy seems to be the standard type of business hierarchy. You have managers and other employees under them.
A CEO would be over the Software Architect, who is over the Lead Developer, who is over a Junior Developer (for example).
Some argue that hierarchy is required because, otherwise, it would be chaotic. We need people to take responsibility for some area of the business and manage and delegate the work required.
So... which one is best?
Is hierarchy an enemy of equality in the workplace? Does it hinder efficient communication?
Or does it bring control and a healthy delegation of responsibility?
I think it's a false dilemma.
I think both are actually compatible!
Most of the time, I think that companies operate with a certain degree of both sides of this dilemma.
P.S. This is based on an article from my email newsletter Navigating Your Software Development Career. If you are enjoying it so far you can sign up to the newsletter and get up-to-date articles and advice similar to this!
In my experience, I've noticed that small companies and teams (let's say under 20 employees) tend to have an environment where anyone can freely communicate with anyone they wish.
For example, a developer may be able to just walk into the client facing-support room and strike up a chat about some feature.
This is regardless of the formal hierarchy that's in place.
I think this is simply due to the reality that within a small team you can physically just reach over and communicate with anyone. Much like how everyone in a small town "knows everyone."
On the flip side, I've worked in mid-sized/large companies and have noticed that the freedom of being able to communicate with whoever you wish is generally not there.
These companies often have multiple large offices. It's not so easy to just reach over and speak to that certain person - they might be in another office! Or on a different floor!
In companies with a hierarchy, there's is a clear chain of command. However, things take longer to be communicated.
I think this type of hierarchy primarily comes from a genuine need to maintain order and control.
Trying to organize 500 employees, for example, is complicated and difficult.
I've seen companies this size claim to have a flat structure. But in practice, employees have a handful of direct lines of contact and communication with the perception that they are "flat".
I'm by no means super knowledgable about how to best structure a large company.
But I've noticed that even in large companies I've worked for, using communication tools like Slack, Google's G Suite, Microsoft Teams, etc. definitely make things much easier.
Given the growing number of distributed companies (full-remote) and the success they seem to have, I think companies who are intentional about making communication in an organization a priority, along with breaking down the physical barriers, will avoid many of the issues that come with a "levelled" hierarchy.
One of the issues larger companies face, where smaller companies thrive, is the fact that an employee is generally only allowed to communicate directly with those who are above, beside and below them one level deep.
There's a move in the industry to form small cross-functional teams who are focused on a particular business area.
As you can see, this type of organization can allow Software Developers to communicate directly with the Product Manager, for example.
The issues that are solved by a clear chain of commands aren't within each team, but they exist between teams.
In this case, someone who's on the Shipping team will rarely need to talk with someone from the Warehouse team since their concerns will mostly lie within the product they are focusing on.
Does a flat hierarchy give more equality to employees? Since they are all regarded on the same "level" in the company's structure?
No, I don't think so.
Here's where G.K. Chesterton's thoughts come in (not verbatim).
A hierarchy may be useful to keep order, efficient delegation, etc. But whatever that hierarchy, it's a definition of the function of an employee, not their worth.
In fact, many times, employees on "lower" levels will make more money than those "higher".
For example, developers usually make more than non-technical managers.
What if parents allowed their children to do whatever they wanted - because they wanted them to be "equal"?
3 year old wants to go run across the road and play at the park? Sure! Go ahead!
5 year old wants to go play in the junkyard! No problem!
That's pretty silly.
Parents have a role to teach and train their children.
Does this mean that children are not equal? Are they less human? Less of a member of society? Not at all.
A parent's role is a matter of their function. Their function is to raise and teach their children. But this has no bearing on their worth or status.
The same is true in a business hierarchy. It's just a matter of function.
A leader in a business is responsible (or should be!) for mentoring those under him/her.
A business where superiors are not teaching and helping those under them to grow is a very unhealthy company.
(Ever work in one of those?)
A business culture with defined mentors and mentees implies that there is actually some hierarchy (even if the business doesn't think there is).
At the end-of-the-day, the main point I would like to leave you with is that hierarchy isn't something we should dwell on as much as we usually do. In some cases, it is genuinely helpful in keeping a large number of resources under control and organized.
However, the main mark of a healthy company is not whether they are flat or "levelled", but whether there is an environment of mentorship.
Let's drive this home:
The main mark of a healthy company is not whether they are flat or "levelled", but whether there is an environment of mentorship.
If children in a family have nothing to do with each other, that's not a very healthy situation. But, if the older children are helping and teaching the younger children then it makes for a healthy environment where everyone feels included and is growing.
Businesses are the same. People just need to be helping and teaching those around them.
My challenge to you:
Help those around you! Who cares if your company is flat or whatever. Seek to help those around you.
If you are in a position of leadership - let's say, a senior role - seek to build an environment where everyone has opportunities to teach those around them.
It's your job to change the culture if it's not what you want to it be!
Here are a few ideas to get you started:
- Paired programming
- Mob Programming
- Bi-weekly "Lunch and Learn"
- After a successful project, have those developers formally share what they learned
- Code Reviews
This was my first article where I took the time to include some drawings - did you find them helpful?
Do you have any further thoughts on these issues?
Don't forget to connect with me on:
You can also find me at my web site www.jamesmichaelhickey.com.
An e-mail newsletter that will help you level-up in your career as a software developer! Ever wonder:
✔ What are the general stages of a software developer?
✔ How do I know which stage I'm at? How do I get to the next stage?
✔ What is a tech leader and how do I become one?
✔ Is there someone willing to walk with me and answer my questions?
Sound interesting? Join the community!