Our software development process brings together a mix of best practice approaches that, in our experience, enables mid-sized projects to be produced to a very high level of quality whilst minimising end-to-end cost.
When you come to us with a creative idea, or set of requirements, for a custom cloud software, mobile app or website product our first priority is to listen closely, ask questions and draw out a clear understanding of your vision. From there we can often offer some high-level feedback and, in some cases, ballpark ideas around budget.
Except where people have already done significant work around developing and documenting their ideas, typically the next step is to work with you in an interactive way, often via one or more workshops followed by our desk time, to develop your concept further, document key requirements and produce key wireframes. Our standard concept development package is $1,500 + GST, though for large software needs, or where your ideas are at a very early stage, we may request a larger budget. Out of this phase we usually also have enough information to provide you with a proposal for the following stages, including suggested budgets for them.
This stage is not always required, however often putting an early cut of a product in front of users for feedback and observation of how they interact with it, prior to investing in building the real thing, provides invaluable insights and saves more in the long run than what it costs to do.
As an experienced software development agency we’ve learned the value of thorough scoping. This phase enables us to further clarify requirements, design the solution and identify any risks or R&D requirements that need up-front investigation before launching into the build. At the end of prototyping and technical scoping phases we have enough information to ensure an efficient build process whilst still allowing sufficient space for fine-tuning details based on feedback during development.
Whilst we definitely see value in thoroughly exploring requirements, getting rounds of feedback on prototypes and understanding technical needs up-front, we do still run a development process that provides many points of client and user feedback along the way.
Agile development gives you a chance to review and test the software at different points in the journey, fine-tuning the features as you and your users experience the product you’re getting built. This is best practice for any software development agency as it helps ensure that products built are a close fit to the real needs of the people who will be using them.
In some circumstances we may also suggest an agile billing model where the variability lies in the number of lower priority features delivered rather than in the budget.
Although a certain degree of testing occurs throughout development there are various layers to testing completed mobile apps and web applications. For our largest software development projects we recommend the extra spend of building in an automated test framework. This becomes especially valuable after release of the initial product as it allows for speedy regression testing as new features are added; in other words it protects against new changes breaking other areas of functionality without anyone being aware of it.
For some of our simpler projects the additional spend may not be desirable, especially in the quest to achieve MVP (Minimum Viable Product), in which case we at least like to define a testing checklist that can be run through by users performing UAT (User Acceptance Testing). UAT is the final form of testing after our team has completed their testing processes; it is where representative client users review the release to ensure that they believe everything works as intended.
For web applications this refers to the process of releasing software to it’s live server environment, including testing that it still works as it did in the development environment. For large ongoing projects we recommend creating automated deployment pipelines that, combined with automated regression testing, allow for a CI/CD (Continuous Integration and Continuous Delivery) approach to applying further patches (fixes) and new features.
For Mobile Apps the process is often different because the final builds need to be submitted through app stores for each of the major platforms; this can have many complexities and delays of it’s own due to their time to review and also the myriad of Apple and Google’s ever changing policies.
At Applicable we recognise that custom software development does not end on release and that a key part of the value we provide is being both proactive around solution management and highly responsive to support needs as they arise.