Real Artists Sign Their Work

When I was reading Steve Jobs by Walter Isaacson, I came across the following line.

Real artists sign their work - Steve Jobs

This happened when the team finished designing the first Macintosh. Jobs asked everyone in the team to sign and made their signatures ship in every single Macintosh. You can see the image at cultofmac.com

I really loved this idea. It creates a sense of pride for the people who work on making a product. No one wants to ship something that they are not proud of, atleast no one wants to associate their name with a mediocre work. Same is applicable with code. Developers who craft the a Class, Component or a File should sign their work of art.

When I was working as an SAP ABAP developer, we used to have the practice of adding our name or user ID, date and a description of the change that we are making to a file. It was simply to track down the changes in programs as SAP was not having a version control as good as Git. It will look something like the below one.

Date       | User ID | Description
2022/01/02 | ahamed  | CR-2036 - Add support for 401K
2022/01/06 | ahamed  | CR-2042 - ........

Though we wrote it out of necessity, it created a feeling of associating yourself with the program. If a program carries your name more often in the list, then you feel more ownership towards it. Whenever I happened to work on a program, I used to go through the history and see all the names written on the program. I felt it’s an equivalent of an artist signing his work of art. Some of them will bear a date that’s older than a decade. You never know where the person is now, but he has left a mark that is going to exist as long as the program is there. Same was the feeling when I was browsing through the Java SDK source files with the @author tags.

I miss the same in this modern Git era. Though Git signs every line of code with the authors identity, its purpose is more for blaming instead of taking credit for the work. The feeling of associating your name with the piece of art manually is missing. Every class, every function and file is piece of art. Though the logic of the code is pre-determined, you get to show your artistry on the API, variable names, function names, ordering of the parameters in a function and in many more decisions. It is very rare for two person to come up with the same code for a predetermined logic.

I think it will be a great practice to let our programs bear our names. It will definitely let the person writing the code, to show some more craftmanship when he is associating his name with the code.

comments powered by Disqus