Upload
rightscale
View
700
Download
0
Embed Size (px)
Citation preview
Software Engineering for Startups
Ali Khajeh-Hosseini
@AliKhajeh, @PlanForCloud Nov 2012, University of St Andrews
Why am I here?
Show you how we do… software engineering
Jan 2009: Started PhD in St Andrews
Feb 2011: Interned in California for 7 months
Dec 2011: Hassan quit his job and joined
May 2010: PlanForCloud v.1 ready
May 2012: Mountain View for YC interview
Feb 2012: Launched PlanForCloud v.2
What the heck is… a cloud?
Server
Rack
Container
Electricity, Water, Internet
2500 Servers
Taken from one Dave Cliff ’s talk on Cloud Computing
a cloud
12 Staff 30 Megawatts = Perth (Scotland)! 140 Containers 38,500 m2 = 4 ftbl pitches
360,000 Servers 500,000,000 Dollars
h#p://www.microso/.com/Presspass/emea/presscentre/pressreleases/February2012/23-‐02DublinDataCentre.mspx
Infra
stru
cture-
as-a
-Servi
ce
Platfo
rm-a
s-a-Se
rvice
Softw
are-a
s-a-Se
rvice
Cloud Computing
PlanForCloud helps users make decisions
RightScale helps users do it
How much would it cost to deploy my systems on Cloud X?
Would it be cheaper if I use deployment option X or Y?
What happens to my costs if: - my system grows? - cloud provider changes prices?
Software Engs Accountants
Users
IT managers Consultants
around 9,000 prices in PlanForCloud
$1.7M/year
PlanForCloud Engineering
In God we trust; all others must bring data. W. Edwards Deming
Engineering Roles Product Manager: what should we build?
Director of Development: how should we build it?
Architects: design it
Interaction designer: improve the user experience
Operations: deploy and monitor it
Support: help customers use it
Escalations: something just broke, who can fix it? Engineers: work with everyone to build and test it
In a startup, each person plays many roles
Product manager Marketing manager Support User Experience
Hiring Architect Operations Escalations
Engineer QA Operations R&D
Dev Process: Scrum
1 day planning 3 week sprints Go/No-Go Release Retro
3 weeks
Design
Just a wiki page + Comments/emails
It’s all informal
No Word documents No UML diagrams
Planning
Story: As a user I want to export report as PDF So that I can share it with others
• Refactor simulation engine to… • Switch from Google charts to Highcharts • Generate PDF in background queue • … • Write tests • Code review
Engineers breakdown stories into tasks Granularity: less than a day to complete
Estimation Play planning poker
Sprint calculations
================= Sprint Summary ================= Sprint Begins: 10/2/2012 Sprint Ends: 10/19/2012 Sprint DuraJon: 14 days Team: John, Joe, Jeff, Jack Development: VacaJon: 0 days Total Capacity: 300 hours -‐-‐ grooming/management: 30 -‐-‐ release issues: 10 -‐-‐ priority bugs: 30 -‐-‐ tech debt: 30 -‐-‐ backlog: -‐-‐-‐-‐ must have: 150 -‐-‐-‐-‐ nice to have: 50
Start sprinting…
Daily standup Answer:
1. What did you do yesterday? 2. What are going to do today? 3. Is anything blocking you?
Every day 9:30am sharp
Sprint metrics
Release prematurely & often
But you need protection: Good tests Exception handling Automate as much as you can
Good tests
Positive tests
Negative tests
Fast tests
Good test coverage
Continuous integration
Name and shame
Exception handling
1. On-call ops engineer 2. VP of engineering 3. CTO 4. CEO
Issue tracking
Automate, Automate, Automate
heroku pgbackups:capture --app planforcloud git push planforcloud master heroku run rake db:migrate --app planforcloud
Releasing new code:
Performance monitoring
How is it being used? How can you improve it?
Let’s recap: You built it and shipped it
User metrics - Google analytics - Custom metrics from DB
User testing - Record user sessions - Ask for lots of feedback
User experience - Investigate user flow - Wireframing tools help
Why you should join a startup
• Great learning environment • Informal and fun • Young people with lots of energy • Take work seriously, but not themselves • Move quickly: Just F*ing Do It (JFDI)
RightScale����������� ������������������ Employee����������� ������������������ Meetup����������� ������������������
Sunny����������� ������������������ Santa����������� ������������������ Barbara����������� ������������������
Unplanned����������� ������������������ release����������� ������������������ (4AM)����������� ������������������
We����������� ������������������ like����������� ������������������ to����������� ������������������ eat!����������� ������������������
Edinburgh����������� ������������������ startup����������� ������������������ party����������� ������������������
RightScale����������� ������������������ 2012����������� ������������������
We’re hiring! www.PlanForCloud.com