Find out if your development tools and methods match up to todayโs state of the practiceโand how that practice will evolve
I work for a San Francisco startup. What we use in Silicon Valley isnโt necessarily indicative of the industry as a whole. So I informally asked a few friends distributed throughout the industry what tools they use, to figure out the tools a modern (but not Silicon Valley) development organization uses.
Granted if youโre in a gray cubicle farmโor, worse, a beige cubicle farmโyou may not be on the bleeding, leading, or even dull but unrusted edge of technology so your mileage may vary. If you just ask Microsoft โwhat should we buy?โ then again your mileage may vary, but even Microsoft realizes Git is king and our world is increasingly diverse, making any single vendorโs development tool stack harder to devote yourself to. Itโs a polyglot world today when it comes to development tools.
If youโre trying to see where you are in relation to others, this article will show you. If youโre looking to set up a new shop and wondering โWhat is everyone else doing and where should we be going?โ then it will show you that as well.
Whatโs clear is that modern development organizationsโeven ones that may think theyโre a bit old-schoolโdo not look like even those of a few years ago. In the near future, weโll have a very container/machine-learning place, and maybe even be chatops-driven. After all, scrums and devops were space-alien concepts not that long ago.
Whatโs common across modern development organizations
The following things are common among most people I spoke with. They represent the non-aspirational state of software development.
Email is dead, Slack is king
Seriously, nothing has achieved widespread acceptance as quickly as Slack has. Sure, some places use HipChat or other Slack-like things, but Slack is how organizations work these days. Theyโre chatty, and now the chat is searchable.
PCM and CVS are dead; all hail Git and GitHub
Back in the day, code checkins were hard and locks were pessimistic. Iโve worked on global projects where checkins over a transatlantic cable took forever. And letโs not talk about checkouts.
Now, revision control is distributed and Gitโalthough significantly more difficult to use than past toolsโwas such a step forward that Git has achieved complete dominance.
Everyone has a Mac
Iโm a reluctant Mac user. If it were up to me, Iโd be running Ubuntu Linux on better hardware. However, my company-paid-for computer is a Mac. And Iโm not alone. MacOS is faster, though more bloated and cumbersome, than Windows, and I have all my familiar tools like SSH, but I still miss Linux.
Jira is still our bloated king
Jira may be aging, and there may be alternatives like BaseCamp and the open source Open Project. But Jiraโs strength is that if youโre on it, you arenโt leaving. Youโre already familiar with it. It has a marketplace for extended functionality. It plugs into most things, and most other things support it.
Jenkins is still serving us
There are upstarts like Travis-CI and the also-rans like Jira-creator Atlassianโs Bamboo, but in the end, Jenkins is still on top running our continuous integration and deploying to our test environment.
AWS is where itโs at
Amazon Web Services isnโt the most affordable cloud platform. It isnโt the easiest to use. But it is certainly the most full-featured, and it is what most people are familiar with. Iโve met people using Google Compute Engine or Microsoft Azure. Iโve used them for projects myself, but by default the platform people use is AWS.
The internal platform is still VMware
For developers behind the corporate firewall where the cloud is merely a dream, theyโre still on VMware and doing things the VMware way. Provisioning is still a wait, and the SAN performance is still unpredictable.
Agile development is mostly scrum-ish
Everyone is doing something like scrums but not scrums exactly and few are rightfully convinced that they are doing agile right or that their โagileโ is really agileโand not either โcargo-cult agileโ or chaos by another name.
Discipline, project management, and product management are still underskilled, undercompensated, and underrewarded.
Whatโs trending across modern development organizations
There are many leading-edge practices we talk about at InfoWorldโdevops, Docker containers, Kubernetes container, Windows containers, cloud development platforms (PaaS), omnidevice development, machine learning, new languages like Kotlin and Google Go, and so onโthat havenโt achieved global adoption (yet).
Containers
Whether it is Docker or its possible heir apparent Kubernetes, not everyone is using containers.
First, if youโre under load pretty much all the time, there is overhead to running it on AWS. Your cost advantage only happens if you can actually share resources.
Second, the use of containers makes your software more maintainable, but it also makes your build and deployment process slower and more complicated.
Machine learning
Identifying where you can use machine learning (a subset of artificial intelligence) and munging the data into a format that allows you to use machine learning is the hard part.
Some people are using it under the covers in products they buy, but they donโt have the data science expertise to prove its usefulness. Also, a shortage of expertise in the market has made machine learning adoption more muted than the hype would indicate.
Chatops
People are interested in chatops, but no one I talked to is doing it yet.


