1. Software Engineering
for Startups
Ali Khajeh-Hosseini
@AliKhajeh, @PlanForCloud
Nov 2012, University of St Andrews
2. Why am I here?
Show you how we do…
software engineering
3. Jan 2009: Started PhD in St Andrews
May 2010: PlanForCloud v.1 ready
Feb 2011: Interned in California for 7 months
Dec 2011: Hassan quit his job and joined
Feb 2012: Launched PlanForCloud v.2
May 2012: Mountain View for YC interview
17. 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?
18. IT managers Software Engs
Consultants Accountants
Users
23. 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
24. In a startup, each person plays many roles
Hiring Product manager Engineer
Architect Marketing manager QA
Operations Support Operations
Escalations User Experience R&D
26. Design
It’s all informal
Just a wiki page
+ Comments/emails
No Word documents
No UML diagrams
27. Planning
Engineers breakdown stories into tasks
Granularity: less than a day to complete
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
45. 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)