The nature of work is changing. New trends in technology are creating new possibilities for automation and artificial intelligence. While the impact to overall job numbers is unclear, one thing is certain: technical skills will be in high demand.
This series from CompTIA examines those skills that companies are searching for. Even when job titles look familiar, it is important to understand how roles are changing in an environment becoming defined by cloud computing and mobile devices.
In Building Digital Organizations, companies told CompTIA which skills are currently needed as digital transformation reshapes the nature of business. The direct impact of technology on business outcomes gives modern IT a dual nature, with strategic efforts being added on to tradi8onal tactical work.
Although software has been part of the technology landscape since the introduction of computing, companies are rethinking their approach to software in a new digital era. Historically, businesses may have viewed internal IT efforts as hardware-focused, but digitization across a full range of business operations leads to demands that must be met through software. As organizations seek a greater degree of customization and automation, they are building development teams or partnering with outside firms rather than merely relying on packaged software.
For many firms—especially in the small business space—this represents a step into a new area. Companies that have had little experience with software development beyond a simple website now need to use software to maximize the use of new technology models and compete in a new digital environment. As Marc Andreessen said, software is eating the world, and those without a solid strategy are likely to be chewed up.
Modern software development practices are the result of an evolutionary process that began in the 1990s. The high failure rate of software projects and the rise of the internet changed both project methodology and technical expertise, leading to a new range of skills needed by software engineers.
On the project methodology side, the predominant model changed from waterfall to agile. The waterfall approach was a lengthy process that was often not flexible enough to account for changing business requirements. Agile development is a highly iterative process, and the team is often broken into distinct groups that focus on individual pieces of the overall process. While this brief focuses on developers responsible for the core application features, other roles on an agile development team can include database administration or testing/quality assurance.
Developing in an agile environment requires specific skills beyond knowledge of the languages and tools being used. With a faster pace, programmers must be able to break an application into granular pieces, often utilizing object oriented programming and open source software to build the final deliverable. Additionally, they must have the ability to collaborate with other parts of the team, either by describing the connections between parts of the application or by specifying the tests to be run on their code.
From a technical standpoint, the internet changed the way that applications were delivered, and that change continues today as mobile devices and IoT networks become platforms for software. At a very high level, the challenge for modern application is balancing the compute and data needs between the endpoint, the back end hosting system, and the intermediate delivery layer. Traditional packaged software operated in more constrained environments (such as a single server or PC), but advances in connectivity and endpoint capability have created a new paradigm.
This new paradigm has also created more granularity. On the back end, developers might focus on user authentication/authorization, the persistent data needed for the application, or the management of the hosting infrastructure. In the delivery layer, the focus might be on web servers, secondary information caches, or API management. Finally, development on the front end might concentrate on function taking place inside a browser or UI/ UX.
While a full stack developer may have skills across all of these areas, most applications today are complex enough to require specialization. Programmers will typically have clusters of skills, such that a job title at one company may have broader responsibilities than the same job title at a different company. Of course, different companies will also use specific languages and tools, but each focus area contains some general skills as well.
The increased pace of agile development and the dynamic nature of internet applications have driven a need for tight integration between applications and the underlying infrastructure. DevOps skills help bridge the gap between traditional software activities and traditional hardware activities. These skills include virtualization, scripting, and automation tools such as Chef and Puppet.
Most recently, the increased granularity of application development has led to microservices architecture. Taking a page from services oriented architecture (SOA), a microservices approach breaks the function of an applica8on into discrete components. In addition to speed benefits, microservices can improve scalability, reliability, and multi- platform support.
Business skills are growing in importance for technology occupations, and software developers are no exception. As with many areas, one of the most critical needs is an understanding of the company and the overall market. Since agile development is built around responding to changing requirements, programmers must understand corporate goals and the underlying motivations. With a more fragmented approach, communication skills are also more important. Consumer technology also creates new end user expectations, and front end developers in particular need to understand user behavior and accessibility issues.
Since software developers offer a direct connection to daily tasks for many workers, they are as likely to reside in business unit as in the core IT function. This simply adds to the difficulty in finding the right skills. Not only is software being explored for the first time, but there may not be much technical depth in the hiring process. A good understanding of basic modern development skills can help businesses find the right candidates in a competitive market.
The Computing Technology Industry Association (CompTIA) is a non-profit trade association serving as the voice of the information technology industry.
With approximately 2,000 member companies, 3,000 academic and training partners, 100,000 registered users and more than two million IT certifications issued, CompTIA is dedicated to advancing industry growth through educational programs, market research, networking events, professional certifications and public policy advocacy.
Read more about IT Support and Help Desk.
Tags : IT Support and Help Desk