Sculpting Software to Create Beauty

We're often called Software Engineers. But sometimes creating software feels more like artistry than engineering.

Forming the Malleable

When Michaelangelo created his David statue, he revealed the image of David in the stone. From a block of nothing, he chiseled away until he was satisfied that he had realized his vision in the physical rrock.

To sculpt is to shape and refactor constantly. This is more especially true in soft clay before it is fired. It is malleable and constantly being shaped. Refinements happen over time.

Similarly in software: the medium is almost ultimately changeable.

And people know that, so requirements are eternally changing -- and moreso more than an engineered bridge which gets widened to 4 lanes. The expectation of all involved is that anything's possible.

New information comes from the environment but also from the software itself and the process of making it as feedback from the medium. For instance, two things that seemed independently distinct, now put side by side, have little contrast. They are refactored, renamed and compartmentalized in order to make distinctions clearer.

Singular Vision

Where did the vision of the David statue come from? Can you imagine any of the great works being sculpted by committee, by a team of chiselers?

Yet we try in software. We start, having little vision and immediately throwing in 6 developers. We may give each a component to work on.

If the sculpture is of a man, it will have eyes, a nose and a mouth. Dev 1, 2 and 3 will deliver something that will see, smell and speak.

What are the odds that the parts are beautiful and complementary, blending as a whole? If the sculpture, with all its components, eventually realizes a beautiful form, it is because of a singular vision, one that is able to integrate the parts to fit well together.

Software projects are generally too large, egalitarian and speedy to be likely to create, share and execute consistently according to such a vision.

Useful Beauty

Of course, beauty is only one aspect of the software, and it's probably not the ultimate goal. Software is usually created to solve a practical problem in the world.

But beauty is not disconnected from this practicality. The beauty that can be seen in the well-crafted integration of components, for instance, will also be indicative of the quality of the integration. And integrity will denote stability and reliability.

This kind of beauty is not just a flowery and decorative add-on. It is a comment on the deeper form of the structure of the software.

Besides, software engineers, for all the effort here to call us artists, are also the sort that don't easily forget the practical. All of this software must still work for a user, fulfill a customer, and not break its public contracts.

One Man's Beauty

Of course, tastes differ. Not everyone likes Michaelangelo, or whomever. Beauty has some subjectivity. Artists as well as engineers are kindred spirits in this passionate tendency.

Even so, high attainment is recognizable. The masterpiece doesn't have to be your favorite in order to call it a masterpiece. It will still evoke humility and respect.

And then we can't take our eyes off it. The beauty that's attained becomes worth retaining, contemplating, emulating. It reflects on the piece. And then pieces proves its own beauty and integrity by standing the test of time.