“Life is like a box of chocolates,” Forrest Gump once famously said. “You never know what you’re going to get.” In one short and sweet statement, the character played by Tom Hanks was able to sum up life’s mysterious yet alluring nature. Just as Gump, every day we use metaphors to express abstract ideas in simple and understandable terms. This is why our failed relationships often result in “broken hearts” and some people appear to have “black holes” in their stomachs. It saves us the hassle of having to explain the sappy details of our emotional troubles or our disgust at those who constantly gorge themselves and somehow remain perfectly fit.
Very similarly, metaphors are used at Software Planet Group as a convenient way to establish a shared understanding of complex systems.
In his book Extreme Programming Explained, legendary developer Kent Beck described what he dubbed system metaphor as a “story that everyone — customers, programmers and managers — can tell about how the system works.” While this may initially come across as somewhat outlandish and unnecessary, in practice, it is as simple as the daily analogies we use and quickly becomes an incredible asset to any project.
Without a good system metaphor in place, it is easy for customers to get lost in the midst of technical jargon — and the same is true for developers having to learn corporate terms. This is why at the start of every project, we sit down with our customers for a thorough discussion about their business culture, goals and the solution they would like us to create. We use this information to devise highly relatable metaphors by incorporating familiar concepts into the final allegory.
For example, if our software engineers were developing a money transferring system, we could create a system metaphor using everyday words like “account,” “transaction,” “debit” and “currency.” This would allow everyone — customers and developers — to be on the same page, as the ensuing ramifications would enable discussing every part of the system, in the context of a money transfer.
In addition to streamlining communication, system metaphors clearly define functionality and give developers valuable ideas that can inspire actual code. Yet the true power of the system metaphor lies in the hands of the customer.
Writing for The New York Times, Pulitzer award winner Thomas Friedman once stated that “in the world of ideas, to name something is to own it.” Friedman hit the nail on the head. By learning to identify system parts by name and conceptually understand their functionality, customers become true owners of their projects — they are empowered to actively participate in the development process and ensure that their vision will be kept intact. At Software Planet Group, we welcome this partnership like strawberry milkshake on a hot summer day.