Bruce Crozier

Business Software Analyst

 

 

 

Applications Design

 

Too often applications design is left to the user and the programmer. With all due respect, the user typically has not had the breadth of experience to see possibilities and potential pitfalls in design solutions. And they lack the technical knowledge to understand the possibilities and limitations of the code. With all due respect, the programmer typically does not have the business experience to understand the root needs of the user and the needs that the user may not be expressing or even aware of. With all due respect, that’s why the profession of software analyst exists.

 

Good business applications design requires a solid understanding of business practices. People who design a business application without understanding the business need behind it tend to design as though the scenario (“user story” in today’s jargon) is carved in stone. Sometimes all or part of the need is, indeed, immutable, such as in tax calculations or vendor rebate reporting. But many times what the user needs today is likely to be different tomorrow. What seems like a simple warehouse location system might need to accommodate RF or bar coding down the road. If the file system is designed without considering that possibility then much time and money could be wasted. If the user desires a pricing calculation based on the volume of units sold, has the designer allowed for the possibility that dollars sold may be the criteria in the future? These are, of course, very simple examples of potentially far more complex considerations recognized by an experienced analyst.

 

Another common mistake is to design for exceptions. Users typically outline the ninety percent plus scenario of their need first but then go on to lay out scenarios that are exceptions. Sometimes these scenarios represent only a tiny fraction of the need. That does not minimize the importance of the requirement for the application to be able to handle that scenario. In some cases, it may actually be the driving force for the development project in the first place. But the design needs to be weighted so that the user or the system isn’t wasting resources going through steps that are only required in the exception.

 

These are the types of things an experienced business software analyst should bring to the design process. A good design cannot be successfully realized, however, unless it is communicated to the programmer clearly and in great detail. Unfortunately, there is no software that will read a general specification and spit out all of the answers to the questions the programmer will ask—assuming they think to ask them. It takes a certain aptitude to be able to think through all of the logical possibilities of a design. Good programmers have this ability but the designer needs this as well, or the programmer might answer their own questions. If they get that far. Sometimes the design is so poorly thought through that halfway through the coding process the programmer hits a wall that they can’t code over, and the whole project must start over. The expense of a lack of detail can be severe.

 

Design is the part of software development that I enjoy most. It allows me to combine my business experience, my aptitude for logical systems, and my communication skills, and be creative. Much of what I do involves looking for mistakes and fixing them after they’ve caused problems. Design is an opportunity to prevent mistakes before the fact.  

 

  

 

 

 

* Home  * Contact