Our approach to projects ensures that, whether a corporate giant or a nimble startup, we always have the needs of our clients at the forefront of our decision making.
We understand that organisations need to make informed decisions, and that is especially important with external suppliers. Our agile process manages risk, delivers benefit sooner and enables our clients to change priority when needed.
We'll begin by having an initial meeting, where we discuss what you're trying to achieve, why you want to achieve it and, maybe, your vision for the solution.
At this point, we'll probe in to some of those details and begin to understand how we can help you.
We will continue those discussions as necessary to ensure we understand enough in order to put forward a proposal.
Once we are confident that we are the right fit for your project, we will send over a formal proposal outlining what we understand, a plan for completing the project alongside estimated fees and timescales.
Planning is an on-going process during a project. As we collectively uncover more information and iteratively develop features we will adjust the plan to suit.
We start with a high level understanding of the problem, identify features and then prioritise those features based on risk, cost and benefit analysis. We then iteratively refine the detail and deliver those features, responding to changes as they occur.
Prototyping can mean different things: for us it's about understanding whether our proposed solutions are the right ones, and minimising the cost to find that out.
For most of our work we build "paper prototypes" or mockups that allow you to visualise the end result sooner. If necessary, We will build "throw away" prototype systems if you need to test a hypothesis with end users without developing the full solution. In some circumstances, the technological solution is not guaranteed to work: in that instance, we build "proof of concept" systems to illustrate feasibility.
During development of the software, we follow our own agile process, based on iteratively completely small features of work, taking them from inception through to release.
Generally, our development is done at our offices and the developers arrange meetings, either in person or online, as and when necessary to progress the work.
It's very important during development that we give you visibility of progress, allowing you to identify misunderstood requirements as soon as possible.
Quality Assurance is an on-going process in our projects and is a responsibility that we share with our clients.
As developers, we test our own code as we go, using black box testing and automated testing. We have coding guidelines and patterns that everyone adheres to and we have a principal engineer review software prior to release.
From a customer perspective, we provide preview environments so that they can see the software as it is being developed and provide feedback early. We then use a formal user acceptance testing phase in which they can assure the quality of a release after the code has been approved. Finally, we provide a regression testing environment and a standard process for managing releases.
Our hope is that our software is intuitive enough that training on how to use the software is minimal.
Our preference, though, is to take the "train the trainer" approach whereby our clients identify "champions" of the software. We train thoses champions and then they will then go on to provide training to others as required.
Levels of support vary from project to project; simple ones may just require a warranty agreement whereas larger solutions may require ongoing technical support and maintenance packages.
We provide an online helpdesk where necessary as well as emergency support channels to support any business continuity requirements that you may have.
Anyone can make software. The best engineers create great software by first understanding exactly what it needs to do and then building it in a maintainable manner.
Agility in software development is based on the understanding that the priorities and requirements of a organisation change, often quite rapidly, and that software development should respond to those changes and, indeed, affect the changing priorities as well.
We predominantly use Microsoft technology for building our solutions. However, we also make use of other technology providers where it makes sense and look to use Open Source software where that provides a market leading option.
Information Security is the practice of mitigating (and preferably eliminating) the possibility of unauthorised access to data. It goes alongside, and sometimes conflicts with, data protection which is the use of personal information and the privacy requirements thereof.