Cloud computing and distributed development teams; how to make it work.

604 views

Published on

Martin Omander @ European Innovation Academy Summer Session 2013

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
604
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cloud computing and distributed development teams; how to make it work.

  1. 1. Cloud computing and distributed development teams; how to make it work. Martin Omander Google Developer Relations momander@google.com
  2. 2. Martin's background 13 years of working remotely with developers in Sweden, Russia, India, US, UK. Accenture, two small startups, CafePress.com, Google Not just opinions... hard-earned lessons!
  3. 3. Why distributed development? Good reason: ● can't find enough local developers Bad reasons: ● save money ● deliver sooner ● free up internal resources ● reduce risk ● delegate responsibility
  4. 4. Why distributed development? Other things being equal, you will get: ● lower productivity ● lower quality ● more management overhead ● misunderstandings, due to culture We can soften the impact, but not eliminate it. How?
  5. 5. Maria Just got a round of funding. Wants to use it to build v1 of her product. Has a small local development team, can't find enough local developers. Three examples Image by serzhile @ Flickr Image by herlitzpbs @ Flickr Peter Just got a round of funding for his startup. Wants to use it to build v1 of his product. Has a local development team. Anna Running out of money, needs to lower her startup's burn rate. Has a local development team.
  6. 6. What Peter does 1. Peter's startup needs to make their latest round of funding last. He lays off his local developers and hires an inexpensive offshore development team. 2. Peter spends a month writing a detailed system spec, which he emails to the team. 3. All Peter wants is a working product. He lets the team decide: a. Development tools. b. Where and how to deploy the finished system. 4. Peter focuses the team by: a. Setting an aggressive deadline for delivery. b. Writing a contract that says he won't pay if it's late. 5. Peter lets the offshore team work in peace, while he goes off selling the new product they are building. FAILURE!
  7. 7. DON'T treat offshore team as a black box DO treat contractors as employees Get to know your developers, show genuine interest, learn what makes them tick, gradually ramp them up
  8. 8. DON'T let the remote team work in peace DO frequent releases Release often, preferably daily Tools for easy test, easy deployment Get business owners on board with frequent small releases
  9. 9. DON'T set aggressive deadlines DO communicate face-to-face Daily / weekly check-ins on Skype / Google Hangout Travel often to meet in person
  10. 10. DON'T write detailed specs and contracts DO requirements "mind-meld" Embrace changing requirements Explain "why" instead of "how"
  11. 11. DON'T put all tech knowledge with remote developers DO assign local technical experts to work with remote developers Keep doing local development Minimizes technical debt, enables local developers to contribute.
  12. 12. DON'T let the remote team pick tools, processes DO use same tools and processes as with local team 1. Feature / bug tracker 2. Source control 3. Code review
  13. 13. DON'T do system administration DO develop business logic Less system administration -> less time wasted Ride someone else's upgrade path Platform as a Service (PaaS)
  14. 14. Image source: TheGadgetSquare
  15. 15. Advantages of Platform as a Service (PaaS) ● Auto-scaling; pay only for what you need. ● Provisioning machines, sharding, load balancing, replicating, monitoring are taken care of. ● Get excellent uptime, without being on call. Getaround.com wins TechCrunch Disrupt
  16. 16. What Anna does Running out of money, needs to lower her startup's burn rate. Has a local development team. Should she hire a remote team? Does not hire a remote development team; that would only use up more resources. SUCCESS!Potential
  17. 17. What Maria does Just got a round of funding. Wants to use it to build v1 of her product. Has a small local development team, can't find enough local developers. Should she hire a remote team? 1. Hires a remote team, keeps local team. 2. Assigns her best local developer to work with them. 3. Remote team uses same tools as local team. 4. Remote team deploys to a PaaS environment. 5. Picks small features to get the team started. 6. Does daily check-ins with remote team. 7. Releases small features in close cooperation with the business owner. SUCCESS!Potential
  18. 18. $1,000 App Engine credit for startups 1. Go to http://cloud.google.com/startups 2. Click Apply Now 3. Enter verification code DR-01

×