STAGE 1 – CONSULTANCY
Our first step was to understand exactly the client’s requirements. After a number of high level meetings with the management team. Fact finding days where organised with each departmental manager. Here at Axisware we find these days to be very productive as we can gauge what each department requires from any system, we also can build a relationship with the key drivers of the project. Once the fact-finding days had been completed, a detailed specification was produced to make sure all parties agreed on the scope and content of the software.
At this stage we set out the development cycle and fix dates to each stage. Most of our developments have a number of stages where the client can see the software in action check on the logic and make changes where applicable. The standard cycle for a development is as follows:
- Alpha – Usually delivered quite quickly after the project starts this is a bare bones system with not all functionality but will give an idea of our understanding of the client’s requirements, changes to the system are much easier to make at this point so it’s a very important stage.
- Beta – This stage is much nearer to the finished version and allows the client to test the software in an environment similar to that when the software goes live.
- RC1 – Release candidates are produced once the client has tested the Beta stage and only minor bugs exist. The project can go through a number of release candidate stages.
- Final Release – The software is now ready for a production environment, of course we keep track of any issues and provide builds as required.
STAGE 2 – DATABASE DESIGN
Initially we worked closely with the incumbent software supplier and IT infrastructure provider to gain access to their current system. We analysed the database with a database modelling tool built in house, this enabled us to rapidly reproduce existing database structures into our own development environment. In this case we used it for reference only but in previous developments we have used a similar technique to add functionality to exiting databases. Once we where happy we understood the database structures we described the database in code, and our frameworks generate the required databases, indexes and relationships. Building a database this way allows for some great features. it allow us to make rapid changes to the database structure and also deploy the database on any database engine. The Database engine chosen was Microsoft’s SQL enterprise server.
STAGE 3 – SOFTWARE DESIGN
Once the database design was complete it was time to get started Coding. The system was built using Visual Basic.Net as the underlying language. The system was designed for windows, however with our flexible frameworks we are able to develop the application onto ASP web pages and mobile (IOS, Android & Windows) with a minimum amount of work. This helps future proof as much as possible the client’s investment. The system was broken down in modules to allow for a simpler development:
- Purchasing & Contracts
- Delivery & Intake via weigh bridge
- Laboratory testing and comparison to base lines
- Stock control and stock movements
- Analysis & Reporting
- UI and user experience
This approach brings many advantages to the development cycle and improves the clients experience.
STAGE 4 – TESTING & DEPLOYMENT
Testing is a big part of any software development and to aid in this stage we always use one of our developers who have not been involved in the production of the software to blind test the software. The blind testing is a very important part of our quality control procedures as it gives an insight for our developers on potential issues and user interaction which the developer may not have thought about. Once we where happy that the software was stable we delivered a release candidate. This stage is the final handover stage with all the functionality and user interface as per the final version. The client tested internally for a number of weeks with their own internal jobs before a final production release. We continue to develop the application as the client request new features, following the same procedures to ensure continuity of service.