Simberon Design Minute
 

Big Decisions

Most of the time, I advocate delaying design decisions until the time when you need that feature. This policy avoids complicating our design early on with additional complexity that we only need later. There are times, however, when a decision has wide-sweeping implications on the system. As a result, it's difficult or impossible to delay the design decision. One such decision is whether to make your user interface internationalized. Are you going to support multiple languages for your UI? If you do, it changes the way you manage strings in your system. You'll need to replace strings with codes, symbols, or some other key that can be used to loopup the appropriate translation. If you make this decision too late in the process, you may find that you have hundreds or thousands of strings in the system that need to be change to codes. The effort of making that change could be prohibitive.

Other examples of these big decisions are databases - object or relational, thin or thick client, the user interface framework to use and programming language. You usually get only one chance to make those decisions so it's important to make that choice early and after considering all the options.

Download