By Mitul Bid, CEO & Co-Founder, Coditas
“India does not produce good quality code” is a statement I often heard at international developer conferences for the first ten years of my career.
The National Employability Report 2019 by Aspiring Minds projected that only 4.6% of the Indian job applicants possess good coding skills and the overall quality of Indian engineering graduates is at the same level it was ten years ago. There are, of course, outliers; but if we manage to come up with a sane metric for code quality and run it against all the code India writes on an average scale, it is an open-and-shut case.
Not that the individual coder is not good. For the most part, there is no organizational drive in promoting clean code. Hence it isn’t surprising that most coders in India are not even aware of clean coding. Looping in the education system we pursue, the scenario is problematic, given the fact that India is the number one outsourcing destination with approximately 59% tie-ups globally.
Theory-Based Education Curriculum
On average, an Indian engineering student has to deal with more than 40 subjects within 8 semesters which involve them attending hours of daily lectures and reading up on thousands of pages worth of information. Ironically, we live in a reality where the amount of technical data is increasing exponentially every year. So, half of what students learn in their 4-year course gets outdated by the time they graduate.
The Employability Survey had also concluded that 41% of the faculty do not discuss industry-specific concepts. It, of course, creates a situation wherein graduates have no real-world exposure to development neither a knack for writing application-level code.
The Corporate Scenario
A more vexing element that drives the problem — a majority of the Indian software companies look at software purely as a business. It’s mostly about getting the deliverables ready on the quoted time and almost never about striving for quality results. Consequently, the team treats coding as a task to be ticked off with numbers rather than a task requiring quality — something that would actually educate folks to avoid future mistakes.
It’s a chain reaction, really. When the organization itself does not prioritize clean quality coding when a product is being developed, most coders lose the urge to be curious about better practices and approaches since they have to direct all their efforts into meeting deadlines.
A Communication Gap
Even to this day, many skilled professionals in the industry lack the ability to convey their ideas and pain points effectively during client meetings or within the team. Organizations need to establish the fact that coding is only one aspect of the job and that communication is equally important. Especially in the service sector, when we are constantly collaborating on large-scale projects, it’s absolutely crucial for clients and internal teams to be on the same page.
Clean coding practices can be conventionalized only when team members communicate proactively with each other and share their side of the experience. Open-source communities like Stack Overflow and Hacker Noon offer coders a lot of scope to stay up-to-date with concepts and even contribute to budding projects.
No passion for coding
In India, we are not surprised when an engineer states that the reason he/she pursued a career in IT is that their parents wanted them to, or because society has determined that it is one of the most lucrative white-collar job industries there is.
Pragmatists may beg to differ but passion does have an impact on how we perform in our professions. If a coder is not coding with an intent to create something meaningful or learn something new, and it is just about the paycheck, poor quality results are bound to occur.
Clean coding is a passion and more industry executives should invest in teams that would practice and promote clean coding. It not only makes more business sense but can also dynamically change the negative perception the world has about Indian coders.