Nick Hardiman lists the systems, languages, and methodologies modern cloud developers use, and identifies what sets them apart the most from developers of the past.
Developers make software for the world to use. The job of a developer is to crank out code -- fresh code for new products, code fixes for maintenance, code for business logic, and code for supporting libraries.
The discipline required to wedge meaning into an overgrown box of transistors is tough. The day job for a developer requires a lot of concentration. You can measure just how much concentration by waiting until a developer is deep into visualizing his coding requirements, and then blowing a French horn in his ear and rating his reaction on a scale of 1 (no reaction) to 10 (shouting rude words).
Every developer has a toolbox of favorite tools -- specialist applications like text editors, browser add-ons, and code debuggers. These kinds of things have been around since long before cloud computing, which suggests that the developer's way of working has not fundamentally changed.
So has the cloud made any difference to developers? Is there really any difference between a developer from 10, 20, or even 50 years ago and a developer now? Are they the same deep down, or has the world of the modern cloud developer moved on?
The modern cloud developer...
...uses a source code control system
Source code control systems have been around for decades. A source code control system includes
- a repository for storing code,
- a version system for keeping track of releases, and
- revision control for managing copies of the master code.
The difference for the cloud developer is how these systems have adapted for a widely dispersed workforce. The modern developer knows his master from his branch, and can clone, pull, push, and merge code.
The centrally controlled systems Apache Subversion and Microsoft Team Foundation Server are popular, but the outright winner with the modern cloud developer is the distributed git system and the website built around it, GitHub.
...uses agile development methods
The pressure on IT to help get products to market quicker has aligned it with smaller, faster, and more flexible ways of working. Agile methods continue to spread across the enterprise and so does its jargon, with terms like code fork, scrum master, and daily standup.
This jargon is second nature to any developer who has run a git merge to pull commits. To non-developers, this agile jargon looks like random word soup -- a kanban board? That can't be real, surely.
One of the developer practices to come out of agile development is the sprint. To most people, a sprint is something Usain Bolt does. To developers, a sprint is a week or two of happy team hacking time. The developers produce working software in this time.
...saves time with a PaaS
The developer wants the overhead of infrastructure build, integration testing, and deployment hidden from him. Platform as a Service (PaaS) is the cloud computing layer aimed at developers, removing overhead and speeding up coding. The PaaS vendor that removes the most developer overhead gains the most tech respect.
...is a he, not a she (most of the time)
The shameful truth is most developers are men. Few technical projects are lucky enough to have Nerd Girls on the team because there are few women in technology. If you find this sexist state of affairs irritating, watch the inspiring story of why Jane Ireton, 7 years old, loves to program with her dad. That will make you feel better.
...speaks many languages
These languages did not appear because of the cloud -- plenty of these languages are older than the developers who work on them. The difference for modern developers is they must be more flexible to deal with the mix of domain-specific languages making up a product. Specialist programmers can't be as specialist as they used to be.
What's the biggest difference between current and previous developers?
The biggest difference between developers now and developers in the past is the speed they can go. A modern development team can create development infrastructure in the cloud, build working software in a matter of days, and then destroy the infrastructure. And do it all over again the following week. Modern developers achieve this using automation tools, collaborative methodology, and ready-made components.
But it's not all good news. Fewer and fewer developers are women. If you have a daughter, would you think of setting her up for a career in the dev world?
Developer skills shortages have come and gone for as long as there have been developers. However, the world is now run by code, and that highlights a new responsibility for the new cloud developer. The modern cloud developer makes the world work.