I recently installed an app to get groceries and milk delivery at home every morning. When I browsed through the catalog, a lot of items were cheap but when added to cart they asked for a subscription fee to checkout at the listed price or pay markup on the items which were much more than what it was listed on the catalog. So I went ahead and paid the subscription fee and when checking out I see that only some of the items are discounted but not all the others. When I looked into the details, the subscription had a fine print that the price was applicable for only 15 items and it auto applied to all the cheapest items, leaving out the bigger items at the markup price.

I anyways continued to order to check the quality of deliverables and over the course of few days I felt that provisions ran out a bit faster than the previous vendor. On checking the details, all the products sold are in the range of 400-450 grams or 400-450 ml instead of the standard measures of multiples of 500. I checked around who these people were and found a patch which proudly claimed that it was a product of IIM alumni. Why on earth someone spends entire early adulthood preparing to earn a good degree just to mislead and profit.

Photo by Wendelin Jacober on Pexels.com

These kind of rots and rusts are evident in the society, at workplace it is hard to spot. While it may not be deliberate act of mislead and profit, it is more of rent seeking that is rusting the workplaces. Job characteristic theory mentions that a good favourable job will promote

  1. Skill variety – To learn continuously and implement
  2. Task identity – Where people understand the larger picture about whatever small they are doing
  3. Task significance – The general good feeling of doing something positive for others
  4. Autonomy – Accountability on actions, elbow room and breathing space. No one constantly telling people what to do
  5. Feedback – To know whether what someone did is good for not in an actionable way so that they can build on the failures

Conventional industrial processes did not worry about any of the above as it was primarily a dead end job. When software was first developed it was very similar. Breakdown the entire work into small chunks, sequence it and give it to people to finish the product. The industrial type work relied on individual contributors working in isolation with a specific skill, as long as they follow the job description the end output however complex it looks can be achieved. The knowledge type work relies on individual contributors working along with others in the group to be successful. It is a key difference, the industrial type of job is a dead end job with no autonomy, skill variety or task significance.

The rots and rusts start from there, young individuals join the knowledge workforce expecting to do big on their career but are stifled by the system that was designed for industrial type of work. Eventually people become victim of systems, they become tired of always being told how to do and what to do. The faster they escape from the situation, the better so they try to get into management as soon as possible. This steps furthers the rot, an individual contributor who did not understand well how to do their work within a team is now equipped to tell others how, when and what to do.

Where do people look up for guidance in a new job role?, it is their peers who are doing similar things. Anything which has a short term gain and less learning horizon gains traction compared to long horizon ones. Example – Click bait to increase engagement but lose the brand value over long run. As long as the increase in engagement is rewarded handsomely this behaviour will continue and the person will move on to another place leaving the after effects to be handled by a successor.

Shanty towns – Locally optimised but a collective failure. Picture from pexels.com

Slowly many anti patterns become an accepted practice and become templates for career growth. A rotted and rusted system will cause more victims of the system. Every one will be governed to optimise for themselves but collectively fail. Agility in software development was a key issue when people were following the industrial type of work breakdown and development, a bunch of people got together and came up with the manifesto to bring agility into software development. What followed after 2 decades is that there are plenty of frameworks and processes but no agility. Ask this question, if a business needs to wait for a release train next quarter to test out their hypothesis and implement that in the following quarter, how is it agile?

People can attend a training for 3 days and become masters in driving agility in their teams, it is like saying you can become a football coach by attending a 3 day training, that is how broken the industry is. Unless an individual realises and resists to contribute to the rot, the rotting and rusting will continue.

Cost of living changes and salary changes will never match. It is a never ending debate because of the disconnected way in which the cost of a basket of goods and services change. In India, in the last 20 years, petrol price has risen only 3x but gold has risen 12x which people compare it to a standard way of thinking about inflation but it is not, as it is also a commodity backed by demand and supply.

By comparing the absolute number cost in the last 20 years, vehicles cost about 2x, petrol 3x, clothing 3x-5x, food 5x min in staple raw material cost, almost 10x in green groceries, rental and property 5-10x, phone bills 0.7x, feature phones 0.3x, in general electronics & communication – more features and lesser cost. For a basic living it is generally considered that we have good food, clothing and shelter. In that sense the cost of living has gone up around 5x-7x for most of us. There are some services like hospital and education which have increased the spectrum on both ends thereby making it difficult to assess but in general we can say that also falls in the 5x-7x bucket. We spend a significant amount of money on the basic expenses so 5x-7x change looks a good ballpark.

