Pereiti prie pagrindinio turinio

Software development practices in 400 BC

I have a lot of respect for time. It is something that everyone has, but never enough. Something that can turn a simple task into a challenge.

For example, rowing. Doing it once is quite easy. If you do it for a longer time, you will discover new places. If you do it well enough for a while, you might even become famous. What fascinates me most is how time tests everything to the absolute limit. The longer something stands, the bigger it is considered. If a product has „Anno 1894“ in its logo, it must be a decent product. What about the pyramids? They are truly amazing structures! Anything that stands the test of time is automatically considered magnificent.

Most probably due to my respect for time I always fancied history. It is amazing how you can go back in time and look for the causes of what is happening today. For example, our current legal system traces its roots back to Roman common law. Similarly, great ideas from before our era are still being applied today, even in software development projects.

After putting these thoughts together, I started looking for quotes from some great minds. If they have passed the test of time, then they must be admirable, and can still be true today. The first quote that really caught my attention was written thousands of years ago by Plato.

“He who is not a good servant will not be a good master.”

I loved this quote because I have personally been in at least a few situations where it was very true, both in my professional and personal life. I will tell you about both.

Meet Freya, my dog, a Border Collie. She likes to play with a soft ball and, as you can clearly see, is a little too foolish to be a Border Collie. However silly she may be, she has taught me the same lesson as Plato. Let me explain.

When we got Freya, she was just a little puppy. She was not yet house-trained, so… Let’s just say that accidents used to happen indoors. It was my responsibility to teach her to go outside to keep the apartment clean. I contacted professional dog trainers and the main advice I got to speed up the process was to give her a snack or a treat every time she successfully went outside and didn’t make a mess in the house. At the time, the concept of rewarding a dog for urinating seemed ridiculous to me.

One day, when I was still in training, I had a very difficult day at work. A colleague, who had just started his career in software development, put me under a lot of pressure. He was making mistakes after I had corrected him for what seemed like the fifth time.  „He just did not seem to understand. He couldn’t get what I was telling him,“ I thought. So I was upset and decided to take my little dog outside. She leaned over to pee. I thought: „Even though it was a tiring day, at least I didn’t have to clean up when I got home“. „Good girl“, I said, for not making me go through the unpleasant cleaning procedure. Freya looked a little confused, as she had never received kudos after a successful outing before. But she gave me the happiest doggy smile she could and wagged her tail.  This confused look gave me a lightbulb moment.

Many years ago, I worked as a junior programmer in a small local company. Every time I created incomplete or buggy code, I would get feedback like „You did it wrong“ or „You shouldn’t have done it that way, do it better“. This helped a little because I knew there was a problem, but the process of finally learning what was „right“ was painful and frustrating. Then I was just like Freya. There were certain requirements, but I did not have a clear idea of what they were.

For a minute I imagined I was a happy little Border Collie puppy. There seemed to be endless opportunities to pee! On the kitchen floor, under the curtains, in the yard, on the neighbors grass. Oh, and let’s not forget, on the owner’s bed! But whenever I peed in the wrong place, the owner would call me out… When this happened, I thought to myself: „Okay, this time I peed on his work trousers and got yelled at… I think I shouldn’t have done THAT. Let’s cross that off the list. Only 784 more potential spots to check!“

 If only I had told Freya to go outside… She wouldn’t have had to bother crossing items off an ridiculously long list! It was the same with me in those days. It would have been so helpful if there had been someone at my work who had simply told me how to do things, instead of pointing out my mistakes. If only I had someone who still remembered the struggles of a young, beginner programmer. Let’s put it a little more clearly: if only I had someone who was once a good, well-trained junior programmer as my mentor. Or, as Plato would summarise and paraphrase: If only my teacher had been a good servant.

Be a patient guide to those who are starting out. This will allow the rapid skill development of new employees.

On that day, Freya got a snack. For the next month, I patiently explained my expectations to my colleague. The mistakes started to disappear and we were both much happier working with each other.

As I said, when I first read Plato’s quote, two situations popped into my mind. The second is not the situation with Freya, but a story that a close friend of mine once told me.

My friend’s friend is currently a top tier manager at a waste disposal company. Despite his current position he had humble beginnings. He started out as a trashman, operating trash trucks and collecting garbage from apartment blocks. He has done his job very well and has been promoted several times. One day his boss asked him to look after the other trash collectors, so he became a manager. A few years later, he achieved impressive business success. He did this by listening to what ordinary trash collectors had to say about how things should be managed. When it came to buying new machinery, he asked the people who would actually operate the machines. He took their views on whether the machines would meet their needs. He also talked to people until he understood whether the new machine would improve the daily life and efficiency of ordinary workers. In this way, the overall efficiency of the company was greatly improved and the company was able to compete with other companies. This manager still remembers how he started his career. He remembered all the creative ways he made life more efficient and simpler when he was still working outside the office. He knew that only other people outside the office knew what was best for them and how to improve their work. In Plato’s phrase, he was a good trash collector and therefore could become a good trash collector’s manager.

Going back to building great software, if you need to manage people, listen to what they say. If they suggest using a particular technology, take their reasoning into consideration, even if you have heard that a competing technology is „really good“. If technical people tell you that something is a „problematic idea“, reconsider it.

Listen to the people involved in the development of the system and you might avoid an embarrassing launch or lots of angry customers.

My initial hypothesis was that great ideas that have passed the test of time are still applicable today in software development. Clearly, Plato’s idea is still valuable in this field. People are still people, just as they were centuries ago, and the same principles still apply, even if we are no longer acting in the same circumstances. Perhaps Plato’s quote was an exception, and most of the other ideas we still quote today would confuse us in modern industries? There is only one way to find out: to dig deeper and test your hypothesis against many other vintage quotes, and therefore against the test of time.

by Povilas Vytautas Jeremičius

Populiariausi blog'ai

  • Migrating from Xamarin to .NET MAUI: A Comprehensive Guide

    The world of mobile application development is constantly evolving, and Microsoft’s .NET Multi-platform App UI (.NET MAUI) is at the forefront of this change. As an evolution of Xamarin.Forms, .NET MAUI offers developers a modern, cross-platform framework for building native device applications. This blog post will guide you through the process of migrating your existing Xamarin.Forms application to .NET MAUI.

  • My experience on taking the eWPTXv2 exam

    So a few months ago I had the joy of passing the eWPTXv2 exam. Well, it does not sound intriguing until you translate it into human language. The eWPTXv2 is actually eLearnSecurity Web Penetration Testing Extreme second version. Everything sounds better than you put extreme into it. Well, this is not that case since the exam is actually a bit hard.

  • Socialinis intranetas „Simoona“ – dabar prieinamas kiekvienam!

    Šiame blog’o įraše papasakosime apie vidinės komunikacijos įrankį, mūsų kurtą socialinį tinklą „Simooną“. Tik prasidėjus kūrybos procesui mums rūpėjo tik viena – kaip kuo daugiau įmonės kultūros perkelti į skaitmeninę erdvę. Ir prieš aštuonerius metus, net neįsivaizdavome, kad šis vidinis intranetas, bus toks svarbus kuriant glaudžius ryšius tarp kolegų ir tikrai net negalėjome nutuokti, kokia svarbi „Simoona“ bus užklupus pasaulinei pandemijai.