Level 6, 122 Walker Street, North Sydney 2060  |  (02) 9993 3300  |
Posted 21st March 2016 by Lawrence McCrossen

How do you specify a system for a software development project? In the majority of cases clients do not have a detailed set of documents describing the system that they’d like to build. Hence we are often asked how this can be done, and whether a standard way of doing this exists.

The short and correct answer is “no”. We do use some templates which ask key questions and guide the client in the process, but there is no single approach applicable to creating a spec for a business software application.

To clarify, we are referring here to the development of a substantial system that requires complex business logic, probably with a database containing fairly complex data structures, not, for example a simple website that can be created using available template designs. Nor am I referring to systems on the other end of the scale, such as NASA space guidance systems!

Software Specifications

If you search online for spec document templates or workflows you are unlikely to find what you are really looking for. The reason is that there is no one-size-fits-all approach. Why?

  1. The multitude of delivery platforms – desktop applications, browser based and mobile devices, all from different vendors, makes it difficult to standardise the user experience
  2. Many companies don’t have time and resources to create a detailed spec at all, let alone a spec based on a standard
  3. The often used Agile methodologies discourage the use of detailed up-front specifications. Instead they recommend small project iterations that can be easily described in plain language, which is translated into code by the developers
  4. It’s very difficult, if not impossible to completely or even partially specify a system up-front, mainly because it’s often something that hasn’t been done before. So it’s not surprising that having standard to follow doesn’t help much – a standard for what?!

So what do we do at The Bridge - leave it to chance? From our experience, there are a number of things we can do, depending on the circumstances:

  1. Use prototypes – if you can create something that looks like what you want in say Excel, this gives our developers a much better idea of your vision. In fact Excel works particularly well where there a lot of calculations involved eg financial markets tools
  2. Even if you don’t have time and resources to write a detailed specifications, at least spend time writing up key points of what you expect in terms of user experience, information flow, and of course functionality
  3. For bespoke websites (ie non-templated), use standard Content Management Systems and graphical files for designs

Lastly, as with all aspects of project management, always keep involved in the development process, whether from within an agreed Agile development approach, or a Waterfall methodology. Interpretation of requirements is crucial, however they are communicated, and the only way to ensure that the software is in line with expectations is to review regularly. Very regularly!

If you'd like to discuss your software development options with The Bridge at no cost or obligation, feel free to call Lawrence on 02 9993 3300 or email lawrence@thebridgedigital.com.au