Photo by Pixabay on Pexels.com

The inflation data from across the world suggests that India went through an inflation of around 4x in the last 20 years. This data takes a wide basket of goods and services not just the basic few we have looked at. With that in mind if I compare to the wages offered 20 years ago. The big IT companies in India provided an average entry level salary of 2.1 lakhs per annum in the year 2004. This is for a person just out of college without any experience. The range was something between 1.5 to 5 lakhs per annum. If this was the case in 2004, as per the economists figures in 2024 should be around 6 to 20 lakhs per annum for fresher programmers. If we use our 5x-7x yardstick then the number jumps up a great deal. In reality salary numbers do not keep up.

Why do not salaries keep up with the cost of living? The answer is demand and supply. In the early 2000s an entire state of Tamilnadu produced programmers who have good comprehension and coding skills to just fill up a small office building year on year (In 1000s to 10,000s). Initially companies were so choosy that it was difficult to appear even for an interview if you are not from a top tier college, slowly they moved to lower tier colleges and by the end of 2000s massive walkins were encouraged to hire talent. This trend disappeared when the supply caught up for freshers leaving the salaries stagnated as there were more freshers than available jobs.

It applies in other fields as well, my neighbour who was owning and driving a taxi which was semi luxury 20 years ago earned around 20,000 rupees a month in profit. The cabs and drivers supply hit more than the demand that now the same person will barely make 1.5x to 2x of that money. The only way for us to keep be on the happier side of the cost of living is to create a demand for our skills. A lot of freshers do the mistake of early specialisation, choosing a well paying tech job in a narrow field which works in the immediate future but locks them up forever in a stagnant skill set.

Photo by Vanessa Garcia on Pexels.com

I keep repeating this statement – software development is about communication of different systems built by different teams. The more things the software does, the more overhead it has, to deal with people and process. For us to get a hang of what is going on in the overall landscape, it is possible only if we have explored the lengths and breadths of technology and tools. It is not necessary to be an expert in each and every aspect, but should understand them in first principles. A developer who spent their early years working in UI, backend, infrastructure, mobile development, data engineering and using different programming languages like Javascript, java, python will have a thorough understanding of the tech landscape. The same developer when working on legacy projects, green field development, brown field development and maintenance will gain enough experience on people, process and engineering in the long run to become a VP of engineering compared to someone who specialised very early in a tech because that was hot.

With AI coding assistants growing in capabilities, there is now even more demand for generalists who can grok and handle a lot of things in the length and breadth. Avoid the temptation of now and plan for the long run, a career is not over in 10 years. Flexibility in the early years and learning compounds to a great growth in the long run.

In the early days of my career I have observed professional managers hired to lead the projects in software development, who go by numbers, processes, tasks and objectives, the more and more I observed them, I started to dislike their leadership style as it was very disjoint from what the team was doing. To add more to the dislike, low performers were termed ‘Manager material’ and an option was given them to train on professional management, giving a bad example for leadership aspirants. Not just me, a lot of individual contributors like App developers, QA, Infra developers started to lose the respect for managers as the only leverage these managers had was coercive powers like say on appraisals, leaves, working hours, weekend work etc.

Photo by RDNE Stock project on Pexels.com

For many years this thought made me stick to being an individual contributor until I was no longer able to push what I can achieve through my work. Work got super boring and monotonous, also started feeling helpless many a times. Long working works, weekend work as a result of poor planning became the norm. At the same time, I read two books – Fish! and Who moved my cheese. These two books just drilled the following points in my head.

  • Work does not have to be a boring, repetitive, stressful affair
  • Create a work environment that people along with you enjoy being there and doing it
  • Change is inevitable, which means I should not resist growing up to managing people, just see how to grow into that role
  • Comfort zone will make you rot eventually

This made me ready to ditch the individual contributor tag and take up the lead role. To my surprise, my tech skills did not vanish, instead I was able to get better at abstractions and multiple tech stacks. I was able to influence task breakdown, planning, onboarding and knowledge management which in turn created an easy environment for people to work. Better work environment led to less stress and I observed that the team was always in a mood to help each other out instead of hammering away at their task lists. As a result we were able to deliver what was thought to be an aggressive 4-5 month plan in just 2.5 months without breaking a sweat.

It was a great start for me to become a multiplier and shun the fears of becoming a manager. Techies fit the best to lead other techies. Management does not mean pure management, people can manage while still retaining their tech exposure on a day to day basis.