Requirements gathering process
Meeting with key stakeholders, your in-house IT staff, and anyone else in the decision chain to identify the real problems we’re solving, and formulate our approach.
The importance of user stories
A user story is a short, simple description of a feature, told from the perspective of the user who desires new functionality, and we use these to direct our development. User stories are managed within the product backlog which is regularly reviewed, refined, and prioritised.
“The way we produce software not only meets project requirements and user needs, but also mitigates risk, is efficient, and always inline with best practices.”
Working within iterative ‘sprints’ of typically two weeks, our engineers deliver working software at the end of each iteration. Regular sprint planning sessions ensure clear goals, with the highest priority items taken from the product backlog and broken down into tasks to create a ‘sprint backlog’. Finally collaborative sprint reviews verify that new deliverables meet user needs, and establish the priorities for upcoming sprints.
Code quality and best practice
Software at Omni Digital is written to be maintainable, extendable, and reliable. This is achieved by ensuring high-quality code at every step of the process. We follow software development best practice and industry standard conventions, and use automated code formatting to make sure our code is easy to read and understand. We also ensure that we don’t reinvent the wheel, and instead use tested, established third party libraries where appropriate.
Before anything is deployed to staging or production it is submitted for an internal peer review (PR). This ensures that at least one other member of the engineering team checks through the code, logic, and quality, then approves it to be merged with the master code base.
We aim for every line of code to be comprehensively unit tested by evaluating the success of code completion in the various scenarios that it can encounter. Unit testing gives the engineering team confidence that the software they produce works as expected.
Once work has passed individual review and peer review, either a project manager or another member of the team carries out a quality assurance test. This involves carrying out the core user stories and testing the functionality from an end-user’s point of view.
We implement server-level monitoring and error reporting software to ensure we pick up and pinpoint any issues. The tools we use for this include Travis CI, Sentry, and Uptime Robot.
Infrastructure and system reliability
It’s critical that system reliability is well considered from a server level. You will have dedicated staff members ensuring your system is up, fast, robust, and secure.