B.COM Unit – 4 ( CORPORATE SOCIAL RESPONSIBILITY ( CSR ).pptx
Cloud computing and distributed development teams; how to make it work.
1. Cloud computing and
distributed development
teams; how to make it
work.
Martin Omander
Google Developer Relations
momander@google.com
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. 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. 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. 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. 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. 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. 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. 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. DON'T write detailed specs and
contracts
DO requirements "mind-meld"
Embrace changing requirements
Explain "why" instead of "how"
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. 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. 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)
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. 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. 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. $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