When a product is released, we get to see only the perfect side of the final product. Behind this perfection, lies a story, the story of human efforts, of many days, months, and quite often years. Whether or not we accept the final output, tremendous human effort can be neither erased nor forgotten. Lessons learned from them serve for future guidance. There are always some lessons to be learned, from positive, negative, or mixed outcomes.
Taking the analogy of a stage performance that takes hours and hours of training and practice before the final day of the performance, a software takes years and years of experiments and tests and is sometimes influenced by other similar software including some failed previous attempts. The final stage performance is the combined effort of composers, performers, directors, choreographers, makeup artists, costume designers, lighting managers, producers, sound technicians, and numerous other unnamed people who ensure the stage is in the best shape. Every person contributed to the stage play according to their role. Yet, as an audience, we often see and judge the final outcome based on the performers and visible persons on the stage.
They say that it is not the arrival at the final destination that matters the most, but the journey as well as the lessons learned along the way that counts the most. For a stage performance, it is the preparation behind the stage or curtains and the final performance. Each person learns several lessons during this whole exercise. The making of this performance is a performance in itself.
But this story is not confined to a stage performance. Every painting, movie, or software application has a story to tell. There are several lessons learned and decisions made. Some decisions might have been rational, while others might have been instinctive. A failure may lead to new tries or some abrupt endings. In both cases, there is an evolving or emerging story to tell for future generations.
As a contributor to several software applications, I have seen many people come and go as part of different projects. Software development continues. Their contributions, decisions, and choices leave behind a story of the direction of the software development. Unfortunately, these stories are not often narrated, because of missing documentation and discussion notes. A house is made brick by brick and a software application is created line by line of code.
Taking another example of the literature survey made by researchers, they start looking for the existing works related to a problem at hand. If the problem is about developing a software application to resolve the problem, they may look for existing tools or applications, study their features and the approaches used, and document their advantages, uses, as well as limitations.
The lessons that we learn during any of the above exercises and many others not documented here, but practiced by people from other professions have tremendous potential. Sometimes, we call this acquired knowledge of success and failures by an individual their expertise. Nevertheless, if we look at these successes and failures around the world, we see that all of us are repeating the same path, often repeating the same failures, forgetting the lessons learned from some previous attempts.
An important question that we need to ask is whether we need to invent the wheel. Some may say that an approach tried elsewhere cannot be repeated in their area, because of the differences in the environments including societal and cultural differences. Instead of reusing the existing technology and tools, we end up developing the same solution a million times. Some even cite that the license restrictions prevent them to make new modifications. As we are entering into an era, where humanity is seriously considering the use of our energy and resources, it is time that we reflect more on creating efficient solutions, learning lessons from people around the world, and not repeating the same mistakes. It is time that we document and share our lessons, positive, negative, or mixed. There is no shame about sharing mistakes since we all are here because we learned from our own mistakes and had opportunities to improve our lives. It is time that we also learn from the lessons from others.