The Tip of an Iceberg

The aspect of a software product that we see and interact with, is much like an iceberg, it is only the tip. We may consume the capability a piece of software provides through the user interface (UI), or if we are a developer through the API. What we don’t see is what is hidden underneath the surface. That is as it should be, if you are the user of the software. If you are the owner of the software and it is a crucial part of your business, then what is underneath the surface matters. Underneath the tip of the iceberg is where most of the -ilities lays, scalability, availability, extensibility, maintainability, …. and so on. The usability and relevance of the software product, the tip of the iceberg, is of course what will make the software a success or not. But in the long run it is the -illities underneath the surface that will make it an asset or a liability, that is what will float your boat or sink it. When features needs to be added or changed, when the system needs to be scaled, that is when the unseen will make or break the product. Does it take hours, days, weeks or months to implement, test and deploy a new feature. Will the introduction of a new feature break an existing feature? will fixing one defect introduce two new defects.? How robust or brittle is your software? As the software need to grow to support your business, that is when what is Behind the UI, will become known.