Big decisions are often fraught with risk. Sometimes though the only way to make the right decision though is to test the options first.
For the last few months I've been working on a CMS application for a client that has been steadily growing in size. We both agree that there will come a time where we will need to make some decisions about the design of the application so that it remains easy enough to maintain and develop but also scales up with the client's expected growth for the next few years.
It's something we've both been putting off for some time now, but with more projects and clients appearing in the client's pipeline, we've decided that now is the right time to start making these decisions.
The problem has always been though that if we make the wrong decision we end up too far down a path that we don't want to be. Backtracking might not be an option and working towards a different solution is something that we don't want to end up doing either.
The answer to this dilemma has been surprising simple. For each technical decision we have to make, we have a number of options that we can consider. Rather than analysing and committing to the most attractive option (in theory anyway), we have decided to take a day and implement that option in a single day to see where we get to. If by the end of the day, we're still happy that we've made the right decision, then we continue on with this option. If we're starting to have doubts, we abandon the option and try something else.
Software developers will recognise this concept as a spike. This is the idea that you carry out enough work to recognise the risks and knowledge that are associated with change in design or functionality. The spike gives the developer the chance to find out the risk and complexity involved in such a change. With the information, developers can provide better estimates for these changes or completely rule out a change.
The spike is a great way to ensure that you limit risk from a decision without committing to that decision. It will involve some time to determine if the option you are spiking is worth pursuing, there's no getting around it. However it is better to invest some time in pursuing the right decision rather than blindly committing to the wrong decision is it not?