Our Development Process
Table of Contents
Respond quickly with confidence
Our software solutions development process focuses on being responsive to the needs of our customers and the Church. We release updates to our production environment every day, allowing us to quickly respond to unforeseen issues and deploy new features as they are completed. Our QA team and development team work side-by-side—QA builds automated tests in tandem with the code written by the developers. All code goes through a series of processes to ensure that it meets our quality standards. This includes peer reviews from other developers, design reviews with the User Experience team, passing unit tests and validation builds, passing automated and manual tests, and passing integration tests with the rest of the system. If this sounds like a lot of checks, it is! However, these checks are automated and embedded in our process so that we can deploy new features quickly and with confidence.
Define and prioritize
Our product team begins each feature set by collaborating upfront before the development team starts building. This process focuses on understanding the customer’s specific needs and ensures the team is incorporating the appropriate requirements for a robust feature set that solves the customer’s needs. We prioritize those features by using the MoSCoW method (Must have, Should have, Could have, Won’t have), and developing prototypes around those features to get early feedback from potential users before any code is written. From there, features sets are broken down into their individuals features and assigned to the development team to be implemented.
Build and release
We have multiple software development teams that work closely with each other. Each team has their own prioritized backlog and they work from the top of that list. They plan the new feature as a team, working with the Product Owner, the User Experience team, and the content writer. After planning, the developers start implementing the feature, the QA team starts building automated tests, and the content writer starts writing the knowledge base articles.
Once the feature is ready, the team reviews it with the Product Owner and User Experience team to ensure the feature matches the desired outcome. After the feature has been approved, it is pushed into the master code branch to be deployed in the next daily release. Feature sets are controlled by feature flags so we can coordinate the release of the entire feature set. This allows us time to create appropriate in-app guides and announcements and ensure that our staff is trained and ready to support customers using the new features.
Our software solutions are built using modern technology. Learn about Our Tech Stack.
An Agile mindset is one of the keys to developing good software. Learn about Our Agile Core Values.