We insist on delivering software of the highest quality, that is beautifully crafted, thoroughly tested and been through a rigorous set of quality gates before being delivered to our customers. We believe this is the only way to develop software and to ensure successful outcomes for our customers.
The primary ‘gate’ we use to ensure the quality of our software, is through the level of testing we put that software through. We encourage our consultants to practice test-driven development but believe that how they code is a personal preference, so forcing them to write software in a particular way is not useful; we do mandate that every line of code written should be covered by an automated unit or integration test and that the build should fail if this metric isn’t met - our general mantra is that if a line of code warrants being written then it must be tested*. This may seem obvious, but it is rare that other companies commit to this level of testing and as a result can and will, release untested code that is often the source of errors.
We increasingly use Mutation testing across our projects to ensure the quality of our tests in complex areas of code - it is not practical to run mutation tests across an entire codebase - as well as performance tests and a mixture of end-to-end and contract tests, depending on the architecture of the system being developed.
Whilst testing is the most important quality gate, there are others that the code we develop must routinely pass through before being released to our customers. We have automated checks for common coding errors and security holes and also check all third-party libraries for any known security vulnerabilities. We ensure all of the code we produce adheres to a standard set of style rules which helps increase maintainability and is particularly important if customers will ultimately become responsible for supporting and/or maintaining the codebase in the future. All of these quality gates are built into the continuous integration pipelines that build the software we develop, this ensures that only versions of code that have passed all of the quality gates, are eligible for release.
Creating releases and deploying new versions of applications is often prone to error, so we use our DevOps experience to go one step further than continuous integration and implement continuous delivery pipelines, automating the process of creating releases of an application. Where practical, and on a project by project basis, we will automate the deployment of new releases, and when deploying to the cloud we can automate the provisioning of cloud infrastructure.
If you want high quality bespoke software, then get in touch.
* In reality, this isn’t always practical so we do allow exceptions on a carefully managed, case by case basis.
We run our bespoke development projects using agile methodologies. We strongly believe Agile development helps to ensure that development teams complete projects on time and within budget. It also helps to improve communication between the development team and the customer. Additionally, Agile development methodologies can help reduce the risks associated with complex projects and result in lower costs when requirements undoubtably change.
The open source projects we have released are centred around logging and auditing and we integrate these libraries into all of the back-end services we develop, as experience tells us that good logging and auditing is imperative to making applications supportable. We also ensure that these projects go through many of the quality gates our commercial code goes through, so provide a great opportunity to check the claims we make about how we ensure the quality of the software we produce.
We are software consultants with many years experience in the IT industry, designing, building and successfully delivering bespoke software solutions. We are passionate about technology, code and delivering high quality software to meet our customer's needs.
Book a meeting now, to find out more about us and for us to find out a little about you.
Book Now