There are five skills that are mandatory for anyone being considered for a programming developer position: analytical thinking, computer programming, performance tuning, problem-solving, and interpersonal skills. Analytical thinking is imperative given the complexity of programming, but so are interpersonal skills because they help create cohesive team dynamics and problem-solving. The challenge in hiring the ideal programming developer is that many candidates have some of the requirements but lack others. Shortcomings in any of these five areas pose potential problems for every company’s data management operation.
According to a research study titled, “What distinguishes great software engineers?” published in December 2019 by Springer Nature, “The distinguishing attributes of great software engineers can have wide-ranging implications for software engineering research, practice, and training.” Excelling in the following skills can mean the difference between great program developers and good ones.
Want More Tech News? Subscribe to ComputingEdge Newsletter Today!
There also are specific instances where managers can guide their developers to enhance their skills on the job. For example, with performance tuning issues such as a website page taking a long time to load, managers should lead their developers through the steps of looking at the cost of the query to see if there are any hash joins or the full scan index, and to determine what kind of indexes were created on the table used in the query.
Another example is when informatica mapping takes a long time to load the data from one layer to another. Managers can direct their developers to look at the session and workflow logs. By doing this, the developer will likely determine that the aggregator is taking too much time and will learn that before aggregating the data, they need to sort the data by using the sorter transformation.
When hiring developers, always look at potential candidates’ portfolios to evaluate their prior bodies of work. Ideally, these should include everything from open-source projects to projects that show their examples of coding. Potential hires should also be given an assessment test, one that ensures they will use the same skills and tools in the company’s projects. In addition, it’s important to look for potential hires’ “soft skills” that encompass their ability to be flexible, solve problems under pressure, and communicate effectively.
Without doing due diligence when it comes to hiring developers, a company could find itself in serious trouble. The smallest mistakes can cause minor issues that can result in downtime and small financial losses, to major issues with catastrophic consequences. In the financial industry, anything from an issue in mutual funds to a payroll department mistake can adversely affect a company’s market share. If a software developer makes an error in the healthcare field that results in someone being denied benefits, the consequences could be life-threatening to that person.
Here’s an example of a major error made by a software developer(s). On Sept. 14, 2004, a computer glitch at Los Angeles International Airport (LAX) saw the airport lose voice communications with over 400 flights. The system was down for almost five hours, affecting more than 800 commercial flights and leaving thousands stranded. Apparently, LAX’s Voice Switching and Control System (VSCS) was originally on Linux but had been upgraded to Dell computers on Microsoft in 2003, which “had an internal clock designed to shut the system down after 49.7 days to prevent it from becoming overloaded with data.”
Being a software developer is no place for a lone wolf. The work requires immense teamwork and figuring out the right kind of communication in the right environment. Developers often work on projects where there are 100 or 200-plus team members. One project alone can encompass a development team, modeling team, infrastructure team, business analysts, product owners, and scrum masters, to name a few. How developers talk, document, and deliver presentations is important. Developers need to clearly understand the project’s requirements and what must be done to complete the project.
Also, it’s incumbent on developers to stay abreast of the changes in the fast-paced IT industry including staying current on new tools and models. Together with continuing to hone technical skills, developers must also pace themselves to avoid burnout. Software development projects are often done under extremely tight deadlines, which is why it’s important to break down each project into small sections, estimate the time it might take to complete a project, and ensure the deadlines are realistic.
In the development environment, last-minute problems can emerge. Staying focused and calm, not hesitating to ask for help, and learning from issues that arise will not only help developers solve problems but also put them in better positions as team leaders going forward.
Ultimately, to be successful, it’s important for developers to take responsibility for and ownership of their work. That can only be achieved by constantly improving these five critical skills. It doesn’t matter if a developer has been working for 10 months or 10 years, ensuring they stay up to date with the ever-evolving and constantly changing technology is key, as is continuous learning.
Finally, developers should also pay it forward by using their knowledge and skills to teach and guide others. It’s the best way for companies and developers to grow themselves and their teams.
Vikram Bachu is a software engineer specializing in ETL development. He has 10 years of experience in the industry, and is highly skilled in Informatica, IICS, UNIX, and multiple databases.
Disclaimer: The author is completely responsible for the content of this article. The opinions expressed are their own and do not represent IEEE's position nor that of the Computer Society nor its Leadership.