Software design is a complicated business. To illustrate this point, here is a user flow diagram from a previous project of ours. This level of detail is useful for a number of reasons; it gives the client a real feel for the end product before the need for any coding, it aids in the design process and it helps to formalise pre-development requirements.
Complications can arise when, down the line, it becomes apparent that a functional change is necessary. With all but the most menial of software, this scenario is inevitable.
By practising agile software development we allow for multiple changes during the design and build processes. These changes still need defining, but needn’t derail a project or upset its budget. In the example below what had been specified as an ‘About page’ within the app later became an ‘About section’. (Click the image to enlarge.)
We do our utmost to clearly define our software at the start of a project, but we have a well defined process for managing changes as and when the need arises. This enables us to crack on with development without getting bogged down in specification minutiae.
Got an idea for a project?
Need a website? Web-enabled software to streamline your business? Just some advice?