Quality and Scalability
Ensuring quality of work is a key part of every successful project and this starts on day one. Making sure we are aligned with our clients needs ensures we are able to plan for the scalability and flexibility of the solution put together.
We always develop with quality and scalability in mind, we will tailor our solutions to the needs of your project. Talk to us to find out how we can work together
Database design is an important part of any plan to scale a project. By being aware of the long term feature roadmap of a solution we can design the database as structured or unstructured and design it in a way in which it can easily grow and adapt to change.
Infrastructure includes the project technology suite. Typically a project will have three controlled environments; dev, staging, live. A project may use a separate server for the database, and another for file storage, this isolates system risk. Other infrastructure tech could include CDNs, caching, load balancers, and server provisioning scripts
CI and Code Deployment
We use continuous integration processes to deploy code updates throughout the life of our projects. Work is actioned first locally, then deployed to staging for testing, and tested and approved features are deployed to the live environment for users to begin using.
The first step of any Quality Assurance (QA) efforts is to capture what a feature is supposed to do. We do this in a user story format with acceptance criteria to provide a clear understanding for all of how the feature will work
Unit tests can be written in unison with writing the code for a new feature. A unit test provides test coverage on each individual element of source code to ensure it is working correctly.
A Functional test will bring together individual unit tests to cover the testing of an entire feature. Functional tests will include feeding in data into a feature then testing the data output. A pass is when we see the results which we expected.
End to end testing will test a group of features to ensure that either part of, or the entire, user journey is successful. This testing is a close simulation to users interacting with the system.
User Acceptance Testing
User acceptance testing involves testing the system with real users to get feedback. This testing tells us if the assumptions we have made in designing the system have been correct or if we need to make improvements to the design.
Error monitoring tracks system errors as well as user errors to help provide visibility to the development team if an error occurs. Error tracking is a must for complex systems but can help with troubleshooting on any sized project.
System speed must be considered as part of any scalability approach. As your system grows it will hold more and more data, and files and increased traffic affect its speed. Optimisations can be made to ensure it remains fast and reliable.
Checkpoints are an important part of every project. We need to constantly make sure that we are delivering value to our clients and users, so we need to make sure we are focusing on features which will deliver this.
Risk is a part of every project. It’s vitally important to capturing learnings and manage risk at both a company level and a project level so that mistakes and risk exposure is not repeated.