Looking to outsource the development of your next mobile app or website? Here are a few tips from the trenches.
Tip #1: Choose a Vendor with Proven Experience
When choosing a vendor, be sure to select someone that has been-there, done-that. At least make sure they have successfully launched some apps on your chosen platform – then go test those apps, read their reviews, and preferably talk to their client references. Bonus points if they have worked in your particular industry or on your particular problem before.
Tip #2: Ensure Open Dialogue, Frequent Checkpoints, and Live Demos
Anytime you’re sending work outside of your office, there is a communication gap. If someone is sitting a few tables over, it’s easy to walk over and get a quick verbal status update; however, if someone is working remotely, be sure to set regularly scheduled huddles to make sure things are on track. I emphasize on regularly scheduled because this is key. Set a conference call/screen sharing session for at least once per week to touch base and see the latest version of the app.
There are two key benefits to doing this. First of all it establishes a good rhythm where both parties know when they’ll have their next opportunity to share notes and receive feedback. This reduces the number of short emails back and forth. Issues can be consolidated into a single list for discussion.
The second major benefit is that you, the client/product owner, gets to see the app while it’s being built. This will greatly increase the number of issues spotted early on which will save massive headaches down the road. By investing this time to take a quick look at the app you’ll spot all sorts of little quirks that you hadn’t previously thought about. Don’t allow shortcuts here where updates are simply verbal – if you can’t see the feature, you can’t assume it’s done.
Tip #3: Use the Same Tools
Project teams use a lot of tools when planning, designing, developing, testing, and supporting – be sure to use the same tools. If you’re outsourced team is going to use some handy tool for bug tracking, get access to it. Same for project management. Be sure you’re looking at the same dashboards in the same systems. This will save energy by ensuring that everyone has the latest copy of the available information and that little is lost in translation.
Tip #4: Conduct Code Reviews
Conducting code reviews is particularly important early on to ensure that your quality standards are being met. If you don’t have internal resources to conduct a code review, hire a third party to spend a few hours going over the code. Make sure that it’s of high quality, well designed, and properly commented. This upfront investment will both validate that you’re working with a good partner and it’ll set the bar so they understand the quality you’re looking for.
Bonus points: ensure they’re using a technology stack that will work for your long-term vision.
Tip #5: Plan for User Acceptance Testing
User acceptance testing is where you get the app and get to test that it’s working as designed. This is your opportunity to go through all the scenarios and make sure the app is perfect. The two keys to successful UAT is that it’s done thoroughly and promptly. Be sure to schedule time in the project for this. Make sure your internal team is available to properly conduct UAT, that you have a good process for reporting issues, and that you’ve accounted for time in the project for both your UAT and the outsourcing partner to resolve the issues.
Pro tip: during UAT, avoid scope creep and change requests. Focus on getting the current project complete before adding new features.
Tip #6: Remove Roadblocks & External Factors
When working with a third party, it’s easy to lose hours, days, and weeks because of external factors. For example, if the developers need some updated design assets, or have queries, or are relying on another party for API details. These types of delays will limit the efficiency of the team and ultimately slow down the project – plus, if you’re working with a hardline partner, they may use these as excuses to delay the project. The best advice here is to prepare everything in advance of outsourcing. Some changes will inevitably come up, but try to scope the project in a way that enables the external team to execute the project end-to-end without the opportunity to cite an external factor as a delay.
Tip #7: Clarify Scope of Deliverables
What exactly are you going to get at the end of the project? Some partners will deliver just the source code. Some will give source code and design assets. Some will just give the application itself and not the source code. Depending on your commercial arrangements, I would suggest requesting the following (at least!):
- Source Code (preferably in the form of a code repository that includes the change-log and versions along the way)
- User Stories
- Design Assets (their original copies, not just the final versions. Chances are a few months after launch you’ll want to make some minor changes).
- Test Cases & Results
- Technical Architecture
As I explain in more detail in another blog post, there is value in documentation.
Tip #8: Clearly Identify Acceptance Criteria
Acceptance criteria is essentially an agreed upon criteria that will be met in order to consider the project complete. It could be as simple as “all user stories are complete as designed and test cases serve as validation.” Making this acceptance criteria clear makes it easier for both parties to understand how the project will finish. This will avoid cost and time overruns caused by time & materials projects running longer than expected. Focus on clearly defined acceptance criteria so the project can finish and you can move onto the next phase.
Tip #9: Choose What to Outsource
Outsource wisely by choosing projects or components of the project that aren’t worth your time or you don’t have the in-house resources. The best things to outsource are clearly defined, well-scoped, and easy to confirm. Outsource items that have a clear start, finish, and deliverables. If you outsource loose requirements or general R&D without fixed time and price upper caps, you’ll end up with a slow trickle that doesn’t result in successful deliverables. Bonus points if you can outsource something that you’ve done before and have a clear process for. It’s much better if you know the scope of what you’re trying to outsource and your goal is to free up your resources. Outsourcing new projects works, but is more challenging in terms of coordination and you can expect it’ll take longer to stabilize.
At Optimus we help clients outsource mobile application development by providing end-to-end services from project management to design, development, testing, and support. Connect with us if you’d like to learn more about how to make your next mobile project a success.