Jenkins, DevOps, Microservices and Containers: Preparing developers for tomorrow's technologies
In an era when technology is changing at lightning speed, it’s hard for mere mortals to keep up. This is as true for software developers as for anyone else. Programmers who graduated from university just a few years ago are likely to find that the ground has shifted under their feet and much of what they learned in school is not relevant any longer. They must make bold choices about how to move their careers forward. Employers in the Information Technology & Communications sector face similar challenges in obtaining the talent they need to keep pace with technology.
Al Hilwa, Program Director of Mobile and Cloud Software Development Research at IDC, has shared a helpful presentation entitled “The New Developer Landscape –Understanding the Modern Software Developer”. It outlines some of the factors that are creating and impacting this new paradigm.
Ecosystems and abstractions rule the software world
As a starting point, Hilwa noted that developers need abstraction to reduce complexity and increase efficiency. This abstraction is occurring throughout the stack. Iron.io’s CEO Chad Arimura spoke to how it is being expressed in one particular area of cloud computing. “What we’re seeing at Iron.io is the serverless trend. It’s about empowering developers to develop without having to think about building for a specific infrastructure or server configuration, construct, CPU, memory, and bandwidth. They can just build it and it runs and scales. Of course, there are still servers somewhere and there is still Ops. But the goal is to abstract away from the developer that’s building the logic as much as possible and give them tooling to build without thinking about those underlying components.”
According to Hilwa, developers inhabit “ecosystems” of skills around related programming languages which cluster around different degrees of abstraction. These ecosystems eventually transcend the front-end/backend split and reach both the enterprise and consumer app domains.
What are these high impact programming languages?Obviously, there are many new general and domain specific programming languages that are finding their own niches in the ecosystem. But the most popular languages come as no surprise. Java rules the VM with more than 5 million users. On the client side, C# and JS are both strong contenders at more than 3 million developers each. PHP holds a similar sway on the server side. For model driven apps, HTML5/CSS and SQL rule the roost.
These are still strong choices for developers who want to maintain a relevant skill set. But developers will also need to be flexible enough to pick up new languages as they go. Trisha reported that job advertisements looking for full stack developers are just the latest trend. The definition for this buzzword is pretty fuzzy. “Before, it was frontend or backend. Now it’s full stack. What they are really saying is ‘We need you to be able to go with whatever we throw at you.’ You may have to do some Javascript, some backend stuff, some DevOps, possibly even talk to customers and do some soft skills stuff. People can’t predict what you will be working on, so you have to learn on your feet.”
What does this mean for the education of software developers?
According to Hilwa’s report, 80% of US developers have a college degree. They are the most educated of all IT categories, ahead of Sys and Network Admins, Network Architects, System and Security Analysts, and Database Admins. But with such uncertainty about the upcoming demands of the marketplace, it may be difficult for developers seeking ongoing education to know where to focus their efforts. Fortunately, this may not be something to stress about. The technology ecosystem is big enough to accommodate anyone’s passion. Gee offered these wise words, “There’s so much going on and it ebbs and flows so quickly. It’s too hard to be an expert even in the basics like cloud, microservices, or Java 8. It’s just too much. Don’t freak out. Just learn the stuff you care about. ”
For employers looking to prepare their own workforce to take on fresh challenges, there are a number of areas that are ripe for skill development. These include microservices, serverless architecture, and containerization. Arimura added that having a grasp on concepts like multi-cloud will also be useful. “The confluence of those trends is where we are seeing software architecture going and where the applications of the future will be built. If you architect them using those four trends, you are positioning yourself for a modern enterprise stack.”
But again, specific technologies are always shifting. People remain at the core of productivity and innovation. More than anything, employers should focus on identifying and cultivating their most flexible and adaptable developers. These programmers will be the future of the enterprise development community.