Published: Mar 28, 2022 by

Over the last few years I’ve had the opportunity to see how a variety of teams
and companies build software. Along with that (like many others in the field) I’ve kept up with the content coming through various aggregators. Among the many things that every team has to decide is how they are going to actually build and maintain a project(s). We make decisions like:

  • what language to use
  • how to manage dependencies
  • how to generate artifacts
  • how to manage artifacts
  • how to instrument our project
  • how to deliver our project
  • how to document our project

Some of these have grown community standards, some platforms make the decision for us, but often times these decisions are made off a mix of experience and a lot of personal preference. Those preferences I imagine are largely impacted by the industry of personality and marketing that has sprung up around:

  • software education
  • dogma articles
  • self proclaimed experts

Some of the problems with our judgement being so strongly influenced by these voices is that they often lack data for us to place them in our context and judge the merit of what is being offered. Rarely do we know what didn’t work, what came before, the team composition and history, measurements used to determine if something truly was better or more successful. Instead it’s anecdata, stories told through the lens of one reality, comments that evoke strong emotions etc.

This has made me more and more uncomfortable over time. So much time and effort is spent without good data, and we churn and churn and churn. Oddly there are resources published withdata from academic sources like ACM, IEEE and industry sources like MS Research and Jetbrains (among many many others). These are not perfect, but they do capture a known context and pair that with data. Maybe the findings have distilled out to our industry over time, but I have a suspicion there is data there that raises questions and counterfactuals to what we extrapolate from ones individual anecdata that turns into the latest hot article/talk.

This isn’t meant to say that the advice we share and the experiences we live are not important. They are incredibly important. Instead I write about this as something I want to go to as a source of education and learning more often. I want to make sure I spend as much time with these sources as I do with articles in my RSS feed. I’m sure I’ll learn something along the way that I haven’t heard before. I hope to find some research spanning groups, companies and project scopes that provides a data analysis of the results on top of the stories of those followed.

ACM
IEEE
Microsoft Research
Jetbrains Research
ISO

programming, software-engineering, system-design