Agile Offshore Software Development – Best Practices
Recall that in my last post I covered some common pitfalls that we see when companies start doing some software development offshore. Now, let’s discuss some best-practices jira automation time in status
for Agile offshore development, which will (hopefully) allow us to avoid those pitfalls.
In brief, and as I’ve discussed in my prior posts, we’re going to use dedicated offshore development teams that work hand-in-hand with onshore staff. And we’re going to use an Agile process, since it emphasizes teamwork, bit-sized requirements, streamlined decision-making in order to resolve issues on a timely basis, and a lot of small victories. This approach helps you bridge the communication and culture gap that can arise when developing software with a mix of offshore and onshore resources. This mix is the “new normal”, due to the shortage of skilled resources in the US, and the need for a cost-effective mix of resources.
Here are my best practices:
1) Team Roles – I’m not going to define these roles. I assume you can read the definitions elsewhere if you need to. Instead, let’s focus on where our team members are going to be located-onshore or offshore.
Product Owner – Product Owner is normally located onshore. Typically this person might be a product manager, who understands both the business and the product functionality very well. So normally this person is going to be onshore, although some companies are also putting a product manager on the offshore side too, and the onshore and offshore PMs work together. It’s that’s a nice intention, and I think it can work if you have a very special offshore PM, but I’m not completely convinced about this joint approach.
Architect – I used to think your Architect should be onshore, but I’m not so sure anymore. If most of the developers end up being offshore, then placing your Architect onshore puts you at risk of having the Architect produce beautiful documents that nobody reads. Sad to say, but this not uncommon. The Architect needs to have the respect of the developers, or else they will have little influence, and the developers will make all the Architecture decisions on their own. Ideally the Architect should be able to watch the developers out of the corner of his eye to ensure they aren’t reinventing the wheel. So you might want to consider placing the Architect offshore in some cases.
Engineering Manager/Team Leads – Should ideally be located wherever their developers are located. Normally you’d expect you offshore service provider to supply Engineering Team Leads for you.