TL;DR Surprisingly many engineers prefers to be explicitly told what to do, be given a clear end-to-end specification & the worst of all - have someone else representing them to the end of the world, translating "the current state of things" into the language everyone else understands. IMHO it's one of the effects massive outsourcing has on IT industry. In this way, many engineers, on their own wish, "pidgeonhole" themselves not as real knowledge workers (or as some would say - creative workers), but as pure "coders" -> conveyor belt operators who put someone else's conceptual work into languages of the machine. People who prefer to be herded by "supervisors" in a work model taken straight from the past century ...

Recently I was involved in some fiery discussions regarding building of larger & smaller teams, leadership/supervision at various levels & different organization models that would be a good fit for particular types of companies. As usually, I was happy to share my own opinions on the subject, some of them potentially controversial :> but what has struck my interlocutors most was the fact that since I can remember I've always worked in work environments where I had no boss (in the traditional sense of this word) - and I very strongly advocate such set-up.

I mean - literally, in the HR registries or org chart presentations I surely had some sort of boss (I was rarely bothered to ask who ...), but in fact there was ...

  • no-one assigning me chunks of work to do next
  • no-one synchronously approving my decisions (to make them effective)
  • no-one I was "reporting to" (again, in an "old-fashioned" style)
  • no-one giving me a regular, friendly "well-done-son" shoulder pat
  • etc.

I'm not delusional, there would be no issue with finding someone to kick me out in a minute once I go rogue, screw up something intentionally or decide that I'm out of fucks to be given. BUT from my contemporary perspective it was simply me playing the role I've been employed to play - role that was the part of the (work) system.

Wait, who's at the driving wheel?

No-one.
Everyone.

Both of the above are correct - work environment in software engineering is a system (I refer to system's theory here ofc) & ones of this kind get just too complex for typical, "manual" micro-management: breadth of roles, skill-sets & abilities plus required high-level of flexibility & adaptability require an unprecedented level of autonomy -> after exceeding a certain size, system has to "self-managing in a distributed way", otherwise it will either collapse (under its internal inertia) or become extremely ineffective.

Wait, wait, aren't we getting straight into some kind of fantasy? Self-managing autonomous systems w/o hierarchies? It truly sounds utopian (at least), but fortunately what I mean is actually quite simple, realistic (no, there will be no Holocracy references ...) & commonly used in companies around the world:

  1. Work environment is a system, which is monitored & tuned by managers (see the distinction - "system is tuned", not "people are managed"), but tuning means nothing else than removing the impediments & bottlenecks or identifying missing roles & unfulfilled capabilities
  2. People work within system, but are not assigned activities or told explicitly what to do - they have their roles which are the collections of goals, key accountabilities & range of autonomy (baselines & boundaries)
  3. It's people playing particular role who decide WHAT & HOW to do precisely in order to achieve the goals & fulfil the responsibilities - they are supposed to be experts accountable for this stuff, aren't they?
  4. Roles are not "flat" - they differ in many details like: range of impact, areas of expertise, level of detail, profiles of stakeholders, etc., BUT in fact: none of them is superior, but all of them are crucial as if even the most "basic" one fail, whole organization suffers - if it's not true for a particular one, why to keep this role at all?
  5. Roles do not "report" to any particular "boss" -> they report to EVERYONE; this is what transparency is all about: you are explicit about your actions & you publish them in a freely accessible way, it's up to the rest of the organization who'd like to subscribe for the changes

Wait ... what? How come?

In my case, adapting to this model was quite easy, because ... this was the one I was taught during my "professional upbringing" :) No wonder that I wasn't missing traditional, neo-feudal hierarchies as I never had to face such a thing:

  • I've started my career in a start-up, where we had much more informal & flexible work model - it doesn't mean I was doing whatever I wanted & how I wanted - it's just that even if it was my mentor (who will have my eternal gratefulness!) who was really driving things, we were working things out (plans, solutions, pro- & reactive actions of any sort) as real sidekicks, hand-to-hand

  • then I've moved to the well established, army-style consultancy working mainly in project regime - contrary to the common belief (even in large projects) such work isn't really about N+1 level people telling N level people what to do. In fact, we always came as task force with well defined slots to fill - everyone had a clear role to play, there were no overlaps / double-checks; everyone - from the senior manager to analyst had "a different dish to cook" & only the joint effort guaranteed a "complete and fully nutritious treat"

OK, but how did it work in practice? How is this even possible that I didn't need anyone to tutor / coach / feedback me? Well, of course I did, but why would I need a "boss" to do that? It's a matter of a mix between being proactive & highly aware: I can ask anyone for feedback, mentoring or advice & provide some to anyone that asked me. Same applies for leading - in a properly operating system everyone leads "partially" - within her/his area of expertise (& role's accountability).

So yes - no one "assigned me tasks", these were always the consequence of my role, which was defined by the work system. It was my to decide how to do stuff & in what order, as long as I was meeting the set goals & objectives of my role. When I was not, other parts of the system (who were consumers of these goals' work products & depended on them in some other way) were the sufficient mechanism of control.

Don't get me wrong, no system is always permanently stable & flawless - especially systems that consist of numerous individual & fragile technologies in the context of constant, ongoing changes - but even if there was ALWAYS something that did not worked perfectly & required fine-tuning (which we, as the part of the systems applied), I still prefer such a bossless set-up over a work environment filled with mindless drones that always have a perfect excuse of following someone else's will.

Pic: © 2016 Riot Games, Inc. All rights reserved.