In this article I write about definition of “simple”, and acknowledging ones limits.
I will start with a statement that in a world of software development companies nothing is easy, literally nothing.
The moment when a developer touches the keyboard is actually the last part of his job, and probably the easiest one.
When approaching the development of a platform with advanced synchronization features (such as for example messaging), I often hear that since our company has experience with such systems it should be easy to reproduce it into another product. I won’t even start the discussion about legal side of this statement, but I feel that since the programming/software development/coding (call it as you like) is perceived as “black magic” by some, then they won’t even try to understand the challenges behind building a virtual product. Their logic is simple here — you’ve done that once you can easily do it once more — this is both true and false at the same time.
I understand that C-level company members do not necessarily have to understand everything when it comes to programming, but this only applies as long as they don’t want to “expertise the experts”. I believe that the reason behind hiring someone to create a virtual product is not only for their writing skills.
In a real world you subconsciously assume and perceive some occurrences/states, you do not actually think about all the “what if’s” behind simple tasks you do every day. Brewing a tea, walking down the stairs, opening door, turning on the light — you do it everyday don’t you? Easy? I wonder how long it took for engineers from Honda to “teach” Asimo to jump on one leg (hint — long{:target="_blank"})
Let me set the background for the story I would like to share with you in following part of this article:
We travel back in time to a period in which there are no
smartphones, tablets, laptops, TVs, even electricity.
The only way to send a message between two kingdoms
far away from each other is through a messenger.
How would a process of sending a message in this period look like? Someone writes the message, the message is being transported by the messenger, the addressee receives and reads the message. From King’s perspective sounds pretty simple. Well not exactly, at least not when you were to program it.
The following bullet list is just a tip of the iceberg of problems that such “simple” task would require addressing. Therefore, let’s take a closer look at some of the challenges that “someone” will have to think of before commencing the message transport:
Above examples are just a few that a person responsible for message transport would have to predict. There are much more cases I could outline, but I think that you are able to get my point by now — the definition of “simple” changes based on your role, no matter the task and its place in time.
The bottom line is that there has to be someone that will make sure that even a “simple” task will be successfully finished, because the difficulty of a task does not determine its importance.
So if a messenger tells you that sending a message to a village few km away will be difficult, please remember that he is an expert, and try to understand why, it will make both yours and his life easier.
Credits to Mateusz Zagórski from AppUnite for his help with the article.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Block quote
Ordered list
Unordered list
Bold text
Emphasis
Superscript
Subscript