The Benefits of Software Standards

Daniel Snider
2 min readDec 8, 2020

Opinionated software means, ‘we think we know the right way to solve this problem.’ When software guides you into their way of doing things, it is akin to standardizing. And standardizing has magical properties.

Standards enable frictionless collaboration and enforce best-practices.

The Wonderful Benefits of Standards

One of my favourite things to do is bike around Toronto to look at construction sites. The exposed, incomplete buildings reveal their inner beauty, complexity, and order. I can see hundreds of contractors buzzing around following the same building code, engineering standards, and Building Information Systems. For those contractors, standards are a shared language and a set of unified goals.

When you pick up a book and flip pages, you find that every book is organized the same: front matter (title page, copyright, table of contents), body text, and back matter (appendices, bibliography, index). This convention keeps you from having to relearn the location of things. Standards make skills transferable.

In biomedical research, leaders in the field have lamented:

“Much can be gained simply by better organization of the current state of the art.” — Erik Meijering et al., Nature Biotechnology, 2016

While coordination seems to be thriving in the Deep Learning field:

“Open standards such as MLPerf and Open Neural Network Exchange (ONNX) are key to driving innovation and collaboration in machine learning across the industry.” — Bill Jia, VP, AI Infrastructure at Facebook

And the IEEE has shared some non-technical advice for nascent open source software communities:

“Adhering to a small set of predefined governance rules and practices means that open-source communities can attract and keep supporters by minimizing the overhead that building an open-source community entails.” — Robert Fish, President, IEEE Standards Association

Without standards, developers and maintainers get bogged down in debate. What’s the best solution? What do people really want? It’s mentally tiring. These difficult questions are best answered by experts in the problem domain and then codified into standarized software frameworks. Standards leverage past knowledge to enhance quality and reduce decision fatigue.

Conclusion

Software frameworks like React, Docker, or Robot Operating System (ROS) are ideal places for standardization because they are designed to solve one problem in one specific way. The more specialized a software is, the more potential there is to guide users to solve problems the right way. Standardization is like Miracle-Gro™ for software frameworks. They prevent deficiencies and encourage healthy growth of applications built on the framework.

In a future article I will focus on concrete examples of standardization in software frameworks.

--

--