Our Development Process
At Sphere 10 Software, we employ high-quality software engineering processes to build our products. When it comes to building yours, we build it as if it were our own.
The Engagement Process
When engaging you as a client, we start with an initial meeting to discuss your project and determine the path ahead.
If you decide to take more steps with us we continue our discussions with a series of Requirements Workshops. These workshops involve our engineers who work with you to formally define your product so that it can be built. In these workshops, we begin with a brainstorming session to mind-map the concepts which define your product and establish the boundaries and scope of the solution space that contains your product concept. We then explore the solution space with you to arrive at something “that works”. During these workshops we employ tried and tested techniques to achieve this outcome and we include inputs from experts such as sales and marketing people to validate the ideas. Once we know what you want, we compile it into a document called the Software Requirements Specification (SRS). This document formally defines your product and can be used by software engineers of your choosing to develop your product (we generally offer our services here too). The SRS is the tangible output of these workshops which we deliver to you.
Once you decide you’re ready to start building your product with us, the next step involves one or more Engagement Workshops. In these sessions we focus on the project that builds your product rather than the product itself. Here we focus on defining the deliverables, milestones, budget estimates, payment terms and timelines for the design, development and delivery of your product. The output of this workshop is an engagement plan with an associated contract which can be executed by you when you are ready.
The Engineering Process
Once you are ready to pull the trigger on the project and engage with us, we begin the the Engineering Process. At Sphere 10 Software we employ a Software Development Life Cycle (SDLC) process to design, develop and deliver high-quality systems to clients. The purpose of the SDLC is to produce a high-quality product that meets (and exceeds) your expectations and reaches completion within the agreed time-frames and budget estimates.
What is the SDLC?
The SDLC is a process followed by the project participants design, develop, deploy and maintain software systems for their entire lifetime. The process manages the product from beginning to end. Whilst an SDLC can vary from case to case, they are generally structured as follows.
Phase 1 : Requirements
The requirement phase is the most important and fundamental phase in the SDLC. At Sphere 10, this is phase generally completed as part of the Engagement Process. However additional analysis may be required here such as quality assurance requirements, identifying project risks and commissioning of a feasibility study.
Phase 2: Development
Once the requirements are well-defined, the design and implementation of the product begins. Whilst “design” and “coding” are fundamentally different aspects of development we have found the best results arise when they are initially undertaken simultaneously and then later isolated. The reason is because when one develops new technology one cannot foresee all the technical roadblocks one will encounter. Thus one must begin by “writing code first”.
As a result, at Sphere 10 we typically prototype a minimalist vertical slice of your system first before committing to a final design. In this way, we’re able to explore the solution space for the optimal solution that works best in the platform, language and technology stack it is built in. The purpose here is ensure you receive the optimal solution in the fastest time and the lowest cost.
Once a system design is finalized, the final implementation is performed in a burst manner by multiple developers working in parallel.
Phase 3: Testing & Integration
Once development completes, all the sub-systems are integrated with one another. This phase involves a lot of bug fixing and refactoring so as to get all the moving parts working together correctly. Whilst this phase is still characterized by coding, it is not code for new features but rather code for fixing existing features and code that integrates disparate sub-systems authored by different developers together. The goal is to ensure everything works as expected. This phase completes when a Release Candidate passes QA testing.
Phase 4: Deployment
Once a Release Candidate is determined, it moves towards deployment. In the enterprise context, this phase is generally handled by our IT team and often involves the commissioning of your IT infrastructure including installation/configuration of all the hardware and software and implementation of the CI/CD pipeline. It also involves training workshops for your team and the authoring of User Documentation. In mobile app context, this phase handles the app store publishing in addition to CI/CD.
Phase 5: Maintenance
Once your product and all it’s internal systems are deployed, Sphere 10 will typically hand over the project to your internal team for ongoing operation and maintenance. A hand-over involves the authoring of Administration Documentation which defines all the Standard Operating Procedures (SOPs) for system maintenance. In addition, Sphere 10 can provide you a Service Level Agreement (SLA) to support your team at a 2nd-level support capacity.