When it comes to agile software development, an outsourcing vendor that's out of reach may not be the same option. While the idea of having a team that advances your project while your in-house team sleeps may seem enticing, agile methodologies benefit far more from teams that can collaborate in real-time and tackle issues or spur innovation together.
Software development outsourcing is becoming more and more common as companies all over the world struggle to find the talent they need at a price they can afford. The benefits inherent to outsourcing are well known, and include lower costs, faster development cycles, and greater opportunities to bring in highly-specialized talent. However, as more and more companies join the race, it starts to seem like the only way IT outsourcing companies can differentiate themselves it through marketing gimmicks. Let's leave that aside for a second and focus on what's important: the actual software development.
When you bring in software development help to build or scale your project, you're looking for a few main requirements: technical expertise, shared methodologies, the ability to speak the same language and to be, above all, agile. But when it comes to agile, is there really a difference between executing a project with an outsourced team in a completely different time zone and executing a project with a team in a similar time zone? Let's take a look.
If you work in agile methodology, you know that it focuses on conversations and verbal explanations over time-consuming and tedious documentation. Writing out detailed manuals and instructions is only implemented when necessary, which is why very different time zones can present problems to deployed and in-house teams in their efforts to work collaboratively.
Consider the following situation:
Your team and your vendor's team have a 2 to 3-hour overlap each day. You can probably manage to have a productive long meeting where you make sure everyone "understands" the requirements and everyone leaves the meeting confident and ready to get to work. You go to bed feeling assured that you've covered all your bases. Except, a developer in your outsourced team comes up with some obscure scenario or has a pivotal question about the product architecture that hadn't even crossed anyone's mind before… but, you're asleep.
The process you designed supports quick iterations and a collaborative environment. But when something becomes broken, which hinders the business flow through the system, your far-outsourced team must wait for you to wake up and go to the office to talk about it and figure out what to do. They just had to "stand around" for hours, generating more and more questions, waiting to talk to you and losing almost an entire day's work. Not very agile, is it?
Unfortunately, these scenarios happen all the time.
Agile software development requires your team and your vendor's team to be constantly communicating. This way, you're always informed on the progress and decisions being made in the project, and are there to chime in, provide direction and make definitive business decisions. You can always "correct" this issue with more documentation, but this slows down your process and you end up losing a lot of the benefits of agile.
There's also the fact that your deployed team would still have to handle the cases where requirements don't explain what needs to be done under certain conditions due to lack of detail. This means going back to more traditional methods, where the team would need to report a bug and wait for it to be corrected. Though there are ways of getting through this, the question you need to be asking yourself is "is it really worth it?"
Fortunately, you don't need to sacrifice response speed and subject your team to the work of writing hundreds of pages of requirements—not to mention the job of making sure that documentation is correct and covers all the system details. Working with a nearshore software development partner enables you to enjoy the benefits of outsourcing without the inconveniences surrounding dissimilar time zones. Instead of having to wait for issues to be reported, your deployed team can just pick up the phone (or send an email or send a text message) and ask your team directly.As you begin to work more closely to your nearshore team, you'll find you have more time to focus on meeting your business objectives, making strategic decisions, approaching your product development analytically, and improving your product every day.
Want to learn more? We'd be happy to explain in more detail!