SlideShare une entreprise Scribd logo
1  sur  36
Software Engineering in Startups

              @dusano
        TSstartup, 2012-10-23
mag. Dušan Omerčevid, UDI RI
       VP of Engineering @zemanta


@dusano
dusan.omercevic@zemanta.com
restreaming.wordpress.com
linkedin.com/in/dusanomercevic
github.com/dusano
skram.si
Outline
•   15:10 – 16:00   Engineering in Startups
•   16:10 – 17:00   Tools
•   17:10 – 18:00   Technology
•   18:10 – 19:00   Growing Systems
•   19:00 -         Beer(hunt)
Engineering in Startups
Build the right product
           vs.
build the product right?
Product Discovery
Google's Way




Source: http://www.quietaction.com/blog/inspired-d3-talk-tom-chi.html
Source: http://bradfrostweb.com/blog/web/for-a-future-friendly-web/
Great Companies build
   Great Products
Courage
   Respect
Communication
 Commitment
    Focus
Yishan's Way
     Yishan Wong, CEO of Reddit, Director of Engineering at
        Facebook, Senior Engineering Manager at PayPal
(http://algeri-wong.com/yishan/engineering-management.html)

1. Make hiring your number one priority,
   always!
2. Let process be implemented by those who
   practice it
3. Promotion from within
4. Tools are top priority
5. Technical Leaders
PM 101
1.   Product Owner & Product Backlog
2.   Retrospectives
3.   Team & Scrum master
4.   Daily stand-up meeting & Demos

1. Iterations (Scrum & XP) or limited work-in-
   progress (Kanban)
Tools
Collaboration Tools
• In person meetings & Whiteboard
Collaboration Tools #2
• Trello




• Google Apps
Collaboration Tools #3
• IRC




• Blog!
Collaboration Tools #4
• Code style guidelines
• Git
• Code reviews
  – see Code reviews at Khan for guidelines
Continuous Deployment
• Make Deployment a non-event
• If something is painfull, do it more often until
  the pain goes away!
• Ideal: the new employee should be able to
  deploy on the first day!
• Prerequisite: Unittests & TDD
• Dark releases, Blue-green deployment, Canary
  releasing
Technology
VC warning!
    The core business of startups is
searching for a repeatable and scalable
 business model and not playing with
       (unreliable) technology!
Operation System




 There's only one!
Programming Languages
•   JavaScript
•   Java
•   PHP
•   Python
•   C/C++


http://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
Measure Anything, Measure Everything




http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/
Measuring as Testing
• Unittests are only run upon deploy, not
  periodically
• You should have HealthChecks for all your
  applications, that are run upon deploy and
  then periodically
• Have error inducing functionality to test your
  error detection functionality
Storage & Data Processing
• PostgreSQL vs. MySQL
• MySQL vs. Cassandra
    – The Immutable state of MySQL
•   Hadoop/Hive
•   Splunk
•   Lucene/Solr
•   RabbitMQ
Storage Latencies
•   Memcached: <1 ms (mainly network latency)
•   Cassandra: ~1 ms
•   Oracle for simple queries: 1-5 ms
•   DynamoDB: ~5 ms
•   SimpleDB: >10 ms
Cloud Computing
AWS:                           Hetzner
EC2 Large instance (4 EC2      Quad-Core i7-2600, 16 GB
compute units/virtual cores,   RAM, 2 x 3 TB disk:
7.5 GB RAM memory, 850 GB      • 50 euro/month
storage)
• On-demand: 250
   euro/month
• Reserved: 600 euro + 35
   euro/month
• Spot: 15 euro/month
Amazon Web Services
•   Cloudfront ($0.12 / GB / month)
•   Elastic MapReduce
•   DynamoDB
•   S3 ($0.12 / GB / month)
•   Glacier ($0.01 / GB / month)
•   Mechanical Turk
•   Alexa Web Information Service
Growing Systems
Estimates in Software
               Development
•   1 minute -> 2 hours (120x)
•   1 hour -> 2 days (48x)
•   1 day -> 2 weeks (14x)
•   1 week -> 2 months (8x)
•   1 month -> 2 years (24x)
•   1 year -> forever (infinity)
Programming in Startups
•   Code is Liability
•   Supporting Throw Away Software
•   Don't be afraid of the if statement!
•   Develop mainly in master branch
•   Use feature toggles
Availability
• 99%     ~ 3 days
• 99.9% ~ 9 hours
• 99.99% ~ 1 hour
• 99.999% ~ 5 minutes
of downtime/year!

Optimize also for MTTR not just MTBF!
Unittests
• A Unittest should take at most 10ms to Run
• 1054 unittests covering Zemanta's code
• Create mock-ups! Don't do integration testing
  with unittests!
Principles of Software
               Documentation
1. Source code and running services are the ultimate
   documentation!
2. No documentation is much much better than
   misleading/outdated documentation!
3. Out of sight, out of mind! Documentation should be close to
   the source code and the running services!
4. Document only what’s absolutely necessary (data structures,
   development environment setup, release and deployment
   procedures)
5. Documentation should be part of company culture and
   engineering pride!
Take Home Message
• The core business of startups is searching for a
  repeatable and scalable business model, not
  technology!
• Measure Anything, Measure Everything
• Do Code Reviews!
• Be stupid!

Contenu connexe

Tendances

Itai Hochman - Continuous Deployment in Outbrain - AgileIL11
Itai Hochman - Continuous Deployment in Outbrain - AgileIL11Itai Hochman - Continuous Deployment in Outbrain - AgileIL11
Itai Hochman - Continuous Deployment in Outbrain - AgileIL11AgileSparks
 
Work with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec CaliforniaWork with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec Californialeifdreizler
 
Going the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs BoehmGoing the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs BoehmPeter Stevens
 
Building Cross-Functional Scrum-Teams in a Hardware Project
Building Cross-Functional Scrum-Teams in a Hardware ProjectBuilding Cross-Functional Scrum-Teams in a Hardware Project
Building Cross-Functional Scrum-Teams in a Hardware ProjectStephanie Gasche
 
Learning Scrum through games
Learning Scrum through gamesLearning Scrum through games
Learning Scrum through gamesMark Levison, CST
 
Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Woogon Shim
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)Nitin Bhide
 
