If you’ve read my more personal posts before, you know that I work for a startup as the most senior employee. In this position I get to see a lot of interesting things that I suspect most don’t, one thing in particular I’ve been noticing more and more lately is the lack of hierarchy at our company. I want to make it clear that I don’t find this to be a bad or good thing, this post will merely be me sharing my observations on this type of workplace.
A bit about us
To understand the why of how we structure the company this way, you have to know about the company itself, otherwise who cares. We’re a team of 5-6 consultants depending on who you ask, with two owners, and 3-4 developers (one is a subcontractor who works part time). Of course it’s not like we have no hierarchy, obviously the final say on things goes through one of the two owners, however there’s no formal structure to how we handle source control, task delegation, who to report to with time off requests, etc. It’s all pretty loose. This sounds like it would be chaotic and like we wouldn’t get anything done, yet we are always getting our projects done by our clients deadlines, so I’ve started doing some analysis as to what I think makes this work.
At the top of the list of reasons I suspect this very loosey-goosey way of doing things works as well as it does, is the level of respect we all share for one another. Not one person is considered to really be a “senior” or a “junior”, when talking with clients we’ll occasionally throw those terms around to explain the billable rate for each developer, but internally those titles mean next to nothing. Our newest employees get shown the same amount of respect as the owners, the owners go out of their way to help us out, and we go out of our way to make their lives easier, everyone wins. We also assume that each of us can handle the tasks given to us, and if we can’t, it’s understood that that’s not a problem and to ask for help, and help is always given in a timely manner.
By this, I mean that no one at the company is a monolith, sure some of us have our own unique projects we work on, but in terms of who manages source control, who does code reviews, who delegates tasks, etc. we don’t have a set person. For example, if one of the owners needs a pull request merged, they go through the exact same workflow that we all go through, they don’t get special privileges. They submit it for review, one of us reviews it with the understanding that it’s okay for us to go through and try to find issues with their code and have them address it if it’s needed, and the same is true if we have a pull request that needs merged. If anyone is unsure about whether a branch can be merged or not, or has a question on if something is up to company best practices, etc. of course the owners are the people to ask, but in general we all have equal responsibility and we all share the same role in project management. Anyone can create tickets, assign anyone to those tickets or tasks based on who would probably be the best fit, etc.
This is a big one, and it’s sort of been touched on but not really. Whether it’s coordinating with a client, having meetings with new potential clients or existing clients, getting a task big or small done, etc. it’s just an unspoken rule that we all sort of trust one another to do the right thing, there is very little oversight in any dealings with clients. For example, if I have questions for a client, or if I need to meet with a client or if any of the newer developers do, it’s just understood that you can reach out for whatever info you need, and you’re trusted to not say something stupid that can lose a client, potentially worry the client, etc. Of course the owners do what they can to mentor us when they can on how to deal with certain scenarios, how to overcome certain technological problems, etc. but in general we all trust that whatever needs done, each of us can get it done, this allows us to spend less time worrying about what person a or b is doing or when they are going to get x and y done, and instead let’s us just focus on getting our own work done. Has this method of doing things bitten us before? You bet, but the point is that those times it’s gotten us in to trouble are far, far, far and few between, certainly those instances are outliers. The general case is that everyone tends to more or less get what they need to get done, done. When you trust your colleagues, and you stop worrying about everyone else, everyone wins and you get that time you would have been overseeing things back.
There’s a lot of small veins I could address with this one, but let’s start with work life balance. If I want to work from home, start my day at 4 p.m. and end it at 4 a.m. then that is totally fine in almost all cases, if I want to take three days off and work three 12 hour days, that’s also fine, the point is, work life is flexible to a level I’ve never seen before, this allows us to work when it suits us, and therefore get work done when we decide the best time to get work done is. This goes back to the trust thing as well, when I bill clients when working from home, my bosses are trusting that I’m being honest and not slacking off, doing other things, essentially they are trusting that I’m not stealing time, and so because of that trust, it allows us to have this extreme flexibility, which I think helps everyone’s mental health and creates a more productive work environment. Another avenue of this is ability to swap between projects, for example there’s a particular project this week that I just didn’t feel like working on, and so rather than being forced to work on it and honestly probably not getting much done, I just switched to another project for the week, no problem at all, and because of this, I feel more ready to attack this other project this next coming week, and I got a ton done on the project I switched to, so because of this type of flexibility, it’s benefited both clients, me, and the company. There’s all kinds of other areas here I could discuss, but I’ll wrap this point up.
A more personal work environment
The work environment at our company is just incredibly personal, there’s not a better word for it really. You really feel like everything you do counts for something, every dollar you bill grows the company, every hour you grind is helping to move the ship forward, etc. Because of this, I think it helps everyone be more self driven because everyone feels like they are apart of something special, you don’t need to be a slave driver when everyone is willing to work, and you don’t need someone overseeing everything when everyone acts like their own boss in a way. I think this is one of the stronger reasons why our company works so well with such little hierarchy in place.
The way we work is sort of what I consider to be an unshackling if that makes any sense. See, when there’s restrictions, rules, a sort of forbidden fruit, all that someone wants is a taste of the forbidden fruit. If you unbind everyone, and give them nearly complete autonomy, not only will you find that people tend to be more productive, they also just…well, they tend to not even want to do those things they previously had wanted to do. For example, I can take off 5 days in a week and work just the weekends and not ever be around anyone, and at other jobs there’s times I would have loved to do that, but here it’s almost like just knowing that I can do that if I want is enough for me, and I end up not even taking advantage of it, so the company nets the same result, but they gain the added bonus of us the developers feeling like they are being treated better and have more freedom (because we are, and do). So that’s my thoughts on our companies lack of hierarchy, if I had to summarize this, basically I think the saying “give an inch, take a mile” is complete nonsense, I think if you give an inch when it comes to your work culture, you’ll find people tend to maybe take a half inch, because really what people want is freedom, and freedom at work comes when you take away all of the bureaucratic nonsense of larger companies and just let developers do what they do best…make software. Anyway, hopefully this was beneficial or interesting, if you have any thoughts I’d love to hear them. If there’s any topics relating to our company you’d like to hear, reach out to me and I’ll probably do a post covering those. Thanks for taking the time to read this, and until next time.