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.

At a logical break from a task which requires focus, I switch to answering mails and chats. One thing that I find difficult to respond to is a series of messages from different people just saying “Hi” or “Hello” or some other one liners which checks ‘how you doing’? People will let me know why are they pinging only when I respond back with a “Hi”.

People are so used to whatsapp communication in personal lives which happens almost instantaneous especially from a section of people who like to be always on. For people engaged in knowledge work, it is extremely hard to have a full duplex communication. The messaging apps have to be considered async first. This means, say what you want to, just like how you write a letter by post to the person expecting long turn around times.

For a remote friendly workplace, first rule that makes it work is async communication. For that to be effective message exchanges have to be rightly sized so that a receiver can read and respond at one go instead of trying to resume the thread once someone becomes available. People should not be available by default for synchronous communication unless they accept a meeting request.

If you have not been an async receiver or a sender, try this for a while – resist the temptation to answer to emails and instant messages immediately as they arrive, best is to turn off notifications for all messengers or any other application. If you receive a ‘Hi’ only message, respond to it in your next window, but resist the temptation to reply synchronously unless you are available.