How we help you with DevOps
The key to an effective DevOps process is that the developers are focussed on the ongoing running of an application.
We plan for the live running of our applications from the very earliest inception stages of development and automate as much of the testing and deployment as possible.
We can build scalable and stable applications for you using techniques like Continuous Integration and Continuous Deployment (CI/CD), requirements agreed as human-readable automated acceptance tests and unit testing.
Our DevOps Methodologies
Unit Testing – applying quality assurance from the first lines of code: Our code is written with a high coverage of testing down to the first time a solution is created to ensure that the code is delivering what is expected of it. This allows a very high degree of confidence that changes made to one area of the application will not cause a bug further down the line, as we are testing that previously working code continues to work as expected. We make use of frameworks such as NUnit, Microsoft Unit Test Framework, NFluent, Specflow, Jasmine and Karma, among others to provide testing at each layer of the application.
Automated Acceptance Tests – creating human readable UI tests: Unit tests increase the likelihood that the code will do what the developer intended but it is critical that the application does what was required in the first place as well! To help this, we write the specifications for our projects as agile user stories, accompanied by gherkin language acceptance tests that are easily understood by all users. These tests are supported with Specflow and Selenium to create a set of coded UI tests that perform the same actions as the user would themselves and confirms that the application works from the front-end as well as from the code itself. This also allows us to know that we have full coverage of the defined requirements before handing over an application for testing.
Continuous Integration and Continuous Deployment – increasing the speed from keyboard to running application: The backing of unit tests and automated acceptance tests mean that we can deploy our applications at the click of a button and reduce the impact of user errors in deployments. Using Azure DevOps to build our code from the first check in, compile it to a deployable format, setting the correct properties for each environment and then deploying that code to the appropriate servers and server-less services in Azure means that we have consistency and speed to our development practices. Automating the running of the different levels of tests mean that we can also be confident that changes made have not broken functionality before it reaches the users for testing.
Why Ballard Chalmers
Heritage:We were established in 2005, though our heritage is much longer. We have over 30 years’ experience of Microsoft consultancy for the enterprise.
Expertise:As software engineers we are technical problem solvers. This is what we do.
Microsoft Gold Partners:Only the top 5% of Microsoft Partners have attained Microsoft competencies and Gold demonstrates best-in-class capability. We have met extensive technology requirements and demonstrated expertise through rigorous exams.
Experience:We have a long track record of delivering successful enterprise systems.
They are always available to have a conversation, and are quick to respond to any questions we have. The openness within the channels is great…
Junior Project Manager, OVO Energy