Programmers and Cooks

Published in category Opinion
on Christian Mayer's Weblog.

[Dieser Post ist auch in Deutsch verfügbar.]

From the perspective of a manager[1] there is no difference between a programmer and an editor. Programmers don’t manage data. They ensure that the data automatically get there where they need to go. So programmers create no data, they treat existing data. But even that is not quite true. Programmers treat no data but by the programs/scripts they write. In contrast, an editor active produces new data. Sometimes it happens that these two areas of responsibility meld. For example, when there are no any forms yet for editors for specific data structures. Or a particular system in an application doesn’t work yet as expected. In this case a person with direct access to the underlying system needs to intervene.

This is like the following example. A cook at an inn passes the guests because he needs to go to the other side of the inn because of this current task. While passing the guests he gets approached by a guest the cutlery missing. The cook can either bring a cutlery the guest immediately although he is not competent. Or he tells the guest that a colleague will bring the cutlery. So he can either take immediate action, because the guest does not matter by whom he gets served. Or the cook makes the guest wait. Although it is not the job of the cook. It would be better if he serves the guest immediately and continue his actual task afterwards. So, he may lose his current chain of thought and need to restart his thoughts. Because the guest not only needs a cutlery but also an extra table and chairs.

To get back to the topic: the cook in this example is the programmer. Of course we, the programmers, can add or change data to databases, but it’s not our job.

Footnotes

Recent Posts

About the Author

Christian is a professional software developer living in Vienna, Austria. He loves coffee and is strongly addicted to music. In his spare time he writes open source software. He is known for developing automatic data processing systems for Debian Linux.