Sprint Review and Planning Template
Sprint Review and Planning TemplateSprint Review and Planning Template
Sprint Review and Planning TemplateMike Lally
 
Scrum model in game development
Scrum model in game developmentScrum model in game development
Scrum model in game developmentaction.vn
 
Embrace the change
Embrace the changeEmbrace the change
Embrace the changebackslash451
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentSven Peters
 
Adopting agile via continuous improvement with workshop
Adopting agile via continuous improvement with workshopAdopting agile via continuous improvement with workshop
Adopting agile via continuous improvement with workshopPriyank Shah
 
Agile Mindset and Its Implications - My Understanding
Agile Mindset and Its Implications - My UnderstandingAgile Mindset and Its Implications - My Understanding
Agile Mindset and Its Implications - My UnderstandingNitin Bhide
 
How I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deployHow I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deployMohan Krishnan
 
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019Yuval Yeret
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeFadi Stephan
 
Scrum for Video Game Development
Scrum for Video Game DevelopmentScrum for Video Game Development
Scrum for Video Game DevelopmentClinton Keith
 

Tendances (20)

Itai Hochman - Continuous Deployment in Outbrain - AgileIL11
Itai Hochman - Continuous Deployment in Outbrain - AgileIL11Itai Hochman - Continuous Deployment in Outbrain - AgileIL11
Itai Hochman - Continuous Deployment in Outbrain - AgileIL11
 
Work with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec CaliforniaWork with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec California
 
Going the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs BoehmGoing the Next Step? Agile Values and Hardware Development by Urs Boehm
Going the Next Step? Agile Values and Hardware Development by Urs Boehm
 
Building Cross-Functional Scrum-Teams in a Hardware Project
Building Cross-Functional Scrum-Teams in a Hardware ProjectBuilding Cross-Functional Scrum-Teams in a Hardware Project
Building Cross-Functional Scrum-Teams in a Hardware Project
 
