Outsourcing app development: Working effectively
Part 3 of 3: From the kickoff briefing to figuring out where everyone is going to work, communication is key to successful app development.
In this series of posts about outsourcing the development of your app I’ve looked at how you determine whether outsourcing is right for your company and, when you know it is, how you should go about selecting your agency.
In this final post, I’m going to look at some of the best practices for getting your project underway and then managing it to a successful conclusion.
How you prepare for and start your project can have a significant impact on its success. Doing this well is about making sure you have or develop the right skills and approaches in your organization, sharing vision and process upfront, and thinking about physical space. In some cases, you might be working with multiple agencies, so I will mention some of the things you need to consider there too.
Upskill your organization
It might be nice to think that engaging an agency to develop your app means you can simply sit back and wait for the finished product to be delivered, but this is rarely the case — assuming you want a quality app delivered on time. At the very least, you’ll need to test and accept the finished product and therefore need resources who can perform acceptance testing. But it’s advisable to be involved in all aspects of the project, from user interface design through to marketing, and support of the released app. This helps ensure the app meets your business needs.
You will, therefore, need to determine what skills your organization has to meet your project requirements and obligations, and put together a plan to close any gaps. To do this, ask the agency about:
- The tasks they expect you to complete for the project.
- The skills they believe you need in order to complete the assigned tasks.
- Any training they might offer or would recommend for the roles you’ll need to perform.
Then, to assess the competencies within your organization, ask yourself:
- Is your marketing department familiar with Google’s comprehensive guides regarding the publication and promotion of applications and store listing experiments?
- Do you have the design and copywriting skills to create a great feature graphic, screenshots of our app, and a compelling description for the Play store listing?
Not all project members will have benefitted from the exchange of information that took place during the selection process. By briefing the entire team — both your staff and staff from the agency — at the start of the project, you can share the vision for the app and project. Ensure you include key stakeholders. Cover the background and business goals for the app and the planned development process. This will help reduce the risk of divergence later in the project, by giving everyone a better insight into the design decisions and business direction of the project.
Many agencies conduct this type of briefing as a standard kick-off practice, check whether your agency does.
When preparing for a kick-off briefing be prepared to:
- Always be clear and open with the agency. The more you share and work with them as a partner, the better the outcome.
- Communicate the strategic intention of the application: how it fits into the wider business context.
- Share details of your success measures; for example, user ratings, downloads, and others.
- Provide any specification you have developed, even if they are only at a high level.
- Exchange information on company history and culture.
- Define how you would hope to work together, the processes you would like to follow.
- Explain your expectation for the timing of key deliverables and milestones.
Find a good home
Throughout the project, precise and open communications will ensure the exchange of information and decision making needed to create a great app. Your agency may be well versed in communicating among people or groups based in different locations, however, your team may not be so familiar with this style of working.
As the ability to communicate face to face will be beneficial, consider carefully how your team and that of the agency will interact. It may be worth bringing everyone into one space. If that’s not possible, look for spaces where the teams can come together when needed.
It’s worth checking to find out if your agency’s project team will have a dedicated project space and whether they can accommodate your project team too. Conversely, if you find space on your premises remember to check that the agency is happy for their team to work there.
While looking for the right space for the project team, ask yourself:
- Is it easy and convenient to travel between our premises and that of the agency?
- Can I provide or obtain a space to bring our project team together?
- Do I have access to meeting spaces? Will I be able to guarantee their availability?
- Have I allowed for the time of relocating my project team or that of the agency?
Working with multiple agencies
You may choose to work with multiple agencies. For example, you might ask a new agency to build your app, while an existing agency handles the backend systems to support your app. It’s also not uncommon to use a separate agency to write test scripts, review the code, or perform testing. When you take this approach, find out if any of the agencies have worked together before or commonly use other agencies to perform specific project tasks.
To make a multi-agency project work well it’s important to be very clear on the respective roles and interfaces among the agencies. This will help to create honest and open communications between the agencies and make it more likely that everyone aligns around a common understanding that will benefit the quality of your app. But don’t expect this just to happen; be prepared to monitor and manage how communications take place, to ensure they foster a culture of trust rather than competing for business at the edges and falling into a pattern of mutual blame.
As you prepare to work with multiple agencies, ask yourself:
- Am I prepared to undertake the additional management needed to ensure the agencies work well together?
- Is communication between the agencies good?
- Are there any signs that an agency is maneuvering for position or attempting to undermine another? How can I be prepared to deal with this if it does happen?
Once your project is underway, it’s important to make sure that the good work you’ve done in preparing your organization, selecting the agency, and getting the project underway is carried all the way through the project’s execution.
Open and honest communication between the agency and your project team — as well as between the project and your stakeholders — contributes positively to the quality of the app created. Open communications also helps to create a culture of trust.
Communicate with your agency regularly. Be frank and honest, and don’t unnecessarily withhold information that could affect the project or app. I cannot stress enough the importance of open effective communications, so here are some things that can help you:
- Continue to challenge yourself throughout the project to develop a culture of open communications, reviewing this regularly.
- Encourage ad-hoc communications, ensure key personnel are accessible in person, by phone or email: as far as is practical, operate an open door policy.
- Set up regular meetings and follow good practices for meeting management: For many projects it can make sense to have daily stand-up calls or face-to-face meetings where you can understand how the team is working, have visibility to progress, and gain familiarity with blocking issues.
- Look to improve communications with remote teams by using technologies, such as Google Hangouts.
- Bring remote teams on site for important meetings.
- Maintain effective communication with your project stakeholders throughout the life of the project. This helps to ensure their needs are met and the project stays aligned should business requirements evolve.
- Be aware of cultural differences and biases when working with teams from different countries.
- Check regularly to make sure that your team is easily accessible to the agency’s team. If they are not, look for ways to improve the situation.
- Have a clear process to handle change requests.
Remember to use the agency’s skill and expertise. Ask them if there are any communication channels or techniques they usually use that aren’t being used on this project. If there are, find out whether it would be helpful to adopt them.
As you plan for open communication with the agency, ask yourself:
- Is the agency likely to share bad news with us openly?
- Is the agency likely to tell us if there is an unexpected issue with our specification?
- How are we managing these and other risks on the project?
Understand the development methodology
The world is awash with app development methodologies. Agile is one of the most popular, but many alternative approaches could be used and may be equally suitable. Fortunately, you probably won’t need to worry about selecting one, as your agency is likely to have a defined process for undertaking development work. But, make sure that their process:
- Puts the user at the center of the design process, makes use of user data and insights particularly in the design phase.
- Takes advantage of open (beta) testing (which you can manage from the Google Play Console) to get feedback from users before launching.
You might also ask the agency what challenges they have encountered with their approach and methodology in the past. Then, also how any lessons they learned are being applied to this project.
Whatever development methodology your agency uses, make sure its processes and working practices are clear, understood, and agreed between all project members.
As you align working practices, ask yourself:
- What is my organization’s preferred methodology?
- Have I set expectations on how we should work together within that framework?
- Is my project team, including key stakeholders, fully briefed about the planned process.
- Am I giving the agency sufficient access to the stakeholders in my organization?
Get ready for change
It’s tempting to think of an application as ‘complete’ when it’s functioning according to its specification. The reality is that no app is complete, there are always opportunities to improve it.
As you share your application design or beta version with your users, you’ll probably get unanticipated feedback. At the same time updates to Android and new features will emerge, offering options to improve your app or suggesting changes you should make.
Having a process that captures this feedback or platform changes, evaluates them, and if necessary implements changes will help in delivering an app that delights users. It will also allow you to predictably manage the project timeline and budget.
If you don’t have a formal project and change management process in your organization, it might be worth looking to widely adopted methodologies such as PRINCE, APM, Scrum, Agile, or similar. Again, don’t forget to use your agency’s expertise and find out what project management methodology they use. More specifically, explore how they propose to handle changes in the specification, for example, through development methodology or documentation.
As you prepare to manage change on your project, ask yourself:
- Have I budgeted for ongoing change and maintenance?
- Have I made sure that the app is future proofed so that updates to the app will be easier?
- Am I setting the expectations of others in my organization at the right level for version 1 of the app and then for subsequent versions?
Strive for coding excellence
A clean, well architected code base using tried and tested code patterns will be easier to maintain and less likely to encounter unexpected effects when changes are made. A good testing discipline will also help maintain code quality by isolating issues quickly, so they can be fixed while code changes are fresh and in-mind. A clean architecture and well-tested code will make it easier to reduce the costs of adding new features later.
Testing is the foundation for app quality. During the project, testing depth can range from a quick check on a device through to fully automated tests. Disciplined testing is also helpful in ensuring your code is well maintained and helps prevent seemingly minor changes in the code base causing unwanted outcomes for your users.
Create an excellent app architecture from the moment you begin designing. Then create and execute a great suite of tests, which can stand as the documentation for the code. Some best practices you can follow are:
- Develop for the latest versions of Android.
- Reuse tried and tested architecture patterns.
- Include usability testing in the design and development processes.
- Identify the most popular devices among your target users, and tests on those devices first. Then expand the test device range as far as is practical.
- Apply the ‘toothbrush test’ we challenge Google products to pass: if the app is used twice a day, every day, will the user find frustrations that could magnify over time.
- Strive for ongoing product excellence from the beginning.
Also you may ask your agency the following:
- How will you identify suitable code patterns for our app?
- What kind of usability testing do you do? How do you conduct usability tests? What testing framework are you planning to use? Can you give examples where you’ve successfully employed usability testing?
- Are you planning to use a test service, such as Firebase Test Lab?
- What level of automated testing do you plan?
- How regularly will you run these tests?
- What devices, including tablets, are you planning to test on? What testing (for example unit testing) is covered in the quote and what might be additional?
- Do you have a representative library of test devices? Do you expect this project to require you to add new devices to the library? If you’ve allowed for device purchases in the project fee, will we get the devices on completion?
- Are you providing any guarantees, for example fixing errors within 3 months? This is more relevant for fixed price contracts.
- How are you going to handle regression testing?
At the same time, ask yourself:
- What kind of reporting on tests do I want?
- Should I get a third party to review the commenting and documentation within the code to ensure future maintainability?
- How are we going to handle integration testing?
- How are we handling user acceptance testing?
- Do we want or need to maintain our own library of test devices?
- Given it’s not a trivial task, how will we maintain an up to date library of test devices?
Test before rolling out
Typically you’ll only have one chance to get things right with your users. Running closed tests with users provides an opportunity to validate any assumptions you’ve made with a trusted audience. These tests will usually help find any errors missed in your internal testing. By testing before you publicly release the app, and pushing out your app’s marketing campaign, you may increase your chances of a successful app launch.
The Google Play Console includes features to help:
- Internal tests, where people from your company can test and offer feedback.
- Closed or alpha tests, where you can strictly control who has the opportunity to test your app.
- Open or beta tests, where you can make your app available to people on Google Play store who have expressed an interest in testing new apps.
You may also want to apply for Start on Android which, as long as your app is in pre-launch testing, could provide you with exposure through the Early Access showcase on Google Play among other benefits.
When it comes to running tests:
- Look for suitable testers from your organization’s social networks; look for both loyal customers and detractors.
- Consider how tightly you want to control beta testing: run closed tests if you want to involve only selected users or open tests where you’re happy for anyone interested to participate.
- Consider capping the number of participants in an open beta-test, to ensure the test is manageable.
- In addition to direct feedback from testers, monitor the app performance quality indicators provided by Android vitals.
- Use the staged rollout feature of the Google Play Console to release an updated app progressively to larger portions of your user base. Monitor for issues; pause the roll out, and correct issues if unforeseen problems arise.
As you prepare to test your app, ask yourself:
- Is my organization supportive and set up to work with agencies on staged rollouts and closed or open testing? Do we need to adjust our culture in any way to make it work?
- Do we have a culture that puts the user at the center of design and can make the most of testing? How can we build this into our way of working?
Provide the agency with access to your Google Play Console account
You might want the agency to handle Play Console tests, app publishing, respond to app reviews, staged rollouts, and more. You may also want to share the apps statistics and revenue information with them too.
However, your Google Play account and the credentials to access it are a valuable asset. By setting up the agency as a user on your Google Play account you retain full control over your account. But remember to:
- Add the agency or your own staff to the Google Play Console only when they need access, don’t add users just because it might be useful.
- Set permissions for each app, if you’ve got multiple agencies working on multiple apps.
Working with an agency to develop your app can be an effective and timely way of getting your organization or its products greater exposure with mobile and web users.
However, it’s also important to remember that your project won’t finish with the delivery of the first version of your app. There will be a need to support your users and enhance your app as your organization grows or your product lineup changes. This is the start of the process, not an end in its own right.
Hopefully the advice in this series of posts will help you be better prepared in finding yourself an agency and be on your way to executing a successful app development project.
What do you think?
Do you have thoughts on outsourcing app development? Let us know in the comments below or tweet using #AskPlayDev and we’ll reply from @GooglePlayDev, where we regularly share news and tips on how to be successful on Google Play.