Last week when I was watching a home renovation show, Holmes on Homes
, I got to thinking. The host was walking through a seemingly sound, esthetically-pleasing, renovation that appeared to have one small flaw. As his crew started to peel back the layers of this renovation, it became apparent that deeper in the original construction there were several more flaws, some of them major. In the end, they needed to destroy 80-90% of what was completed to improve the 10-20% that was showing.
As I sat there watching this, it occurred to me that this analogy is often true with software development projects. Many are hard-coded and written in a haphazard way, creating a delicate structure with a pretty veneer. Everything looks great on the surface and works fine today, but when a little something needs to be added, you may be in for a big surprise.
When designing an application, it's important that the structure is sound enough to support today’s needs and is designed in a modular way so that it supports the new needs that may arise tomorrow. But how do you ensure this? First, it is important to work with right partner and the right technology. Look for a software partner that has a qualified team and previous examples of successful deployments. Then make sure your partner knows your business case, including your vision, key processes, key audiences and more. Working with your development partner, you can design a solution that leverages best-of-breed components that are loosely-coupled to work together. This approach allows you to easily add and remove components and to update technologies as newer ones evolve and become new industry standards.
Whether you are building software or homes, the principles are the same, start with a solid plan, use quality materials, choose skilled builders, and keep your plans open for future needs, you never know how things will change.