Outsourcing web and mobile development is an attractive approach to getting sizable development projects done at a low cost and fast speed, while combining the flexibility of scaling up or down as needed.
The idea is that you can bring in a strike force to build out a project, whether it be a short-term skunkworks type engagement, or a long term agile development process.
When done right, outsourcing provides several key value propositions that are vital for business owners:
- Cost savings
- Fast scaling
- Flexible sizing
Finding the perfect combination of these three elements is truly the golden goose of web and app development. Everyone loves when a project is delivered on time at a great budget, and can be scaled appropriately at completion. The reality of optimizing this is often more challenging than it looks in the beginning.
Below are some indisputable tips that will help you make the right decisions as you go into working with a team that isn’t part of your company:
1. Think of the outsource team as a part of your company
It’s easy to hire a development agency, or even an independent developer, to design the website or mobile app you’ve been dreaming about for years.
Like many other things you might hire out, it’s easy to treat it as just another vendor resource that you would check in on once in a while and see how things are going. A good company or developer will stay on track and hit their deliverables for you, however, you’ll most likely find that they become removed from the overall vision that you’re trying to put forward.
Even the best coders struggle to create a great product if they don’t understand the people that they’re building the product for.
The separation between business vision and the actual creation of the product itself usually comes when the teams or developers are not invested in creating the tool-set that the business owner is actually desiring.
This is a very common practice in companies that have internal development teams – in fact it’s so important for those companies that they go to great lengths to make the developers feel like they are a part of the product itself…
2. Hire for the management, not just the developers
One of the biggest common mistakes in hiring an outsource development company is not integrating effectively with technical management.
An individual developer often knows how to code very well, however they often fall victim to not understanding what the actual business requirements are.
This issue can be amplified when the developer speaks a different language.
It may appear that you’re getting great cost savings initially by working with a lower-cost per hour lead developer, however the time spent recovering from mistakes can be costly.
A great technical management team that has a lot of experience with their developer groups understands how to effectively communicate complex ideas in concepts in an efficient manner.
This results in the initial cost savings of the developer as well as effectively delivered final materials.
3. Set up a communication system that is transparent
More often than not business teams that hire outsourced developers end up not having a good idea as to where they stand in the development process. They may think they have a certain amount of work completed only to later discover that their perceived notion was not at all true.
When a development firm is not disclosing in a transparent manner how much work is being done, and when it’s done, they can use this to their benefit.
This causes an extension their product’s life-cycle and ultimately raises the cost of the overall project. It is not uncommon for a business team not to have access to project management software or even a spreadsheet of work items.
A great way to prevent this from happening is to assess how you prefer to see your project performance before getting on a call to hear a bid from the development firm. Ideally you are used to using a specific type of software to track your projected progress, however, you may want a higher level view of what’s happening.
In either case you should be looking to set high level delivery goals, and combine them with a task-by-task view of which work items are rolling up into the successful delivery.
For teams that already have a project management staff this should be an easy request. You may find that less management-focused development teams push away from this requirement.
If this is the case, you should be cautious with guaranteeing a significant amount of money upfront. Instead you might want to move the project in smaller chunks that are more easily tracked and allow you to make decisions at quicker intervals.
4. Express your vision in images rather than text
They say that an image is worth 1000 words. In tech development an images probably worth 1 million pixels.
When working with overseas developers, or for that matter local developers, providing a visual reference for what’s in your head can save hours upon hours of headaches and extra costs. For someone that is actually trying to create a a tangible and functional user experience, being able to see the goal they are trying to accomplish is vital.
Additionally, when English as a second language for a developer, they often depend on understanding the visual representation of what is being asked of them over the complex language that we use within our primary cultural reference.
It goes without saying that creating perfect visual references is not always a simple process.
But more often than not, the developer only needs the basic approach you are after and doesn’t require every single detail to be documented. While that extensive documentation can help limit bugs and time spent fixing miscommunicated ideas, it’s often just as effective to send the image and then generate a conversation once they’ve had a chance to sit with the engineering task that you put in front of them.
If you don’t have a lot of skill with Photoshop, Sketch, Balsamiq, or any other number of prototyping software, then we always recommend the good old pen to paper.
It’s often just as effective to sketch out each screen on individual pieces of paper and then take photos of those pages with your phone, as it is going into great detail within a full prototyping program.
The important part of any of these approaches is to clearly convey your idea of the experience you are looking to generate for the end-user or your customer. Once the developer sees this, no matter where they’re from, they will be able to quickly comprehend what you’re trying to accomplish and apply their engineering knowledge.
5. Don’t disappear from the process
Finally, one of the most common mistakes when working with an outsourced development team is to simply write up a bunch of tasks for them to do and then disappear from the project.
It’s not uncommon for business leads to assume that once they throw their concepts out there, everything will just magically come together. The reality we all know is… very few things in life actually happen this way; certainly development is no different.
The first thing we always recommend is that you really take the time to get to know whatever project management system is actually been implemented.
This mechanism for tracking will keep you up-to-date on the actual progress of the project itself. When you match that with doing regular checks on the code while it is in a development state, you should be able to see the existing progress and develop a good estimate as to whether things are on or off track.
During this process asking questions is pivotal.
While asking the right questions can help speed the project along, it’s really more important that you ask the questions that you need answered. While developers may not always be able to answer with the context you’re looking for, they can provide information that you can use to make intelligent assessments.
A good example of this is asking the general question of “How long will this take to complete?”
That question may come with a lot of background behind it, so the developer might give a very general answer. However, you might adjust the question to something more like “How long do you estimate the completion of the three top tasks in the backlog to take?”
With a question like that you may not get the high-level answer you’re looking for, but you can take that information and extrapolate from it the general progress towards the completion of the project. Other questions that often bring beneficial answers include:
- Is there anything you need business feedback on right now?
- Do you have everything you need for this next group of tasks?
- When should we see a working version of the pieces you’re currently working on?
Finally….
Approaching these questions with an understanding that it’s difficult to assess everything at once will yield a bond between you and the developer.
Additionally using that bond to stay consistent in communication with the team that is building your product gives you the ability to have ongoing insight into legitimate progress.
Of course the key word in that sentence is consistent.
We always suggest working out a fixed time or two during the week in which you can check in and ask questions that the developer knows that they have time to prepare for. If you provide this consistent feedback loop, they usually come to the table with ready answers, any required business questions, and the confidence to mostly stand behind what they’re about to tell you.
This not only speeds up the process, but it makes their statements hold much more weight.