Software Development Methodology
We use a hybrid of Agile* and Waterfall** development methodologies for the software development lifecycle, from initial meeting to finished, tested and accepted software. We aim to use the best of both approaches so that the software development process is visible and flexible (Agile) but within an overall framework, staged plan and defined project objectives (Waterfall).
1. Initial Meeting
From an initial enquiry, we establish what it is you need and discuss your requirements in detail. Ideally, we prefer to meet face‐to‐face, but we can do this over the phone too. We are happy to provide a ballpark quotation at this stage to give you a rough idea of expected costs. If required, we will then produce a full proposal.
2. Requirements and Design
We will carry out a detailed requirements gathering and system design exercise for a fixed fee, with no obligation to proceed beyond this point. A typical cost for this work is £5,000 but it depends on the size of the project and how much work has been done prior to engaging us. We will work closely with you and your key staff to understand and document what the software is required to do, and then design and cost a solution. There are four outputs from this work:
- an agreed Requirements Specification
- a Design Specification
- “Wireframes” and prototyped main screens
- a fixed price quotation for the software development.
At this stage, you can decide to proceed with Blueberry for the software development or obtain competitive quotes/tenders. In the latter case, the work done in the Requirements and Design phase is not wasted as this enables other companies to provide a quote. Of course, we hope you will choose Blueberry!
3. Software Development
Once we have agreed contracts, development can begin and we will appoint a Project Manager, Assistant Project Manager and programming team for your project. A project plan and milestones will be agreed.
We believe strongly in involving the customer throughout the project to ensure the system delivered at the end of the project is not only perfectly specified, but also highly maintainable, with robust functionality. For web-based systems we maintain a test version online, which is updated every few days with the latest functionality. This enables you to have full visibility of progress and, as the work matures, to begin testing and provide feedback to us. This ensures that any deviations from plan or requirement are identified and corrected at the earliest opportunity.
4. Software Acceptance Testing
At the end of the development stage, we deliver a system which is “functionally complete” – i.e. we have no significant code left to write to complete functionality. Testing is done continually, right throughout the programming stage, as described above, but extensive testing of the system begins at this point to see how well it executes its functions under workload.
5. System Accepted
Testing is complete, and the system is ready to “go live”. A three month warranty begins within which any teething problems are fixed completely free of charge and according to our support SLA.
6. System Installation and Configuration
At this stage we install the system in the workplace where it will be used or set up the cloud‐ hosted environment if it is a web deployment, with a domain name and SSL certificate for encrypted security of data.
7. Support and Maintenance
We offer an optional application support contract with an SLA‐based help desk, so that any problems you encounter during operational use can be diagnosed and resolved quickly. We can also provide maintenance of a web server (backups, anti‐virus, security and operating system updates) or even an all‐in‐one “Gold” package of hosting, server maintenance and application support.
*Agile software development
Agile development is based on short development cycles which provide regular opportunities to assess direction throughout the development lifecycle. Agile development works iteratively, where software is developed at the same time as gathering requirements, and is more suited to a fast‐moving environment where business realities change during the development process.
**Waterfall software development
The Waterfall methodology is often used for large scale projects with a clear picture of the final outcome. It is highly structured and promotes meticulous upfront planning and documentation. It is a linear or sequential approach to software design and development, were each stage is completed before the next stage can begin.