How does the process of app development start?
We get started by working together with you to understand your requirements, we can do this either remotely or in person.
It's completely normal for clients to start this process:
- with just an idea
- with detailed designs and technical specifications
- anywhere in between the above
- an existing app that needs updating
If the details still need to be worked out, then creating a detailed specification will form the first stage of the process. If user interface (UI) and/or user experience (UX) design input is needed in order to produce a quality application and you don't have those skills in house, we work with some great designers who can create best in class UI & UX designs for your app. The output of this first stage will be a detailed specification and initial design, along with recommendations about the appropriate technologies to use for your app, of course if you already have that we can get straight on to the next stage. You're under no obligation to continue after this stage, if you want to take these to a different development partner or set up an internal team, that's fine, we can even help you recruit and train your own team.
How does app development proceed once there is a detailed specification and initial design?
Depending on the complexity of your app, and how likely your requirements are to change there are different ways we can proceed.
- The simplest and potentially cheapest way to proceed is to start with a fixed price and fixed scope to build a minimum viable product, or if your app is larger and more complex then start with a fixed price and fixed scope to build a working prototype. For clients that require an update to an existing app codebase, this would instead be a fixed price and fixed scope for the updated release. This works well when requirements are certain enough that the scope can remain fixed until the point of completion of your minimum viable product or prototype. If requirements do change under this approach, the changes can be accommodated, but if the changes are significant this won't be as efficient as taking the agile iterative approach below.
- When more flexibility is required, an agile iterative approach works best. Here we would draw up a list of tasks involved in delivering your completed app, then select with you those tasks where there is least risk of the task being impacted by changes or the tasks that deliver immediate value to you (perhaps in the form of a demo or early preview release). With this approach, developers normally work in 'sprints'. This is a widely used term in agile software development meaning a period of time in which incremental development work takes place. A set of tasks are agreed at the start of the 'sprint' to be delivered for a fixed cost in a fixed time frame, usually between two weeks and a month. At the end of each 'sprint', new tasks are agreed for the next 'sprint'. The advantage of this agile approach is that tasks that have not yet been selected for a 'sprint' can be freely changed in scope and design without impacting development.
How are mobile apps tested for quality assurance?
Quality assurance testing happens throughout the development process, both through the development of automated tests for the user interface and underlying functionality alongside the application code, and through manual testing of the app on physical devices. Prior to a full app release it is usual to set aside some time for quality assurance testing and resolution of issues, this will involve:
- End to end testing, carried out by developers or technically skilled quality assurance professionals, verifies all functionality including that not immediately visible to the user, is all working as it should from a technical perspective.
- User acceptance testing, carried out by the client and/or user experience (UX) designer, to verify that the app meets expectations from a user perspective.
- Security testing, carried out by developers, technically skilled quality assurance professionals, and/or where appropriate by security specialists (for instance if the app directly needs to handle sensitive data). This goes from ensuring the app conforms to best practises for security to manually probing for vulnerabilities.
- Device testing, it is important the app is tested on a wide range of devices covering all supported manufacturers, screen resolutions and operating system versions, to ensure no users are left with an inferior experience.
Are you able to help with the process of releasing the app to the Apple Store and/or Google Play?
We can handle the release through the Apple and Google stores for you, or guide your staff through the process. In the case of enterprise apps that are not released to the general public, we can guide you through the process of distributing this to your staff.
Who owns the source code to the app once it has been developed?
You own the source code to the development work you've paid for and this will be delivered along with the app builds at the end each sprint or fixed price project. Where we re-use any code that already belongs to us, the development contract will include the full rights for you to use this forever, for this app and any other app you wish to include it in. As you own the code, it's not a problem if you decide to work with a different development partner or set up an internal team in the future. If you choose to continue with us, we will of course be there to support you for future updates when you need us.
How does development of mobile app updates proceed after the app is released?
Sometimes it's already clear what's required for the next version before the app is even released, equally it may be the case that some time is needed after the release to prove the business case for the app or for user feedback. In the latter case it is best to either pause development until more is known, or if there are tasks that will not be impacted by the missing information, proceed with an agile approach. The process of developing an app update is really a smaller scale version of the process explained above, with documenting of requirements, design, followed by development either on a fixed scope or agile basis, quality assurance and release.