Indian Software Engineeronomics 101
Hiring Software Engineers from the “Services Market” into “Products and SaaS”
We all work on projects. And we are all here to generate revenue for our organizations. The above two statements combined represent the value and work of every software engineer in India. Why am I picking on India? Because its by far the largest pool of software engineers in the world (in addition to being the largest democracy in the world… but that’s a side fact).
The market reality of the software industry in India is that the services industry (likes of TCS, Infosys, Wipro, CTS, …) employs the largest percentage of engineers … I would hazard its in the range upwards of 80% of the total market. And that is not likely to change. This is because of the market dynamics of the services industry. In order for a consulting company to grow in revenue, it needs to grow in size by hiring more people.
Growth in Revenue =>Growth in Size (employees and engineers)
There is a great incentive in the services organization structure to feed such organic growth — the key metrics for any services organization is capacity utilization, value generation per engineer (dollars per hour) and the size of the organization/team.
People work in “projects for a client” for varying degrees of time (few months to a few years) and then would look to move on to other clients or projects or companies for novelty or breadth of experience. Given sufficient success at the engineer levels, there is natural pressure on the organization to push people upstairs (I mean management type of roles) to facilitate the organic growth of the company . There is perpetual economic hunger for growth (in revenue that IMPLIES growth in numbers of people that need to be managed).
The key reasons engineers look for a change from this market are for the following reasons — based on my lived experience:
- I am growing too fast (meaning I am being pushed to manage people when I really want to solve technical problems and learn more); I will call these “Ripe Engineers”.
- I want to write things from “scratch”…. or “I want to work in a “development” project; I am tired of doing only bug fixes; I will call these “Raw Engineers”.
- I am not growing fast enough (a euphemism for I am not earning enough money). I will call these the “Give me more Engineers”.
- I am not getting a chance to go onsite. I will call call these “Consultants”.
This is the market reality from where nearly 80% of secondary hiring takes place. Understanding this reality is critical for understanding the mindsets from which organizations hire in the secondary software engineer market in India.
Most product engineering companies (startups, captives, SaaS providers etc.) need to build their teams from this available pool. I describe below strategies for recognizing fitment of engineers from each category above into product engineering teams; This is assuming they have passed your technical evaluations and as hiring managers you believe they “are hirable”.
Ripe Engineers: They are genuinely ready for product engineering… bring them on, throw them into the deep end of the pool and get your team to support them with their induction. They will surprise you with how quickly they will become productive with the newly found technical adrenaline.
Raw Engineers: They need to be coached that there is NO such thing as “develop from scratch” and “I will NOT do maintenance”. Product teams will ALWAYS pick open source stacks for integration and will ALWAYS fix bugs as part of their product life cycle… there is NO dichotomy between “development” and “maintenance” projects. There is ONLY product engineering and it INCLUDES maintenance/bug fixes. Being upfront during the hiring stage and checking whether they grasp this reality is key. Without this, you run the risk of onboarding engineers with flawed expectation and low morale very quickly.
Give me More Engineers: Its a reality that on average product companies pay engineers more than services companies. This is an open secret and engineers know this. So, as a hiring manager, establish which category he or she “really” belongs (Raw or Ripe). Frame your questions and discussion during the interview to eke this out. Once you figure that out, address that part of the engineer in your interview. If you cannot figure that out, don’t make the hire.. you are hiring problem in your team.
Consultants: These engineers are hunting for a company where they have a higher likelihood of earning “dollar incomes”. There is no place in product engineering teams for these. Keep the interview short and close the interview.