Learning Scrum through games
Learning Scrum through gamesLearning Scrum through games
Learning Scrum through games
 
Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)Agile Adoption Story in LGE (Aps2010)
Agile Adoption Story in LGE (Aps2010)
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
What is Scrum?
What is Scrum?What is Scrum?
What is Scrum?
 
Agile 101
Agile 101Agile 101
Agile 101
 
Sprint Review and Planning Template
Sprint Review and Planning TemplateSprint Review and Planning Template
Sprint Review and Planning Template
 
Scrum model in game development
Scrum model in game developmentScrum model in game development
Scrum model in game development
 
Embrace the change
Embrace the changeEmbrace the change
Embrace the change
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software Development
 
Adopting agile via continuous improvement with workshop
Adopting agile via continuous improvement with workshopAdopting agile via continuous improvement with workshop
Adopting agile via continuous improvement with workshop
 
Agile Mindset and Its Implications - My Understanding
Agile Mindset and Its Implications - My UnderstandingAgile Mindset and Its Implications - My Understanding
Agile Mindset and Its Implications - My Understanding
 
How I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deployHow I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deploy
 
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
 
Software Craftsmanship - It's an Imperative
Software Craftsmanship - It's an ImperativeSoftware Craftsmanship - It's an Imperative
Software Craftsmanship - It's an Imperative
 
Code review
Code reviewCode review
Code review
 
Scrum for Video Game Development
Scrum for Video Game DevelopmentScrum for Video Game Development
Scrum for Video Game Development
 

Similaire à Software Engineering Principles for Startup Success

Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Smart Platform Infrastructure with AWS
Smart Platform Infrastructure with AWSSmart Platform Infrastructure with AWS
Smart Platform Infrastructure with AWSJames Huston
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven developmentEinar Ingebrigtsen
 
Silicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionDaniel Coupal
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): RevistedMike Harris
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinMatt Tesauro
 
Building a Startup in .NET
Building a Startup in .NETBuilding a Startup in .NET
Building a Startup in .NETMarcelo Calbucci
 
Dev ops lessons learned - Michael Collins
Dev ops lessons learned  - Michael CollinsDev ops lessons learned  - Michael Collins
Dev ops lessons learned - Michael CollinsDevopsdays
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?European Collaboration Summit
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Sailing through devlopment with legacy code
Sailing through devlopment with legacy codeSailing through devlopment with legacy code
Sailing through devlopment with legacy codeprasadkunte
 
Django production
Django productionDjango production
Django productionpythonsd
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and InfrastructureSchubert Zhang
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentBill Ayers
 

Similaire à Software Engineering Principles for Startup Success (20)

Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Smart Platform Infrastructure with AWS
Smart Platform Infrastructure with AWSSmart Platform Infrastructure with AWS
Smart Platform Infrastructure with AWS
 
Kku2011
Kku2011Kku2011
Kku2011
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
Silicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in productionSilicon Valley Code Camp 2016 - MongoDB in production
Silicon Valley Code Camp 2016 - MongoDB in production
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Building a Startup in .NET
Building a Startup in .NETBuilding a Startup in .NET
Building a Startup in .NET
 
Dev ops lessons learned - Michael Collins
Dev ops lessons learned  - Michael CollinsDev ops lessons learned  - Michael Collins
Dev ops lessons learned - Michael Collins
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Sailing through devlopment with legacy code
Sailing through devlopment with legacy codeSailing through devlopment with legacy code
Sailing through devlopment with legacy code
 
Django production
Django productionDjango production
Django production
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and Infrastructure
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
 
