5 Mistakes Companies Make When Outsourcing Software Development
Outsourcing software development
-
Upload
jamesgibbons -
Category
Technology
-
view
221 -
download
0
description
Transcript of Outsourcing software development
![Page 1: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/1.jpg)
Outsourcing Software Development
James Gibbons
![Page 2: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/2.jpg)
Outsourcing
• Why or why not outsource?
• Choosing a partner
• Making it work
![Page 3: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/3.jpg)
Introduction
• Currently a Software Developer
• Previously a Software Development Manager
• Outsourcing in the UK and abroad
• No magic bullets
Have worked with people in the UK (contractors and companies), Poland and Belarus as a collaborator
I’ve worked in an environment where outsourcing worked, and was immensely useful but it wasn’t without a cost.
I have something that may look like a magic bullet, but it isn’t, it’s actually really hard.
![Page 4: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/4.jpg)
Why Outsource?
You probably do. Many of the services used by your business are not in house. Payroll, office cleaning, legal, etc.
Need a solid business reason. Interesting challenge is not a good reason.
![Page 5: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/5.jpg)
Flexibility - much easier to expand or contract a team, add new skills.
Want to permanently recruit an iPhone developer? A Hadoop expert? Be prepared to join a very long queue.
Outsourcing makes that somebody else’s problem.
![Page 6: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/6.jpg)
Need a DBA, who is also a SEO master? It’s like trying to find a unicorn.
Luckily, we have two!
![Page 7: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/7.jpg)
© Cezary P 1999
Sometimes you just have a dirty job. It needs to be done and you want to keep your team moving.
Frees up your local team for more valuable and interesting work.
![Page 8: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/8.jpg)
All just a matter of money. Lower costs, more bang for your buck.
This isn’t a great reason. It isn’t vastly cheaper unless you go very far away. The cost of working this way will almost certainly mean your savings are a lot less than you expect and may be more expensive than your local team.
![Page 9: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/9.jpg)
Why not?
![Page 10: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/10.jpg)
Collocation is great. Bring everybody in to one office. Life is so much easier.
Try to make the office nicer than this though.
![Page 11: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/11.jpg)
Time goes much more slowly. There are no more ten minute changes.
The feedback cycle is much more
![Page 12: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/12.jpg)
Heavyweight process requirements
![Page 13: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/13.jpg)
© Luis Miguel Bugallo Sánchez 2005
Are they committed. Chickens versus Pigs.
C2, waiting for payment milestones.
![Page 14: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/14.jpg)
Your R&D may not involve microscopes. Who is doing the R&D
![Page 15: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/15.jpg)
Hard to convey context, priorities & values
![Page 16: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/16.jpg)
What if you want to go back and bring everything in house? Or worse, switch to another provider?
![Page 17: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/17.jpg)
Outsourcing Options
![Page 18: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/18.jpg)
UK. No travel problems, no culture problems, no language problems, its great!
Very expensive! Java or C# contractors in London >£500 per day. Outside firms can be >£1000
![Page 19: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/19.jpg)
Eastern Europe. Options everywhere. Some parts e.g. Poland are very accessible. Flights to all parts of the country from LTN and STN everyday. Russia and Ukraine [Kharkiv] are less accessible. Belarus can be a nightmare as it enjoys very poor relations with the UK [Godel].
Can still be expensive especially in western locations - sometimes more expensive than an in house London developer.
![Page 20: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/20.jpg)
Far East - mainly India, China is increasingly important. Also a few other countries like the Philippines and Vietnam.
Also other locations - South America, especially Argentina
![Page 21: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/21.jpg)
Choosing a Partner
![Page 22: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/22.jpg)
Timing
• Don't wait until you're under pressure.
• Allow lots of slack.
• Your outsourced team will be net contributors slower than you expect.
![Page 23: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/23.jpg)
Contractors
• As with your normal hiring procedure
• Expect them to be amazing!
• Feel free to take risks and say goodbye if they don’t measure up.
![Page 24: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/24.jpg)
Companies
• Find an organisation with a similar culture.
• Talk to the developers.
• Try to have some leverage.
An organisation like Infosys or Wipro with >100,000 -150,000 people won’t have much in common with your two man startup -> you’ll be paying for things you don’t want or need. If you’re a bank, then they will be able to give you the certifications you may require.
Business development will make it sound wonderful - it’s their job. Talk to the developers, they’ll be the people you speak to day to day and they’ll be the ones that are doing the work. Also, they are usually much worse at lying to you.
Leverage comes in many ways. You may not be the biggest client, but you may be their chance to break into the node.js market.
![Page 25: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/25.jpg)
Factors to Consider
• Technical ability
• Time difference
• Language skills
• Travel difficulties
• What is their hiring process?
Time: Poland +1, Ukraine +2, India +5.5, China +8. Remember differences in working times.
Travel time: Eastern Europe a couple of hours; Ukraine 8 hours; India >12 hours; China even longer
![Page 26: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/26.jpg)
What work should you outsource?
![Page 27: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/27.jpg)
Core IP?
Intellectual Property. A risk?
![Page 28: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/28.jpg)
Too Small Too Big
Like Goldilocks, not too small and not too big. Don’t think of it as an outsourcing problem, if you had 10 new developers how would you bring them on board? Mission critical project? Disaster.
![Page 29: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/29.jpg)
Break off a distinct piece of work. Ideally a whole project. Remember, your new dev team will have to master an entire new set of tools and way of working; as well as a new domain. Keeping things tight minimises what they have to learn up front.
![Page 30: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/30.jpg)
Productivity: out-sourced team will be very low initially, and won’t rise as rapidly as you expect. Starting thinking on an 18 month - 3 year horizon, not a 3 month horizon.
![Page 31: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/31.jpg)
Water carrying
![Page 32: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/32.jpg)
Customer facing projects?
![Page 33: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/33.jpg)
Making it Work
![Page 34: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/34.jpg)
Time Frame
• First month
• First year
• First three years
• The future
2012
2013
2014
2015
![Page 35: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/35.jpg)
Communication
Its all about the communication. If you’re doing outsourcing and you take away one thing, its communicate.
It will get you around so many bumps and problems if you’ve built up trust and can share knowledge.
Ability to have confidence in the other partner. Its a two way thing!Important to trust your outsourcing partnerNeed to trust and be trustedMust ensure your interests are aligned - fixed cost vs time & materials? Allows a platform for giving feedback and improvement.
![Page 36: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/36.jpg)
Face to face conversation is best of all. No latency, incredible bandwidth, immediate feedback. Remember the importance of non verbal communication!
Much easier to convey ideas. Just need to grab a whiteboard or sheet of paper.
Easier to spend an extended period of time with people than on an interminable conference call. [3.5 hour conference call]
Orders of magnitude better at building the softer side of relationships. If you want to build trust without regular visits, expect it to take years. Ideally have visits going both ways - reciprocation is valuable.
Observe what its like at the coal face. [VPN example].
![Page 37: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/37.jpg)
Needs to have an excellent connection, excellent bandwidth, latency <150ms
Costs - can be hundreds of thousands, basic setup will still be thousands. Ambient Awareness can be hugely beneficial
Resolution. Standard web cam is a waste of time to share whiteboards etc.
A poorly setup system can actually have a negative affect on communication.
Some lightweight alternatives e.g. join.me for screen sharing - ideal for show and tells
![Page 38: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/38.jpg)
Most likely using Voice over IP - lots of different providers. Skype is the de facto standard. Skype is not full duplex, which can be annoying.
Good for day to day updates and communication, but has enough flaws to be unsuitable as the only means of communcation.
Can be hard to explain some ideas without visual props.
![Page 39: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/39.jpg)
Tempting, but response times can be very slowRarely the most appropriate toolUbiquitous
Asynchronous - really useful, really annoying
![Page 40: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/40.jpg)
Very useful for ad-hoc requests
Also useful as a side channel during discussions.
Can have a useful semi asynchronous nature
![Page 41: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/41.jpg)
Google Docs, Rational Team Concert, Basecamp, Jira, Wikis, Lots of Application Lifecycle Management tools: Rally, Mingle, Pivotal Tracker etc.
![Page 42: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/42.jpg)
Knowledge Sharing
Outsourcing is a great test of this!Wikis are great, but require conscious effort.Need to encourage the offshore team to contribute back
![Page 43: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/43.jpg)
Process
• Don’t try to mirror what you currently use.
• Assign a collection of work.
• Be really clear about expectations, you’ll be surprised in all sorts of ways.
• Demo the work regularly.
Don’t try to mirror what you currently use - use as a base but iterate quickly.Assign a collection of workBe really clear about expectations, you’ll be surprised in all sorts of ways. Initially be very detailed with the spec, but relax later on.Demo the work regularly
![Page 44: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/44.jpg)
Challenges
![Page 45: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/45.jpg)
Expected
• Decreased communication bandwidth
• Decreased visibility
• Culture clash: corporate and national
• Expectations disconnect
Also legal and regulatory, depending on your field.
![Page 46: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/46.jpg)
Unexpected
• Unclear expectations
• Unable to respond to clients.
• Interactions involve more people than you think.
• Hard to manage information flow - people slip up.
![Page 47: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/47.jpg)
Patterns
![Page 48: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/48.jpg)
Project Kickoff
Bring everyone involved in the project together in one place at the same time for a kick–off meeting. Lay the foundations of the technical work on the project here, but also allow time and space for team members to get to know one another. They must synchronise their ideas about the project in order to establish common goals
![Page 49: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/49.jpg)
Regular Visits
Have team members rotate through locations continually. Always have at least one team member working away from their home location.
Having experienced a colleague’s communication style directly, in their local environment, it’s much easier to work with them subsequently.
![Page 50: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/50.jpg)
Ambassador
Have a local expert in remote conditions to resolve misunderstandings in either direction.
May not have a queue of people doing this.
![Page 51: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/51.jpg)
Proxy Customers
![Page 52: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/52.jpg)
Remote pairing
![Page 53: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/53.jpg)
Conclusion
• Outsourcing is hard and risky
• Things will go wrong
• With persistence there are benefits in terms of flexibility and depth of talent
• Cost savings won’t be as great as you expect
![Page 54: Outsourcing software development](https://reader034.fdocuments.net/reader034/viewer/2022051609/54682a59af795950298b5fad/html5/thumbnails/54.jpg)
Questions?