By Simon Smith
Often when we are going through the design stage for a custom software application clients ask “Can it do this, this and this?” Whatever “this” is, the answer is almost always yes because we are at the design stage and the required functionality can always be built in to the design of the application whether or not it is actually implemented.
Another common question is “Can we have this report?” Again the answer is yes, but it is qualified by the statement “As long as the information upon which the report is based is captured.”
These two points highlight the importance of the functional design stage for a custom software application. The functional design stage is a process intended to lock down the key functionality or business requirements that a custom software application is to deliver by documenting how that application is to function and what outcomes it is to provide.
The information and knowledge management (IKM) team of the AECgroup uses a tried and tested three stage process to deliver custom software applications:
-
Stage 1 – Functional Specifications and Detailed Design
-
Stage 2 – Implementation and Testing
-
Stage 3 – Maintenance and Enhancement
Stage 1 involves us meeting with the client in a series of workshops to design the application that will meet their needs. Firstly, a functional specifications document is created that describes the problem to be solved, business rules and outputs and breaks the problem down into its components explaining what needs to happen for each. Secondly, a detailed design document is written that describes all the various elements that will be required for the application including user control and permissions, tables, fields, relationships, file formats, interfaces, administration items, procedures and reports. The detailed design also provides a schedule of programming elements and an indication of the effort and time required as well as a testing plan. At the end of Stage 1 the client will have a blueprint for a solution that can be put to market and be accurately costed.
Stage 2 is the implementation of the solution, or building of the application. The detailed design in Stage 1 will have described the order in which the components are to be constructed. Also part of this stage is the testing of the application. Testing generally occurs in three stages, by the programmer(s), by the project manager and by the client. Depending on the number of components and complexity of the application there may be several testing feedback loops. At the end of Stage 2 the client accepts the application and it goes into production accompanied by a user manual and user training.
Stage 3 occurs once the application is past its warranty date. IKM allows a three month warranty period during which any bugs that arise, or areas that do not perform according to the specifications, are addressed. We then generally put in place with our client a maintenance contract, or service level agreement, to respond to and fix any unforeseen issues that may crop up from time to time. During this phase it often arises that the client may wish to expand the functionality of the application in which case enhancements are designed and implemented. Depending on the size and scope of the enhancement a similar three stage process outlined here maybe followed.
The above process has been used many times by AEC's IKM team to deliver successful custom software applications. But the key to achieving a successful custom application with minimum fuss is to keep it simple using the 80/20 rule, that is, 80% of the solution can be delivered using 20% of the effort required to get to a 100% solution (and 20% of the cost!). So when asking the question “Can it do this, this and this?” remember yes it can if it's designed in upfront but is really required? or would it be just nice to have?
For you custom software needs please contact Simon Smith, CEO at simon@aecgroupltd.com