In my experience, I’ve often observed a common disdain for perceived wasted efforts in the workplace. Many colleagues express frustration when tasks must be repeated, which can lead to a negative atmosphere and resentment within teams. They attribute this to poor planning, inadequate execution, or mismanagement. However, I contend that this viewpoint is misguided, particularly in the context of software development.
Software development is as much a learning process as it is a creative one. We can draw parallels with artists and craftsmen in different fields. Painters rework their canvases, constantly refining their brushstrokes. Musicians fine-tune melodies and harmonies to compose symphonies. Fashion designers experiment with various fabrics to achieve the desired style. Woodworkers discard pieces that don’t align with their vision. Inventors undergo numerous trials before succeeding.
Such activities are not mere repetition; they are crucial to the creative process. Yet, in software development, we often cling to unrealistic expectations. The notion of achieving perfection on the first attempt is not only unrealistic but also detrimental. This expectation, whether it comes from the team or the developers themselves, leads to frustration and discord. We mistakenly apply the principle of not repeating ourselves in the wrong context, ignoring the inconvenient truths about building software.
The most successful professionals in our field understand and accept this aspect. They see what others perceive as waste as an essential element of the process: exploration, trial and error, discarding unsuccessful attempts, learning, and growing. This approach is genuinely iterative.
These most adept individuals in our domain don’t let setbacks or apparent redundancies hinder them. Instead, they focus on the overarching goal, recognizing that each step, each so-called wasted effort, is crucial for innovation and excellence. The road to successful software development is filled with what many might consider waste.
Therefore, it’s time to shift our perspective. We should view these reworkings or throwaways not as hindrances but as integral parts of the journey. Waste is part of the process — a road marked by detours and reroutes, all of which are vital to reaching our final destination.