The first part of developing any system is the initial chat.
In our initial chat, we’ll have a coffee and chat about various items of your brief.. for example..an overview of your organisation is a great way to help us understand your objectives. It can also help us to suggest additional functionality that may benefit your organisation. We’ll chat about the products/services your company offers, the size of your company, the mentality of your company and your objectives for the future.
We’ll also need to know what you are trying to achieve with your piece of software. Generally, software is required to solve a particular problem / inefficiency. We don’t need to know the details at this stage, we need to know what your software will do, we’ll touch on budget constraints and timescales, but it will give us a good understanding of how to spec your system.
A System and Software Requirements Specification provides us with a good basis upon which we can both define a great system and help us identify key areas that can be designed in order to the customers needs.
We have to keep in mind that the goal is not to create great specifications but to create great products and great software. Systems and software these days are so complex that to embark on the design before knowing what you are going to build is foolish and risky.
Once the spec is complete, most of the major decisions about the system have been made. The goal of the coding phase is to translate the design of the system into code in a given programming language. For a given design, the aim of this phase is to implement the design in the best possible manner. The coding phase affects both testing and maintenance profoundly. A well written system reduces the testing and maintenance effort. Since the testing and maintenance cost of software are much higher than the coding cost, the goal of coding should be to reduce the testing and maintenance effort. Hence, during coding the focus should be on developing programs that are easy to write.
After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.
The size of the project will determine the complexity of the deployment. Training may be required for end users, operations and on-call IT staff. Roll-out of the system may be performed in stages starting with one branch then slowly adding all locations or it could be a full blown implementation.
This phase confirms the software operation in terms of more efficiency and less errors. If required, the users are trained on, or aided with the documentation on how to operate the software and how to keep the software operational. The software is maintained timely by updating the code according to the changes taking place in user end environment or technology. This phase may face challenges from hidden bugs and real-world unidentified problems.