What Does the Custom Software Build Process Entail?
You’ve found your perfect development partner, and you’re ready to dive headlong into the custom software build. But what should you expect from this process?
Like buying an engagement ring or signing off on a mortgage, it’s relatively likely that this is the first time you’ve had to deal in this area. A custom software build for your business isn’t an everyday occurrence; it’s understandable then that you may feel a bit of apprehension when it comes time to act.A good custom software partner will allay any angst and unease, and will map out the build process clearly and concisely. There are two main approaches used for custom software development; waterfall and agile. Many forward thinking custom software providers are bringing the best of both worlds to software development with an “Agifall” process.
The Waterfall Method
For businesses with a clearly defined goal for their solution and a firm timeframe and budget within which to work, the waterfall method provides the most effective and clear-cut solution.
The waterfall methodology is as follows:
The business creates a clearly defined set of requirements for the solution.
A design team turns these requirements into a functional design, represented in planning documents.
The completed design is reviewed and signed off by your business.
The development team uses the planning documents to advise on timeframe and cost, which your business will once again be asked to approve.
The approved design is then sent to programmers who write the code.
A quality assurance team will test the code to ensure that it meets with your requirements.
If the quality assurance team is satisfied, a beta release is usually offered to your business in order for you to trial the system prior to it being deployed.
When the beta release is approved, the program is released into production.
The waterfall method offers businesses clarity. You have the benefit of a set budget and a firm timeframe, and the process comes with inherent predictability, allowing you to plan for and around each step. But that rigidity is somewhat of a double-edged sword; this process makes it hard to adapt your software if market or business conditions were to change midway through. Indeed, you may not realize you’ve gone down the wrong path until the beta testing phase shows that you have. There can also be an often long wait between the development of a business’s requirements and the testing of the final product, which can be stressful for stakeholders who are inevitably looking for the end product now.
The Agile Method
The agile method is a strategy, born out of the desire of businesses to be more involved in the development process, and have more ability to adapt software to changing circumstances.
The agile methodology is as follows:
Rather than bringing a clearly-defined set of requirements to the table, the agile method begins with the business saying “I’ve got these starting inputs, and I want to get this result as an output”.
Using the starting inputs and desired outputs, a set of features is developed by the custom software provider that will represent the high-level scope of the software.
These features are grouped into a series of iterations, which are then developed in order of priority.
Each of these iterations ends with a usable product which is given to the business for testing. Users are asked to give feedback, which informs and guides the next iteration of the feature.
This process is continued until the business is happy which every feature of the solution.
The agile method offers businesses something tangible very early in the process, and allows you to adapt the solution to changing circumstances. Required changes are quickly identified and acted upon, resulting in an end product that will always be fit for purpose. This flexibility does come at a cost, however. Traditional budgets and timeframes are difficult to set with the agile method, as there’s no real way to plan any further than one iteration ahead. This budgetary and time frame uncertainty can help in pressuring you to identify which features are ‘needs’ and which are ‘wants’ though. With Agile, you can set a budget, but it may not ultimately include all of the features on your priority list, since you may have adjusted the scope of other items throughout the development process.
The Agifall Method
The result of trying to get the best of both worlds is called AgiFall. It consists of a much looser form of Waterfall methodology with Agile principles applied. It makes everything a little bit faster, a little bit less costly, and most importantly helps to improve the quality of the final product.
The project begins with a discovery process in which all the key stakeholders meet to gather the high level requirements for the project. From there a document is created that focuses on the vision and scope. It consists of enough design work to allow for a high level estimation of effort during this phase. This helps customers set an overall target budget against which the desired features and functions of the software can be prioritized.Another key step prior to kick off is the prioritization of the features and time estimates into a high level plan for the overall project. Features are grouped into Iterations so that an overall project schedule can be developed to execute the project within the desired timeframe and budget.Once the Iterations begin, progress is tracked and adjustments to the plan are made based on the actual development, learnings, and interactions of the project team. These iterations are repeated until all items are completed, the project reaches the budgetary limit, or the final time for delivery has been reached.The result of this combined method is that the timeline speeds up considerably and errors are detected sooner and sent back for correction. Dealing with small errors as soon as they arise saves time and cost versus a major refactoring at the end of a project.It also needs to be said that once the initial development process has been completed, that’s not the end of your relationship with your custom software partner. You’ll then enter the maintenance phase, where fixes and improvements to the solution will continue into the future.
Custom Software or Off The Shelf?
You’ve identified an area of your business that has room for improvement, whether that be in the form of an opportunity to streamline your operations, or the chance to capitalize on a new revenue stream. In order to create this improvement you’ll need a capable piece of business software.In this ebook, you’ll learn what to consider when building custom software vs. buying off the shelf.
If you are ready to discuss your specific challenges or what CSG can offer, you can contact us to learn more about how to start implementing your solution.