Andrew C. Oliver
Contributing Writer

What a modern development organization looks like

analysis
Oct 12, 20175 mins

Find out if your development tools and methods match up to todayโ€™s state of the practiceโ€”and how that practice will evolve

professional development 5
Credit: Thinkstock

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.

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.