Software Engineering For Startups

Like this? Share it with your network

Share

Software Engineering For Startups

  • 1,049 views
Uploaded on

A guest lecture given at the University of St Andrews on how PlanForCloud does software engineering.

A guest lecture given at the University of St Andrews on how PlanForCloud does software engineering.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,049
On Slideshare
1,042
From Embeds
7
Number of Embeds
2

Actions

Shares
Downloads
12
Comments
1
Likes
1

Embeds 7

http://www.linkedin.com 4
https://twitter.com 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 4. What the heck is… a cloud?
  • 5. Server
  • 6. Rack
  • 7. Container
  • 8. 2500 ServersElectricity, Water, Internet
  • 9. Taken from one Dave Cliff ’s talk on Cloud Computing
  • 10. a cloud
  • 11. 12 Staff 30 Megawatts = Perth (Scotland)! 140 Containers 38,500 m2 = 4 ftbl pitches 360,000 Servers 500,000,000 Dollarsh#p://www.microso/.com/Presspass/emea/presscentre/pressreleases/February2012/23-­‐02DublinDataCentre.mspx  
  • 12. Cloud Computing   Infrastructure-as-a-Service Platform-as-a-Service Software-as-a-Service
  • 13. PlanForCloud helps users make decisions RightScale helps users do it
  • 14. 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?
  • 15. IT managers Software Engs Consultants AccountantsUsers
  • 16. around 9,000 prices in PlanForCloud
  • 17. $1.7M/year
  • 18. PlanForCloud EngineeringIn God we trust;all others must bring data.W. Edwards Deming
  • 19. Engineering RolesProduct Manager: what should we build?Director of Development: how should we build it?Architects: design itInteraction designer: improve the user experienceOperations: deploy and monitor itSupport: help customers use itEscalations: something just broke, who can fix it? Engineers: work with everyone to build and test it
  • 20. In a startup, each person plays many roles Hiring Product manager Engineer Architect Marketing manager QA Operations Support Operations Escalations User Experience R&D
  • 21. Dev Process: Scrum1 day planning3 week sprints 3  weeks  Go/No-GoReleaseRetro
  • 22. Design It’s all informalJust a wiki page + Comments/emails No Word documents No UML diagrams
  • 23. PlanningEngineers breakdown stories into tasksGranularity: 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
  • 24. EstimationPlay planning poker
  • 25. 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  Start sprinting… -­‐-­‐  priority  bugs:  30   -­‐-­‐  tech  debt:  30   -­‐-­‐  backlog:   -­‐-­‐-­‐-­‐  must  have:  150   -­‐-­‐-­‐-­‐  nice  to  have:  50  
  • 26. Daily standupAnswer: 1.  What did you do yesterday? 2.  What are going to do today? 3.  Is anything blocking you? Every day 9:30am sharp
  • 27. Sprint metrics
  • 28. Release prematurely & oftenBut you need protection:Good testsException handlingAutomate as much as you can
  • 29. Good tests Positive tests Negative tests Fast tests
  • 30. Good test coverage
  • 31. Continuous integration
  • 32. Name and shame
  • 33. Exception handling 1. On-call ops engineer 2. VP of engineering 3. CTO 4. CEO
  • 34. Issue tracking
  • 35. Automate, Automate, Automate Releasing new code:   heroku pgbackups:capture --app planforcloud git push planforcloud master heroku run rake db:migrate --app planforcloud
  • 36. Performance monitoring
  • 37. Let’s recap:You built it and shipped it How is it being used?How can you improve it?
  • 38. User metrics- Google analytics- Custom metrics from DB
  • 39. User testing- Record user sessions- Ask for lots of feedback
  • 40. User experience- Investigate user flow- Wireframing tools help
  • 41. 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)
  • 42. RightScale
  • 43.   Employee
  • 44.   Meetup
  • 45.   
  • 46. Sunny
  • 47.   Santa
  • 48.   Barbara
  • 49.   
  • 50. Unplanned
  • 51.   release
  • 52.   (4AM)
  • 53.   
  • 54. We
  • 55.   like
  • 56.   to
  • 57.   eat!
  • 58.   
  • 59. Edinburgh
  • 60.   startup
  • 61.   party
  • 62.   
  • 63. RightScale
  • 64.   2012
  • 65.   We’re hiring! www.PlanForCloud.com