tailor-made software for
your business

Methodology

Methodology

We use a combination of proven methodologies and industry best practices to ensure the quality of our work - and that's not just paying lip service. Specifically, we use:

Iterative development

We believe the most successful way to build complex systems is incrementally. We work with our customers to identify minimal 'vertical slices' of functionality that are deep (eg. go from front-end to back-end) but not broad (eg. do not have lots of features). We then build and test each slice and, ideally, deploy it into production before returning to identify the next slice.

This results in regular small releases, keeping our customers engaged at all times and ensuring our software progresses in the right direction.

Test-driven development

We believe the best way to maintain high-quality, reliable software is through automated testing. We write extensive automated tests for all our applications, and ensure our code passes all tests before each production release. We even test our tests, using Code Coverage tools.

Defensive programming

We believe the most reliable and resilient systems are ones with multiple layers of safe-guards and redundancy: where we build a barrier, we assume it may one day be broken so we build another barrier behind it. Where we expose a programming interface, we assume it may be misused so we validate its behaviour.

Of course, the trade-off for redundancy is reduced efficiency - but we believe that, whilst faster hardware may be expensive, reliable and secure code is priceless.

Minimal code

We believe the best way to ensure the correctness of a piece of code is to use it in many different scenarios. We believe in aggressive refactoring and follow the principle of Don't Repeat Yourself to minimize the number of lines of code and maximize how often they are used.

We believe quality is something that is very hard to put back in to a product once it is lost, and continually strive to stay on top of complexity as an application evolves.

Open Source

We believe in building standards-compliant software and using as much Open Source as possible. We believe that open software is good software, and that 'many eyeballs' result in fewer bugs.

Whilst we ourselves are a commercial software company, we give back where we can - we serve on Java Expert Groups, contribute to the Java Development Kit and donate to Open Source projects.

Code quality

We regularly review and update our code to comply with the findings of industry journals and articles such as the Open Web Application Security Project's Top Ten and Improving Web Application Security: Threats and Countermeasures, and with the results of running tools such as static analysis checkers.