Vitruvius – ‘Firmitas, Utilitas, Venustas’ – In Software

note-HXA7241-20091025T2123

Harrison Ainsworth

Vitruvius' ancient principles of architecture can be used to view software.

Marcus Vitruvius Pollio was a 1st century BCE Roman Architect-Engineer, who wrote the earliest surviving work on the subject: De architectura.

Vitruvius writes of buildings of civil architecture that:

Haec autem ita fieri debent, ut habeatur ratio firmitatis, utilitatis, venustatis. . . .

All these should have solidity, utility, and beauty. Solidity arises from carrying down the foundations to a good solid bottom, and from making a proper choice of materials without parsimony. Utility arises from a judicious distribution of the parts, so that their purposes be duly answered, and that each have its proper situation. Beauty is produced by the pleasing appearance and good taste of the whole, and by the dimensions of all the parts being duly proportioned to each other.

– Book 1, Chapter 3, Section 2. (tr. Gwilt, 1826. (replacing ‘strength’ with ‘solidity’ – which has a broader feel of stability and durability))

These classical virtues – Firmitas, Utilitas, Venustas – apply to software today. They are a simple overall criterion of quality, ascending from lowest to highest level. With one adaptation: ‘Firmitas/Solidity’ is rather material, and perhaps the fundamental required properties of the digital would be better named: Fidelitas.

Fidelitas
– making the algorithm/computation work on the given computational resources – quickly, accurately, reliably, securely. Also, software adds an extra condition not analogous to building: evolvability.
Utilitas
– finding, creating, and crystallising the right functionality for the user; and matching that useful functionality to practical algorithm/computation.
Venustas
– making the whole product aesthetic in appearance and use.

Architecture and engineering were undifferentiated for Vitruvius. Now, we see them more as distinct disciplines. So the three virtues can be delegated among them:

  • Firmitas/Fidelitas – engineering
  • Utilitas – architecture informed by engineering
  • Venustas – architecture guided by aesthetics

This fits software development too, but the terms ‘architecture’ and ‘engineering’ must be correctly interpreted. The software world commonly uses ‘architect’ as a technical concern, but that would properly be called ‘chief engineer’: architecture is more about forming the product from the user's side.

Apple is a prominent exemplar of Fidelitas, Utilitas, Venustas: they attempt to realise all, highly, in balance, and as a unified whole. How classically good is your software?