Software Engineering for Startups (University of St Andrews, 2013)

920 views

Published on

Guest lecture for Software Engineering students at the University of St Andrews

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

  • Be the first to like this

No Downloads
Views
Total views
920
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software Engineering for Startups (University of St Andrews, 2013)

  1. 1. Software Engineering for Startups   ® Ali Khajeh-Hosseini @AliKhajeh Nov 2013, University of St Andrews ®
  2. 2. I’m here to talk about RightScale Cloud Analytics… and how we develop it
  3. 3. Jan 2009: Started PhD in St Andrews May ‘10: PlanForCloud v.1 ready Dec ‘11: Hassan quit his job and joined Feb ‘12: Launched PlanForCloud (v.2) May ‘12: Mountain View for YC interview 5min demo video filmed in my flat with poor lighting and a £10 poster
  4. 4. Jul ‘12: Acquired by RightScale Nov ‘13: Launched Cloud Analytics (v.3)
  5. 5. What the heck is… a cloud?
  6. 6. Server
  7. 7. Rack
  8. 8. Container
  9. 9. 2500 Servers Electricity, Water, Internet
  10. 10. Taken from one of Dave Cliff ’s talk on Cloud Computing
  11. 11. a cloud
  12. 12. 12 Staff 30 Megawatts = Perth (Scotland)! 140 Containers 2 = 4 ftbl pitches 38,500 m 360,000 Servers 500,000,000 Dollars h#p://www.microso/.com/Presspass/emea/presscentre/pressreleases/February2012/23-­‐02DublinDataCentre.mspx  
  13. 13. Cloud Computing   Software-as-a-Service Platform-as-a-Service Infrastructure-as-a-Service
  14. 14. Cloud Analytics helps users make decisions Cloud Management helps users take actions
  15. 15. The challenge Cloud spending is growing rapidly Cloud pricing is complicated… we scrape over 12,000 prices. Need to visualize, forecast and optimize cloud spend h#p://www.gartner.com/newsroom/id/2352816  
  16. 16. Who buys our products? Big-ass enterprises… like Sony, Samsung, EA Games, Pearson Publishing, PBS, Zynga…
  17. 17. 1. Connect to a cloud 2. We regularly collect data
  18. 18. 3. Slice and dice the data
  19. 19. 4. See historic trends
  20. 20. 5. Forecast future costs based on patterns
  21. 21. RightScale Engineering In God we trust; all others must bring data. W. Edwards Deming
  22. 22. Engineering Roles Product Manager: what should we build? Engineering Manager: how should we build it? Architects: design it Interface designer: improve the user experience Operations: deploy and monitor it Escalations: something just broke, who can fix it? Support/Docs: help customers use it Engineers: work with everyone to build and test it
  23. 23. Dev Process: Scrum 2 week sprints 1 day planning Go/No-Go Release Retro 2  weeks  
  24. 24. Design It’s all informal Just a wiki page + Comments/emails No Word documents No UML diagrams
  25. 25. 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
  26. 26. Estimation Play planning poker
  27. 27. Sprint calculations Start sprinting… =================  Sprint  Summary  =================     Sprint  Begins:  10/2/2012   Sprint  Ends:  10/19/2012   Sprint  DuraMon:  14  days     Team:  John,  Joe,  Jeff,  Jack   Development:   VacaMon:  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  
  28. 28. 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
  29. 29. Sprint metrics
  30. 30. We like to release every week But you need protection: Code reviews Good tests Exception handling Automate as much as you can
  31. 31. Code reviews
  32. 32. Good tests Positive tests Negative tests Fast tests
  33. 33. Good test coverage
  34. 34. Continuous integration
  35. 35. Name and shame
  36. 36. Exception handling 1. On-call ops eng. 2. Eng. manager 3. CTO 4. CEO
  37. 37. Issue tracking
  38. 38. Automate, Automate, Automate
  39. 39. Performance monitoring
  40. 40. Let’s recap: You built it and shipped it. How is it being used? How can you improve it?
  41. 41. User metrics - Google analytics - Custom metrics from DB
  42. 42. User testing - Record user sessions - Ask for lots of feedback
  43. 43. User experience - Simplify user flow - Wireframes helps communicate ideas - Prototype and iterate
  44. 44. Working in startups
  45. 45. Startups

×