The universal build process

A significant part of making software is the build process especially in large teams where code developed by a plenty of people is assembled to a running release. This process of managing and consolidation versions of source code modules is surprisingly similar to the digital publication process used by modern content management systems. Here and there we have versions management, sign in sign out, process management, checks, build and publication.

Build everywhere

It seems that this process is quite universal; in several professions if a group of people are working on a larger project they use similar methods. As far as I know something similar to the build process is used in the car industry, in ararchitecture and maybe elsewhere too. Franky I don't know but I can imagine that the extensive use of computers and large- maybe geographically dispersed teams - may  lead to using similar methods.

Differences

However there are obvious differences. In publications the interdependency between modules (e.g. pieces of news) are much larger, while in engineering disciplines documentation, "coding conventions" and control is much stricter,than in software production.

Consequences for software creation

Coding is somewhat in between. Discipline is usually (but not always!) weaker than in engineering, builds are frequent but releases to customers happen often (albeit in large systems rather in form of patches and extensions). There is a tension; on one hand it's expected to produce productive code fast on the other to have more discipline. Maybe modern system could achieve both; they could support modularity with less interdependence and strict process which also includes and supports architecture design and maintenance, various code check methods and reviews. I don't know how it can be done but I have the feeling that building software is still is build around a concept of a genie working on a text editor, like a wise monk writing a manuscript and using the cloister library as a... library. Modern technology and good teams could do better.

No comments:

Powered By Blogger