SlideShare a Scribd company logo
1 of 51
Download to read offline
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
    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
What the heck is…
             a cloud?
Server
Rack
Container
2500
                    Servers


Electricity, Water, Internet
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	
  
Cloud Computing	
  
                      Infrastructure-as-a-Service

                                 Platform-as-a-Service

                                          Software-as-a-Service
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?
IT managers   Software Engs
        Consultants   Accountants
Users
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




  Hiring        Product manager     Engineer
  Architect     Marketing manager   QA
  Operations    Support             Operations
  Escalations   User Experience     R&D
Dev Process: Scrum
1 day planning
3 week sprints
                   3	
  weeks	
  

Go/No-Go
Release
Retro
Design
           It’s all informal
Just a wiki page
  + Comments/emails

                               No Word documents
                                No UML diagrams
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
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	
  

Start sprinting…
                   -­‐-­‐	
  priority	
  bugs:	
  30	
  
                   -­‐-­‐	
  tech	
  debt:	
  30	
  
                   -­‐-­‐	
  backlog:	
  
                   -­‐-­‐-­‐-­‐	
  must	
  have:	
  150	
  
                   -­‐-­‐-­‐-­‐	
  nice	
  to	
  have:	
  50	
  
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




                Releasing new code:	
  
        heroku pgbackups:capture --app planforcloud
        git push planforcloud master
        heroku run rake db:migrate --app planforcloud
Performance monitoring
Let’s recap:
You built it and shipped it
 How is it being used?
How can you improve 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

More Related Content

Viewers also liked

How to Boost Your Google Author Rank
How to Boost Your Google Author RankHow to Boost Your Google Author Rank
How to Boost Your Google Author RankLawrence Villamar
 
Agile @Hekovnik part 2: Kanban
Agile @Hekovnik part 2: KanbanAgile @Hekovnik part 2: Kanban
Agile @Hekovnik part 2: KanbanDusan Omercevic
 
The State of the Web Search
The State of the Web SearchThe State of the Web Search
The State of the Web SearchDusan Omercevic
 
Agile @Hekovnik part 1: Agile & Scrum
Agile @Hekovnik part 1: Agile & ScrumAgile @Hekovnik part 1: Agile & Scrum
Agile @Hekovnik part 1: Agile & ScrumDusan Omercevic
 
There’s no such thing as an agile contract - Agile Slovenia 2014
There’s no such thing as an agile contract - Agile Slovenia 2014There’s no such thing as an agile contract - Agile Slovenia 2014
There’s no such thing as an agile contract - Agile Slovenia 2014Dusan Omercevic
 
Programming Motherfucker
Programming MotherfuckerProgramming Motherfucker
Programming MotherfuckerDusan Omercevic
 

Viewers also liked (6)

How to Boost Your Google Author Rank
How to Boost Your Google Author RankHow to Boost Your Google Author Rank
How to Boost Your Google Author Rank
 
Agile @Hekovnik part 2: Kanban
Agile @Hekovnik part 2: KanbanAgile @Hekovnik part 2: Kanban
Agile @Hekovnik part 2: Kanban
 
The State of the Web Search
The State of the Web SearchThe State of the Web Search
The State of the Web Search
 
Agile @Hekovnik part 1: Agile & Scrum
Agile @Hekovnik part 1: Agile & ScrumAgile @Hekovnik part 1: Agile & Scrum
Agile @Hekovnik part 1: Agile & Scrum
 
There’s no such thing as an agile contract - Agile Slovenia 2014
There’s no such thing as an agile contract - Agile Slovenia 2014There’s no such thing as an agile contract - Agile Slovenia 2014
There’s no such thing as an agile contract - Agile Slovenia 2014
 
Programming Motherfucker
Programming MotherfuckerProgramming Motherfucker
Programming Motherfucker
 

Similar to Software Engineering For Startups

Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)RightScale
 
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-AriThinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-AriDemi Ben-Ari
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
Software Engineering at RightScale
Software Engineering at RightScaleSoftware Engineering at RightScale
Software Engineering at RightScaleRightScale
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Rakuten Group, Inc.
 
Building a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyBuilding a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyiCiDIGITAL
 
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013ChileAgil
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...Roberto Pérez Alcolea
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Hiroyuki Ito
 
Professional Drupal Development The Economis
Professional Drupal Development The EconomisProfessional Drupal Development The Economis
Professional Drupal Development The Economisstewsnooze
 
