We are experts in developing solutions that can provide valuable insights into your business, improve processes and support people and innovation.
Our technical development skills are complemented by our expertise in strategic operational management and our experience in advanced modelling techniques and computational algorithms. By working closely together as a team, this blend of skills allows us to develop bespoke solutions without ever losing sight of the operational gains and improvements that are the point of the project.
We work closely with you through the development process, continually reassessing progress and requirements to ensure they remain aligned with your objectives.
Based on our experience of developing successful solutions jointly with our clients, we have refined our own development process (ProAgileTM)to make the most of the flexibility of agile development while ensuring appropriate controls are in place to deliver the highest levels of quality.
Methodology & techniques
We have refined our agile development methodology to incorporate rigorous, time-efficient testing throughout the development process and to ensure that on completion, you hold all the necessary skills to make the most of the solution.
User-centric application design
We use a user-centric design approach to developing applications. This includes creating personas and user journeys to give us a deep understanding of user goals and how what is necessary for the user to achieve them.
Our agile development process (ProAgileTM) is highly collaborative. By working closely with you we ensure that we effectively transfer knowledge on how the system is built, it's on-going maintenance and enhancement. This transfer of knowledge is a key part of realising the benefits offered by the solution.
Development is split into two-week segments called 'sprints'. At the end of each sprint we hold a show-and-tell session with key stakeholders to review how the solution is taking shape and to incorporate requirements that may not have been envisaged during the planning phases. Feedback from this session is then incorporated into the planning sessions for future sprints where necessary.
An important part of our methodology is the use of behaviour-driven development (BDD) techniques. This approach puts testing at the heart of the development process. As part of BDD the functional requirements are documented within a set of scenarios (acceptance tests) covering all aspects of user interaction and integration of third party data and technology. Each scenario details the criteria for a successful test.
The scenarios are transformed by the development team into automated unit tests. The development necessary to satisfy each unit test is then carried out until all tests return a successful result. This method ensures that all the functionality delivered by the solution is covered by an automated test suite.
The scenarios and unit tests then form part of the documentation for the solution with the scenarios describing the solution from a user's requirements perspective and the test suite describing the solution from a technical perspective.
We believe that the development and support of high-quality software, that meets business requirements and user expectations, can only be achieved through a skilled and motivated team that builds and retains knowledge of the client, the business, the industry, the solution and each other. How we structure our teams is therefore a key element of ProAgileTM.
To make the most of our wide range of technical skill sets each team (we call them pods) has all the skills to support the complete software development lifecycle through design, development, test and deployment. This ensures the pod stays aligned with your goals throughout the project, and that they develop a thorough understanding of the context and organisation in which the solution will be used.
Pods call on our wealth of in-house experience in business analysis, user-experience and user-interface design, creative and architecture as required. The pod's project manager is the single point of responsibility and accountability to a client throughout, and pods provide support beyond initial delivery, so knowledge is not lost.
We use a range of technologies to develop our bespoke solutions, all of them chosen for their reliability and scalability.
Microsoft .Net Framework
Now in its 4th generation, .Net is a framework that runs primarily on Microsoft Windows. It includes a large library of out-of-the-box components for a wide range of application types including internet-based applications with ASP.NET. The power of its core libraries mean developers can rapidly build large-scale complex solutions.
ASP.NET MVC (Model-View-Controller) is a free, lightweight framework for the rapid, agile development and thorough testing of complex online websites and applications.
SQL Server 2008
Microsoft SQL Server is a database platform for large-scale data warehousing, online transaction processing (OLTP) and e-commerce applications. It t is also a business intelligence platform for data integration, analysis and reporting solutions.
Object-Relational Mappers (ORM)
We also use open source object-relational mappers(ORM) for the .NET framework. These allow us to map object-oriented domain models to traditional relational database and save on development time.
Windows Communication Foundation
Windows Communication Foundationis a part of the .NET Framework that provides a unified programming model for rapidly building service-oriented applications that communicate across the web and the enterprise.
SQL Server Reporting Services (SSRS)
SSRS is Microsoft's business reporting software. It provides a server-based platform that makes it easy to deliver and present information both online and in print.
SharePoint Server 2010
SharePoint is a flexible platform for web-based applications, built on the .NET framework with excellent support for other web technologies. More about our development of customised SharePoint solutions.