Software Design

We can provide you with guidance and advice at every stage of your project from requirements analysis and specification writing to extensibility, security and stability. We can analyse the current performance and capabilities of your software projects and offer clear road-maps for the improvement in the form of;

Software requirements

We can undertake informal and formal software requirements gathering which is a process that aims to generate a Functional Specification. This specification states what functions the software is expected to perform in order to meet the business goals. A Functional Specification is usually required in order to quote on a project, especially if the project is expected to have a large scale deployment or affects core business operations.

We can assist you with the writing of a Technical Specification which goes into detail of how the software will be built. It details the user interface, the entities within the system and how they interact with each other. The database design is usually created at this stage and the degree of confidence of project duration and costs is refined.

Software architecture designs

We can provide you with documentation for your upcoming or existing system in the form of informal (for presentation) and formal (for specification) architectural designs. We use the industry-standard UML (Unified Modelling Language) to model systems (unless they’re Health projects when we will typically use HL7, a modelling language for the healthcare industry).

Performance reports

We can run performance tests on your existing systems and analyse bottlenecks and areas of poor performance and provide suggestions on remedial work to improve performance.

Disaster recovery strategies

We can advise on best practice for disaster recovery, backup, (and backup restoration testing) and business continuity in the event of a disaster or service outage. We can advise on the most appropriate hosting solutions for your data and services, including geo-replication in order to improve reliability for mission-critical systems.

Test analysis

We can advise you on implementing and improving your existing automated unit tests, capacity testing and planning and manual quality assurance test processes.

Documentation

We can write and produce documentation from user guides and manuals through to functional and technical documentation for your existing or new systems.

Best Practices

We spend half a day every week on Continual Professional Development (CPD); writing new code, trying new things, trying new languages and honing our skills. We aspire to be the best developers that we can be.

Vendor certified

Vendor certifications are useful – we have them – but far more useful is strong industry experience, gained from working with multiple teams on several projects over many years.

The future

We are constantly looking for new technologies; 3D Printing, The Internet of Things, Electronics Prototyping, Smart Devices. We can then offer the benefit of these technologies to our customers to improve their businesses.