Common Software Design Mistakes
Common Software Design Mistakes
When building a piece of software, either for yourself or someone else, you should always have some sort of design in place before starting. Even if you spend 10 minutes writing down ideas in some sort of structured format, it will undoubtedly save you time in the long haul. There is a limit, however, as to how long you should spend on a design. You could (and we have in the past) spend months trying to make the software perfect on paper, but the reality is that the finished product will likely never be perfect. You will make mistakes, new requirements will come up that don't fit the current model, and so on. There are a number of steps you can follow to avoid wasted time and effort. The first mistake to avoid is "Over Thinking". Don't drag the design phase out longer than it needs to be because it just wastes time and money. Keep it simple by including only the necessary details. It is possible to include too little detail in your design, which leads to another common mistake. "Over Simplifying" is another pitfall to avoid. Make sure you have included all of the requirements in your design. It is easy enough to come up with the requirements, but if you don't take the time to write them down somewhere you will likely forget something that costs you dearly during development. The final common design step I'm going to leave with, and there are definitely more, is "Over Generalizing". Make sure you identify your audience and design the software accordingly. Much like authoring a book, if you misjudge your audience, your software will not be liked and probably not used. For instance, if you are designing a form on the web that collects information, don't put buttons in obscure places or include functionality that is not needed. A good example is a zip code box. Nothing is more frustrating for someone from another country than trying to fill your postal code in a form that does not allow alpha numeric characters. Certainly you can think of a piece of software that you were frustrated with. There is a good likelihood that the designer of that software didn't have you in mind when it was conceived. To recap, don't over think, make sure you have all of your requirements written down, and identify your audience before you start building a piece of software. You will save yourself time, money, and hundreds of pages of documentation trying to explain to people, who do not think like a software developer, how to use your product. (Incidentally, you could have Stephen King author your manual and still nobody would read it). |

