SlideShare ist ein Scribd-Unternehmen logo
1 von 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!

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Kürzlich hochgeladen (20)

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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

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!