Agile
AgileAgile
Agile
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Software Engineering Principles for Startup Success

  • 1. Software Engineering in Startups @dusano TSstartup, 2012-10-23
  • 2. mag. Dušan Omerčevid, UDI RI VP of Engineering @zemanta @dusano dusan.omercevic@zemanta.com restreaming.wordpress.com linkedin.com/in/dusanomercevic github.com/dusano skram.si
  • 3. Outline • 15:10 – 16:00 Engineering in Startups • 16:10 – 17:00 Tools • 17:10 – 18:00 Technology • 18:10 – 19:00 Growing Systems • 19:00 - Beer(hunt)
  • 5. Build the right product vs. build the product right?
  • 9. Great Companies build Great Products
  • 10. Courage Respect Communication Commitment Focus
  • 11. Yishan's Way Yishan Wong, CEO of Reddit, Director of Engineering at Facebook, Senior Engineering Manager at PayPal (http://algeri-wong.com/yishan/engineering-management.html) 1. Make hiring your number one priority, always! 2. Let process be implemented by those who practice it 3. Promotion from within 4. Tools are top priority 5. Technical Leaders
  • 12. PM 101 1. Product Owner & Product Backlog 2. Retrospectives 3. Team & Scrum master 4. Daily stand-up meeting & Demos 1. Iterations (Scrum & XP) or limited work-in- progress (Kanban)
  • 13. Tools
  • 14. Collaboration Tools • In person meetings & Whiteboard
  • 15. Collaboration Tools #2 • Trello • Google Apps
  • 16. Collaboration Tools #3 • IRC • Blog!
  • 17. Collaboration Tools #4 • Code style guidelines • Git • Code reviews – see Code reviews at Khan for guidelines
  • 18. Continuous Deployment • Make Deployment a non-event • If something is painfull, do it more often until the pain goes away! • Ideal: the new employee should be able to deploy on the first day! • Prerequisite: Unittests & TDD • Dark releases, Blue-green deployment, Canary releasing
  • 20. VC warning! The core business of startups is searching for a repeatable and scalable business model and not playing with (unreliable) technology!
  • 22. Programming Languages • JavaScript • Java • PHP • Python • C/C++ http://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
  • 23. Measure Anything, Measure Everything http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/
  • 24. Measuring as Testing • Unittests are only run upon deploy, not periodically • You should have HealthChecks for all your applications, that are run upon deploy and then periodically • Have error inducing functionality to test your error detection functionality
  • 25. Storage & Data Processing • PostgreSQL vs. MySQL • MySQL vs. Cassandra – The Immutable state of MySQL • Hadoop/Hive • Splunk • Lucene/Solr • RabbitMQ
  • 26. Storage Latencies • Memcached: <1 ms (mainly network latency) • Cassandra: ~1 ms • Oracle for simple queries: 1-5 ms • DynamoDB: ~5 ms • SimpleDB: >10 ms
  • 27. Cloud Computing AWS: Hetzner EC2 Large instance (4 EC2 Quad-Core i7-2600, 16 GB compute units/virtual cores, RAM, 2 x 3 TB disk: 7.5 GB RAM memory, 850 GB • 50 euro/month storage) • On-demand: 250 euro/month • Reserved: 600 euro + 35 euro/month • Spot: 15 euro/month
  • 28. Amazon Web Services • Cloudfront ($0.12 / GB / month) • Elastic MapReduce • DynamoDB • S3 ($0.12 / GB / month) • Glacier ($0.01 / GB / month) • Mechanical Turk • Alexa Web Information Service
  • 30.
  • 31. Estimates in Software Development • 1 minute -> 2 hours (120x) • 1 hour -> 2 days (48x) • 1 day -> 2 weeks (14x) • 1 week -> 2 months (8x) • 1 month -> 2 years (24x) • 1 year -> forever (infinity)
  • 32. Programming in Startups • Code is Liability • Supporting Throw Away Software • Don't be afraid of the if statement! • Develop mainly in master branch • Use feature toggles
  • 33. Availability • 99% ~ 3 days • 99.9% ~ 9 hours • 99.99% ~ 1 hour • 99.999% ~ 5 minutes of downtime/year! Optimize also for MTTR not just MTBF!
  • 34. Unittests • A Unittest should take at most 10ms to Run • 1054 unittests covering Zemanta's code • Create mock-ups! Don't do integration testing with unittests!
  • 35. Principles of Software Documentation 1. Source code and running services are the ultimate documentation! 2. No documentation is much much better than misleading/outdated documentation! 3. Out of sight, out of mind! Documentation should be close to the source code and the running services! 4. Document only what’s absolutely necessary (data structures, development environment setup, release and deployment procedures) 5. Documentation should be part of company culture and engineering pride!
  • 36. Take Home Message • The core business of startups is searching for a repeatable and scalable business model, not technology! • Measure Anything, Measure Everything • Do Code Reviews! • Be stupid!