A Developer's Hierarchy of Needs - 1
Yo Maslow, why so needy ?
In 1943, Abraham Maslow published the idea of hierarchy of needs a.k.a Maslow's hierarchy of needs. This psychological theory throws light on human motivation. It states that our needs are hierarchical and higher-level needs become aspirational only when lower, basic needs are fulfilled.
Fun Fact : Maslow never represented the needs as a pyramid in his works.
One morning, when I was pondering in the shower (as I always do) I thought - Maslow’s list is pretty generic. It is at a human level.
Well, most of the time I am human, no doubt, but I become a certain “type of human” based on the time and space I’m in. And so Maslow’s hierarchy is fine but we need some specific interpretations.
It was the same time when Maslow’s pyramid started popping around in memes. The time was ripe and so as your friendly neighborhood brogrammer I’ve taken it upon myself to define a Developers Hierarchy of Needs.
I’d like all the help in the world. So if you see something missing, comment away!
This is going to be a 2 part-er. Basic needs now. Psychological and Self-fulfillment needs later. (as Maslow intended )
Basic Needs :=
Physiological Needs :
A decent salary should be able to take care of generic physiological needs like food, cloth, shelter and wifi. For the dev life, however, we’ll need to dig a bit more.
Experts say that the human body was not designed to sit in a chair for >8hrs per day. To those experts I say, wait a few thousand years and the human body would have evolved for just that. Until then, however, we’re stuck with this current homo sapien body setting and will have to make do.
An ergonomic workspace, puts the mind in the right space, to develop and navigate an epic codebase.
(too cheesy ?! sorry, ‘tis the season! )
A developer’s basic needs can be grouped into hardware and software needs. The things that fulfill these should be so good and seamless that one should be able to take them for granted. This is the only way to move to the next hierarchical satisfaction level.
A decent desk setup and a machine that can handle a few open tabs in Chrome is every developer’s basic right.
Keyboard and mouse are akin to undergarments. We spend a lot of time with and in them respectively. If these things take up any mental space because of quality reasons, its time get a better one.
Monitors are a personal choice. Some prefer the laptop, some a dual monitor setup and some a single big screen.
The productivity unlock when working in your optimized setup is real.
However, its not just hardware what makes up one’s setup. Its the daily use software and tool-chain too.
I bet you all have come across that one application that takes forever to start up.
And then there are Availability issues. Maybe because of server connections, licenses, restricted role based accesses, wait- times and so on.
There is a kick of motivation, a drive per say, on getting started and the above roadblocks have high potential to kill that buzz.
Companies and teams that have figured out a path of least friction to help a developer maintain the initial drive and move from idea to execution reap great benefits.
Last but not the least, there is one essential thing that I and many others need a few times per day
Next up,
Safety Needs :
Safety, security and stability are the themes of the needs at this level.
To satisfy this need one needs an environment where one can let go of the fear of failure, come out of “survival mode” and thrive.
The software industry works on the Continuous Incremental Iterative model. We start with “Move fast and break things” and then learn our way into “Move fast and make things”.
The tools and processes should aim at increasing developer confidence and product stability in addition to product development.
The nature of work is volatile and so it demands a good Version controlled system. There should be playgrounds where developers can experiment without having to think about breaking something. And even if something breaks in production we should be able to rollback and learn the lessons. Ain’t nobody got time for blame game.
Concise, up-to-date, base-lined documentation always helps when one gets lost in a deep dark forest. It is like planting a tree (is that even possible?) which immediately bears fruits that you and others can harvest. People will thank you more for planting it as more time goes by.
There have been times when I have gone back to my code after a couple of months and wondered if I was possessed when writing it. There have been other times when I have still wondered if i was possessed but then thanked myself for writing clear reasoning in the comments and How-To documents.
A sure shot way to build confidence and safety into products and people is setting up CI/CT/CD pipelines.
All in all, a sense of safety, security and stability is needed for a developer to work towards creative expression and self-actualization.
In the corporate structure, IT-admin teams are pivotal in helping bring satisfaction to a developer’s Basic Needs. A lot of power resides with them to make or break a developer experience.
Mahatma G. once said “Earth provides enough to satisfy every man's needs, but not every man's greed”.
It is important to understand the fine line between the two and strive for self-fulfillment.
Till next time,
Happy New Year












