Carlo Pescio — Software Design and the Physics of Software

video:

Domain-Driven Design Europe 2016 – Brussels, January 26-29 2016
http://dddeurope.com – https://twitter.com/ddd_eu
We often speak of software as possessing properties, usually expressed using –ilities (extendibility, reusability, scalability), or by adherence to some principle (separation of concerns, don’t repeat yourself), or defined by metrics (coupling, cohesion) or even using broad, subjective characterizations as “fragile”, “robust”, “clean”, etc.

This is also true for physical materials: we define a material as a conductor, or an insulator; as being compressible or incompressible; etc. However, a property in physics is always defined in relationship to a (generalized) force applied to the material. We speak of conductors and isolators because we have a notion of electrical current and electric potential difference; we speak of compressibility because we have a notion of compression; etc.

In software, we speak of properties like “extendibility” or “fragility” but we’re left to vernacular usage or arbitrary definitions, because the forces at play are unknown and undefined. Yet there are forces acting on our software. We just don’t know them well and we don’t use them well when we design software structures.

This talk is about a possible theory of forces in software, and how it can inform the way we design, the way we talk about design, the way we think about design. While it is necessarily broad and introductory, it also gives a few specific examples in relationship with known principles and a more precise characterization of some –ility, together with a few new concepts that form the basis of the theory itself.

Tags

Follow us

Read our latest news from Virtual DDD on any of these social networks!

Recent videos

Impact Mapping – The Secret Sauce

Details "Impact mapping is a lightweight, collaborative planning technique for teams that want to make a big impact with software products. It is based on user interaction design, outcome-driven planning and mind mapping. Impact maps help delivery teams and...

Pragmatic Architecture: How to Know When It’s Enough

Details Overengineering wastes time and effort, while underengineering creates future pain. How do you strike the right balance? This talk explores how you can use the balanced coupling model to achieve the just-right engineering. You’ll learn to predict volatility of...