Friday, December 30, 2016

Thoughts on silversmithing and software engineering

"Yiannena, leader in arms, in piasters and in letters" is a famous Greek phrase that summarizes the status of the Greek city of Ioannina at the end of the 18th century and the beginning of the 19th. Indeed Ioannina, at that time a part of the Ottoman empire and under the leadership of Ali Pasha, were the wealthiest Greek city, had the most schools in the country and were a significant military force.

Ioannina gained a large part of the wealth by trading silver artifacts. The city gathered the greatest silversmiths and they were producing beautiful artifacts and eventually became known as the city of silversmiths. That tradition continued for many years and included many great craftsmen. One of the most famous was Sotiris Voulgaris who eventually migrated to Italy and founded the famous Bvlgari house.

Recently a new museum for silversmithing opened in Ioannina and i paid a visit today. It is housed on a beautifully renovated Ottoman building of the 18th century inside the castle of Ioannina. The museum consists of two levels.

The first level is the technological museum. It demonstrates all the techniques used by the craftsmen to construct the silverware. For each technique there is a showcase with tools, first matters and instructions about it. Next to the showcase is a screen that shows a video of a silversmith that demonstrates the technique to build an artifact. Almost all the techniques require great precision, timing and a very steady hand. Silversmithing is definitely not something you learn by learning a book. It requires years of practice. The most important techniques are: cupellation, hammering, raising, sand casting, filigree, savati and repoussage. Each of them produces a very different type of artifact.

The first level also contains information about the history and tradition of silversmithing in Ioannina, the bios of some great craftsmen and some illustrious clients of them. Also there are important informations about the social impacts. Greek readers should know that the phrases "ροδάνι η γλώσσα" and "ξετσίπωτη γυναίκα" are metaphors for some tools of the silversmiths.

The second level of the museum contains a rich exhibition of silver artifacts. It includes guns, swords, cartridge boxes, lucky charms, belt buckles, candelabras, bible covers, chalices, jewellery and much more. Each one of them is demonstrated in a proper showcase that allows viewing from all sides so that the visitor can fully admire both the piece and the craftsmanship. All these are accompanied by rich information on the social status of silverware through history.

In both floors there are touch screens with additional information and there is also a computer room with applications related to the museum like quizzes, encyclopedia and a drawing program with patterns from the exhibited artifacts.

In a nutshell the new museum is a jewel for Ioannina. It beautifully demonstrates a very important part of the city's history but also succeeds in hooking the visitor into the art of silversmithing. Add to this the beautiful building of stone and you have a very good reason for a visit.

My impressions from the visit should end here but alas i am a software engineer and can't avoid compare this art with mine.

Of course you can make many parallelisms like comparing software maintenance with cupellation (recycling silver), or compare sand casting with reusable libraries and frameworks. You can even go very far and compare filigree (a silver thread) with the flow of a program, or compare working on hot metal with testing on production. All these are valid but the main differences are two in my opinion.

The first one is visibility. A silver artifact is designed to be beautiful and breathtaking. There artifacts will be visible by many people who will admire both them and the skill of the craftsman. You buy silverware to impress. On the contrary, the best software is transparent. Users do not and should not care about the internals of the software but only if it gets the work done. They don't care about scaling they care only to find quickly what they search in the web. They don't care about clustering algorithms, they just want to find the best product to buy in the cheaper price. They don't care about containers they just want their machine to boot fast and never crash. They don't care about filesystems they just want to see the photos in their camera. The internals of software should concern only engineers not users. Although this is a very simple principle it is very often violated in practice. Engineers sometimes fail to properly evaluate the user's needs and they expose everything under the Trojan horse of configurability or as big tables of complex data or forms of colored buttons which is wrong. The correct way is to build it properly. Sometimes they focus too much on technology that software is impossible to be used by casual users.  But the worst thing is that most engineers think that something is good if there is a path to learn it, even if this path is difficult. This is very wrong. Computers and software should help users not vice versa and hence must be very easy to use. If a user has to learn a very different part of the software to do a slightly different job something is wrong. Good software is transparent.

The second big difference is craftsmanship. A silversmith masters his art and creates beautiful artifacts. His artifacts reflect good reputation to him and he gains glory and recognition. He may pass his knowledge to an apprentice if he desires. Well, not in software. We have learned that good software can only be build by teams not individual great programmers no matter how good they are. Also knowledge should be free and distributed quickly through communities. Although this is also obvious it is also very often violated in practice. Still some engineers believe in the legend of the great hacker/craftsman and they work that way. Undeniably they are very good in their work but they don't distribute their knowledge in the team and some times they don't want teammates, they prefer to work individually. But even in the case of a team the knowledge, the skills and the work are not evenly distributed and this causes great problems if the master fails to deliver. The situation is worse for communities as many good engineers don't share experiences and knowledge fearing that they may loose the master badge. Good software can be produced only by teams of uniformly skilled individuals very actively collaborating. Everything else that focuses on individuals and not on teams will fail in the long run.

Silverware is a luxury. A century ago people were buying silver artifacts to increase their social status. Today it is out of fashion as people prefer electronic gadgets and cars. However it may return in the future. But software is not a luxury, it is the engine of the digital age. Every day we rely more and more on software to do simple and complex things. We rely so much on it that it is crucial to be good and working. It is difficult to write such software but at least let not the myths of the craftsman and demonstration hinter us.

No comments:

Post a Comment