Software programmers must be able to design their products as scalable and adaptable models, says Prasoon Sinhaemeritus engineer at Dell Technologies India, and one of Zinnov’s Technical Role Model winners last year. The rapid evolution of technologies, he says, makes it all the more important that his code has a forward-looking stance.
Prasoon, an IIT-BHU alumnus, has over 27 years of experience as an IT professional and spent over 11 years at Dell. His industry peers call him a “software craftsman”. A former colleague writes on Prasoon’s LinkedIn profile that if you make a habit of reading Prasoon’s code every night before you sleep, you’ll never need to read a software engineering book. “His attention to detail coupled with an overview makes it a pleasure to walk through his software design and code,” he writes.
Prasoon says you need to create products in such a way that they are immune to technological changes. “A machine language-based solution must be adaptable, scalable and maintainable over the long term. What you solve today will certainly change in a few years. So the more modular your solution, the happier your customers will be,” he says.
Prasoon says knowledge of the domain in which a developer’s code is going to be deployed is also essential. “A developer who has contextual knowledge is much more likely to create a useful and popular solution,” he says. While it may not be necessary for a young developer to have all the knowledge of the field when starting out, he says that “over time you have to learn to converse with people who are experts in the field” .
Prasoon, who worked for electronics design automation company Cadence before joining Dell, advises budding programmers to develop expertise in a portfolio of technologies that could be used to create products and solutions. “Once you are able to apply a portfolio of technologies to a particular area, you will become a major asset,” he says.
Bug fixing – a topic that often brings up hilarious memes and analogies in software engineering social circles – is another critical area for programmers. “If a bug appears in a certain place, it is quite possible that it also appeared in another area of the program. So, you should always seek to fix the root cause”, Pracon said. He encourages young hands to reach out to their peers, who he says will always have a different view of the bug. “They will bring a different perspective on what the problem might be and how it can be solved,” he says, adding to be on the lookout for repeating code patterns in a script, which could increase the probability of recurrence of the software bug.
* Create scalable, adaptable and maintainable software
* Domain knowledge is essential to create useful solutions
* Develop expertise in a portfolio of technologies
* If there is a software bug, understand the root cause