Walk, Don't Run: Incremental Change in Enterprise UX
Walk, Don't Run: Incremental Change in Enterprise UXWalk, Don't Run: Incremental Change in Enterprise UX
Walk, Don't Run: Incremental Change in Enterprise UXuxpin
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015Yuval Yeret
 
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014Yuval Yeret
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...Demi Ben-Ari
 
Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris toolskuchinskaya
 
Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)wesley chun
 
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBDevOpsDays Tel Aviv
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0Joakim Lindbom
 

Similar to Software Engineering For Startups (20)

Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)Software Engineering for Startups (University of St Andrews, 2013)
Software Engineering for Startups (University of St Andrews, 2013)
 
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-AriThinking DevOps in the Era of the Cloud - Demi Ben-Ari
Thinking DevOps in the Era of the Cloud - Demi Ben-Ari
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Software Engineering at RightScale
Software Engineering at RightScaleSoftware Engineering at RightScale
Software Engineering at RightScale
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
Building a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyBuilding a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's Journey
 
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
"The Lean Mindset": Mary & Tom Poppendieck's Keynote at AgileDayChile 2013
 
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
Professional Drupal Development The Economis
Professional Drupal Development The EconomisProfessional Drupal Development The Economis
Professional Drupal Development The Economis
 
Walk, Don't Run: Incremental Change in Enterprise UX
Walk, Don't Run: Incremental Change in Enterprise UXWalk, Don't Run: Incremental Change in Enterprise UX
Walk, Don't Run: Incremental Change in Enterprise UX
 
DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015DevOps/Flow workshop for agile india 2015
DevOps/Flow workshop for agile india 2015
 
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
Hacker vs company, Cloud Cyber Security Automated with Kubernetes - Demi Ben-...
 
Buytaert kris tools
Buytaert kris toolsBuytaert kris tools
Buytaert kris tools
 
Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)Easy path to machine learning (Spring 2020)
Easy path to machine learning (Spring 2020)
 
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
 
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation SlidesDSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
DSC UTeM DevOps Session#1: Intro to DevOps Presentation Slides
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
 

More from RightScale

10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT GovernanceRightScale
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsRightScale
 
Optimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleOptimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleRightScale
 
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowPrepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowRightScale
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseRightScale
 
Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)RightScale
 
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMComparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMRightScale
 
How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaRightScale
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...RightScale
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsRightScale
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceRightScale
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreRightScale
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesRightScale
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage CostsRightScale
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMRightScale
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessRightScale
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMRightScale
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud ReportRightScale
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsRightScale
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaRightScale
 

More from RightScale (20)

10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
 
Optimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleOptimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScale
 
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowPrepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your Enterprise
 
Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)
 
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMComparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
 
How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale Optima
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider Tools
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and Compliance
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for Enterprises
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBM
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP Helps
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale Optima
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Software Engineering For Startups

  • 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.
  • 5. What the heck is… a cloud?
  • 9. 2500 Servers Electricity, Water, Internet
  • 10.
  • 11.
  • 12. Taken from one Dave Cliff ’s talk on Cloud Computing
  • 14. 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  
  • 15. Cloud Computing   Infrastructure-as-a-Service Platform-as-a-Service Software-as-a-Service
  • 16. PlanForCloud helps users make decisions RightScale helps users do it
  • 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
  • 19. around 9,000 prices in PlanForCloud
  • 20.
  • 22. PlanForCloud Engineering In God we trust; all others must bring data. W. Edwards Deming
  • 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
  • 25. Dev Process: Scrum 1 day planning 3 week sprints 3  weeks   Go/No-Go Release Retro
  • 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
  • 29. 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  
  • 30. 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
  • 32. Release prematurely & often But you need protection: Good tests Exception handling Automate as much as you can
  • 33. Good tests Positive tests Negative tests Fast tests
  • 37. Exception handling 1. On-call ops engineer 2. VP of engineering 3. CTO 4. CEO
  • 39. Automate, Automate, Automate Releasing new code:   heroku pgbackups:capture --app planforcloud git push planforcloud master heroku run rake db:migrate --app planforcloud
  • 41. Let’s recap: You built it and shipped it How is it being used? How can you improve it?
  • 42. User metrics - Google analytics - Custom metrics from DB
  • 43. User testing - Record user sessions - Ask for lots of feedback
  • 44. User experience - Investigate user flow - Wireframing tools help
  • 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)
  • 49.  
  • 50. Sunny
  • 53.  
  • 57.  
  • 58. We
  • 60.  to
  • 62.  
  • 66.  
  • 69.   We’re hiring! www.PlanForCloud.com