It would be easy to slip into technical jargon with such a topic, but I’m going to avoid it as much as possible. So, to re-phrase the question, how do we get a software project from A to B, from an idea to a fully working system?
Well, like with all software development, it depends! There are many different approaches to developing a software system and the approach taken is determined by a number of factors. These include budget, architecture, complexity, quality constraints particularly around safety and compliance and also deployment.
Where to start?
The starting point, is to conceptualise the original idea and to develop a specification covering what the system must do and how it should perform. These requirements are then analysed by the development team to formulate a design, which is the blueprint for development.
The design covers a number of factors including the required parts of the system and how they fit together, the shape of any underlying data, how users will interact with it and other important factors such as security and performance. The design is critical to the success of a software development project, it is first time in the project where the development team can demonstrate their understanding of both the problem domain and the client’s requirements.
Let the coding fun begin!
With an agreed design, development can start. Most software these days is developed using an iterative strategy, it is a method that has been largely settled on after several decades of development. Iterative development means a small part of the system is developed, reviewed, tested and optionally deployed. This works well, as clients get to see a product developing and work with the development team to ensure the product meets the requirements very early on. My experience has taught me that feedback given during iterative development is essential for a successful outcome.
Test, then test some more
After a number of iterations, when enough functionality is available in the system, it will undergo more rigorous testing. Here the system will be deployed to a number of test environments and validated against a number of factors until it meets the required quality assurance standards with any defects being resolved.
Release into the wild
Next, the software is released for use into a production environment and hopefully it operates as required and meets the needs of the business. This is not the end of the story however; good software is continually improved. It must be adapted and advanced according to ever evolving business and technological demands.
This is just an overview of the stages and general principles of how bespoke software is developed. Here at Innovensa, we have our very own software development process which gives serious consideration to the design followed by an adaptable and iterative approach during development. We have built in quality assurance gateways at various stages of our process to ensure we deliver great software every time!