Software Development

Sometimes you need software written to your specifications, perhaps after some professional advice, because you would like advanced functionality on your existing web site or simply because you know there is no existing solution that meets your unique business needs.

We can work with you to develop a bespoke software solutions, from small scripts or utilities to large multi-user integrated systems used across multiple platforms.

Java source code

Requirements Specification

You understand your business and know what you want your software to do. However, it's important that we know too.

We would work with in conjunction with you and all relevant stakeholders to help produce a formal high level requirements specification. This attempts to specify in detail what the software is to do but may be subject to controlled change as the development process is on-going.

Design Stage

Once we have the initial requirements, we will produce a high level system design specification.

This outlines all the components of the system and how they will interact, from programming languages to use, application frameworks, software components, database technologies, servers, system architecture and all external dependencies.

Once this is in place then the actual coding can begin!


Implementation

Implementation is the stage of a software development that normally takes the most time.

We develop software using agile software development methodologies. We break the implementation into many small stages (known as iterations). During these iterations we work on writing tests & code for specific areas of functionality which are then incorporated into the main product. We normally develop software using a Continuous Delivery methodology unless this is unsuitable for project.

By incorporating automatic unit & integration testing, this helps keep our code quality high and helps ensure that the number of software bugs is kept as low as possible.

Continual Engagement

You will be involved in the implementation on a continual basis. This may be to help answer small queries that arise during development or provide direction when we need more information.

You will be kept informed of how development is progressing and have access to the latest builds on a test environment, normally on a weekly or fortnightly basis unless otherwise agreed. This allows you to check that the software developed so far is meeting your expectations.

This allows us to catch any issues that creep in from inaccurate requirements or unconsidered scenarios as early as possible, minimising the risk of time delays and cost overruns.


UAT Testing

Once the software is near completion it is time for the formal User Acceptance Testing (UAT) and Beta testing.

This stage is important as it allows you to verify that the software actually does what you expect (meets the requirements). The Beta testing also gives you a chance to try the software in a more "production-like" environment in case there are any unexpected issues.

Delivery

When the software is finished, we will supply all the agreed deliverables, from software binaries, scripts, installation packages to user manuals and other reference materials.

Of course, software rarely stands still and we can ensure that an appropriate update mechanism is put in place. This means any new versions of the software due to any bugs or change requests can be distributed as quickly and easily as possible.


Cloud Hosting

Cloud hosting is an ideal solution for many small businesses who have limited IT infrastructure or resources. It is also suitable for larger companies who wish to avoid placing any additional burden on a busy IT department.

We can provide all hosting required for your software solution. Let us worry about infrastructure, security updates, backups etc and you about using the software from anywhere you like.

On Premises Hosting

Sometimes an on-premises hosted software solution is a better fit for your needs, be it for regulatory compliance, integration with existing systems or for any other reason.

We can provide a virtual appliance image designed to allow you complete control and host the solution within your existing IT infrastructure.


Training

It makes little sense to implement a new software solution if your staff don't know how to use it!

We can create & provide training materials on your new software solution to help ensure that your staff get maximum use out of your new system.

You may already have a Training department who we would be delighted to work with. Of course, we can also provide training sessions directly to your staff if this is required.

Support

We can provide all the relevant technical support for your new software solution.

Often larger organisations already have an existing IT helpdesk to receive all first line support calls. We are experienced in acting in a second/third line technical support capacity, liaising with your IT helpdesk and jointly agreeing protocols & processes to ensure that the support process is as smooth as possible for your users and all SLA's are achieved..

For smaller organisations we can take all initial support contacts directly from your users and help them resolve whatever issues they are experiencing.