SlideShare a Scribd company logo
1 of 32
Download to read offline
8. Software Engineering
Learnings from founding a Computer Vision Startup




                      Research vs Developing a Product
Learnings from founding a Computer Vision Startup


                                                       Challenge 1: Quality


                                                                       Stability
                                                                       Modularity
                                                                       Robustness
                                                                       Flexibility



                                                    Flickr: sbisson
Learnings from founding a Computer Vision Startup


                                                       Challenge 2: Time to market




                                                                         Effort Estimation
                                                                         Effort vs Reward
                                                                         Priorization

                                                    Flickr: Kristian M
                                                                         Often in direct conflict with quality
Learnings from founding a Computer Vision Startup


                                                       Challenge 3: Changing requirements




                                                                       A new competitor
                                                                       Customer feedback
                                                    Flickr: 416style   A new technology
Learnings from founding a Computer Vision Startup




Flickr: geoffeg
                                                     Challenge 4: User Experience
Learnings from founding a Computer Vision Startup




Flickr: royskeane
                                                      Challenge 5: Efficient Teamwork
Learnings from founding a Computer Vision Startup


                                                    Summary Challenges

                                                                           Time To
                                                                           Market
                                                              Quality

                                                                                Efficient
                                                            Changing           Teamwork
                                                           Requirements
                                                                           User
                                                                        Experience
Learnings from founding a Computer Vision Startup


                                                    Running the project

                                                                  Time To Market
                                                        Quality                        Needed: a process that is

                                                     Changing
                                                                            Efficient
                                                                           Teamwork
                                                                                       - Flexible (Changing Requirements)
                                                    Requirements
                                                                                       - Quickly leads to results (Time to Market)
                                                              User Experience
                                                                                       - Little overhead (Efficient teamwork)
                                                                                       - Shows problems early on
                                                                                         (Time to Market and Quality)
Learnings from founding a Computer Vision Startup


                                                    Traditional way of running software projects


                                                                                        What if requirements
                                                                                        change halfway
                                                                                        through project?


                                                                                        What if unexpected
                                                                                        issues arise?

                                                           waterfall model
                                                            (image source: Wikipedia)
Learnings from founding a Computer Vision Startup


                                                    A better way to run software projects
                                                                                               Do short iterations with all
                                                                                               phases: iterative process
                                                     Iteration 1


                                                                                               Examples:
                                                                                               - Scrum
                                                                   Iteration 2                 - RUP (Rational Unified Process)
                                                                                               - ...


                                                                                 Iteration 3
Scrum et al. (Google Tech Talk)
Learnings from founding a Computer Vision Startup

                                                                Ken Schwaber




                                                    http://www.youtube.com/watch?v=IyNPeTn8fpo
Learnings from founding a Computer Vision Startup


                                        Scrum
Learnings from founding a Computer Vision Startup


                                                    Backlogs

                                                     Requirements written as “User Stories”
                                                        Example: “iPhone app user can log-in with username and
                                                        password, in order to log history of requests”
                                                     Effort for each story is estimated (how, see later)
                                                     Prioritized list of stories in the Product Backlog. Re-prioritize
                                                     regularly.
                                                     For each sprint, just select top-n stories to Sprint Backlog
Learnings from founding a Computer Vision Startup


                                                    Sprints
                                                    Sprint = Iterations (2-4 weeks)
                                                    Meetings
                                                      Sprint Planning Meeting
                                                      -> Team decides how much it can do in
                                                      the Sprint (not the manager).
                                                      Set a goal.

                                                      Daily Scrum
                                                      15 minutes max (“timeboxed”).
                                                      Each team member:
                                                      What I am working on now? / what’s next? / problems?
                                                      Check progress on burndown chart. If needed drop tasks.

                                                      Sprint Review Meeting
Learnings from founding a Computer Vision Startup




                                                     NO INTERRUPTIONS DURING SPRINT
                                                                                           why??



                                                            “People need uninterrupted time to get things done”
                                                                    http://gettingreal.37signals.com/ch07_Alone_Time.php



                                                    With programmers, it's especially hard. Productivity depends on being
                                                     able to juggle a lot of little details in short term memory all at once
                                                                  http://www.joelonsoftware.com/articles/fog0000000068.html
Learnings from founding a Computer Vision Startup


                                                    Estimations

                                                    Product Backlog: Stories are estimated roughly
                                                    Unit: Story points. A measure of “size” / ”complexity”
                                                    Ex 1: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100
                                                    Ex 2: 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89
                                                    Team estimates using Planning Poker
                                                    Sprint Backlog: Each story gets assigned
                                                    detailed tasks (in hours) at Sprint Planning
                                                    Longterm planning: velocity = story points / sprint
                                                    “we need about 3 sprints to finish this module at our current velocity”
Learnings from founding a Computer Vision Startup


                                                    Why a process at all? Why Scrum?
                                                    You need some process, otherwise you get lost. At the
                                                    latest with more than 5 people more than 5 customers.

                                                    Scrum doesn’t get in the way. Simple. Lightweight.
                                                    “Advanced common sense” *

                                                    Perfect for startups
                                                     * David Allen, in order to describe “Getting Things Done”
Learnings from founding a Computer Vision Startup




http://agilemanifesto.org/
                                                        Scrum is part of Agile
Learnings from founding a Computer Vision Startup

                                                    More Agile Practices
                                                    (or: more common sense)
                                                                                       Testing / Test Driven Development
                                                                  Time To Market
                                                        Quality

                                                                                       Code refactoring
                                                                            Efficient
                                                     Changing              Teamwork
                                                    Requirements

                                                              User Experience
                                                                                       Continuous Integration


                                                                                       Pair Programming
Learnings from founding a Computer Vision Startup


                                                    If you don’t like Agile ...




                                                        http://www.joelonsoftware.com/articles/fog0000000043.html
Learnings from founding a Computer Vision Startup


                                                    Consolidated must-haves	

                                                                                   Subversion: http://subversion.tigris.org/
                                                     Source control (no-brainer)
                                                                                   Git: http://git-scm.com/


                                                                                   Google Test (http://code.google.com/p/googletest/)
                                                     Automated Testing
                                                                                   Often part of good frameworks (e.g. Rails)

                                                                                   CDash http://www.cdash.org/
                                                     Continuous Integration
                                                                                   Cruise Control http://cruisecontrolrb.thoughtworks.com/
                                                     Automated daily builds
                                                                                   (Ruby only)

                                                                                   Just give your product to a few random people (in person)
                                                    Hallway Usability Testing
                                                                                   and observe them using it (before release)
Learnings from founding a Computer Vision Startup


                                                    On Deployment
                                                    - We have 20 million items indexed. Need multiple machines to keep index
                                                    - What if we have many requests, so we need to replicate the whole system

                                                    - Buying and maintaining so much hardware is expensive

                                                    Amazon Web Services (“Cloud Computing”) to the rescue
Learnings from founding a Computer Vision Startup


                                                    On Outsourcing Work
                                                    Do not outsource core competence

                                                    Overhead from time difference, communication,
                                                    project management over distance, travel

                                                    Graphic design, administration etc. are things to
                                                    outsource first (www.elance.com)
What is special about Vision?
         In Terms of Engineering
Learnings from founding a Computer Vision Startup


                                                    What’s special about Vision (Consumer)
                                                    Software is a lot harder to do than e.g. a web-community
                                                    in PHP (means you need more money also)

                                                    Lot’s of uncertainty and complexity

                                                    Still early stage of technology

                                                    Hard to find good specialists
How we did it
Learnings from founding a Computer Vision Startup


                                                    How we did it
                                                    - Two Scrum-Teams in parallel
                                                    - Use of Story points
                                                    - 3-week sprints
                                                    - 2-day break between sprints

                                                    Ec2, Trac + Agilo, C++,
                                                    Rails, Googletest,
                                                    SVN, CDash, Reviewboard

                                                    In-house: Vision, Rails, iPhone
                                                    Outsourced: Android, Symbian etc.
Learnings from founding a Computer Vision Startup


                                                    Challenges we still face
                                                    User stories for system
                                                    related topics

                                                    Uncertainty in Computer
                                                    Vision related stories/tasks

                                                    Testing can still be
                                                    improved
Learnings from founding a Computer Vision Startup


                                                    Polar Rose: How we did it
                                                    - Two teams (infrastructure and vision)
                                                    - Sys admin & dedicated Q/A tester
                                                    - 2-3 week sprints
                                                    - daily and weekly standup Skype meetings

                                                    Ec2, S3, C++, Python
                                                    Java, Jira, Confluence, WordPress
                                                    SVN, Bamboo

                                                    In-house: Vision, Infrastructure, Web, iPhone/iPad, Android
                                                    outsourced: Symbian, small projects/prototypes
Q&A
Learnings from founding a Computer Vision Startup


                                                    Resources II
                                                    Ken Schwaber Scrum          http://www.youtube.com/watch?v=IyNPeTn8fpo


                                                    Agile Manifesto             http://agilemanifesto.org/

                                                                                http://www.joelonsoftware.com/articles/
                                                    The Joel Test
                                                                                fog0000000043.html

                                                    Wikipedia: Scrum            http://en.wikipedia.org/wiki/Scrum_(development)


                                                    Wikipedia: Planning Poker   http://en.wikipedia.org/wiki/Planning_poker

More Related Content

What's hot

The Secret Sauce for Innovation (longform)
The Secret Sauce for Innovation (longform) The Secret Sauce for Innovation (longform)
The Secret Sauce for Innovation (longform) Laszlo Szalvay
 
Bv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyBv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyLeanAgileTraining
 
UX Basics Workshop at General Assembly London by Tricia Okin
UX Basics Workshop at General Assembly London by Tricia OkinUX Basics Workshop at General Assembly London by Tricia Okin
UX Basics Workshop at General Assembly London by Tricia OkinTricia Okin
 
Intro to BV Engineering Montreal
Intro to BV Engineering MontrealIntro to BV Engineering Montreal
Intro to BV Engineering MontrealLeanAgileTraining
 
Mobile Prototyping Essentials
Mobile Prototyping EssentialsMobile Prototyping Essentials
Mobile Prototyping EssentialsRachel Hinman
 
The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform) The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform) Laszlo Szalvay
 
Why Design Matters - P&G Keynote
Why Design Matters - P&G KeynoteWhy Design Matters - P&G Keynote
Why Design Matters - P&G KeynotePreston Smalley
 
The Lean within Scrum
The Lean within ScrumThe Lean within Scrum
The Lean within ScrumOctav Druta
 
Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013
Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013
Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013Ariadna Font Llitjos
 
It Role State Exploration 7 Nov Illumine
It Role State Exploration 7 Nov  IllumineIt Role State Exploration 7 Nov  Illumine
It Role State Exploration 7 Nov Illumineibecome
 
Joe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumJoe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumSFA
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thingAgileOnTheBeach
 
13 good ideas_4_webvideos
13 good ideas_4_webvideos13 good ideas_4_webvideos
13 good ideas_4_webvideosPaul Cameron
 
Overcoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in GovernmentOvercoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in Governmentjcichelli
 
Effective prototyping
Effective prototypingEffective prototyping
Effective prototypingEverett McKay
 

What's hot (19)

The Secret Sauce for Innovation (longform)
The Secret Sauce for Innovation (longform) The Secret Sauce for Innovation (longform)
The Secret Sauce for Innovation (longform)
 
B+W Letter Working Through Screens Book
B+W Letter Working Through Screens BookB+W Letter Working Through Screens Book
B+W Letter Working Through Screens Book
 
Color Letter Working Through Screens Book
Color Letter Working Through Screens BookColor Letter Working Through Screens Book
Color Letter Working Through Screens Book
 
Bv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyBv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.Key
 
UX Basics Workshop at General Assembly London by Tricia Okin
UX Basics Workshop at General Assembly London by Tricia OkinUX Basics Workshop at General Assembly London by Tricia Okin
UX Basics Workshop at General Assembly London by Tricia Okin
 
Intro to BV Engineering Montreal
Intro to BV Engineering MontrealIntro to BV Engineering Montreal
Intro to BV Engineering Montreal
 
Mobile Prototyping Essentials
Mobile Prototyping EssentialsMobile Prototyping Essentials
Mobile Prototyping Essentials
 
The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform) The Secret Sauce for Innovation (shortform)
The Secret Sauce for Innovation (shortform)
 
Why Design Matters - P&G Keynote
Why Design Matters - P&G KeynoteWhy Design Matters - P&G Keynote
Why Design Matters - P&G Keynote
 
The Lean within Scrum
The Lean within ScrumThe Lean within Scrum
The Lean within Scrum
 
BIM for Conceptual Estimating
BIM for Conceptual EstimatingBIM for Conceptual Estimating
BIM for Conceptual Estimating
 
Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013
Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013
Designing an MVP that works for users (2 and 1/2 hours) @Lean UX NYC 2013
 
Vww 0309 Et
Vww 0309 EtVww 0309 Et
Vww 0309 Et
 
It Role State Exploration 7 Nov Illumine
It Role State Exploration 7 Nov  IllumineIt Role State Exploration 7 Nov  Illumine
It Role State Exploration 7 Nov Illumine
 
Joe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumJoe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within Scrum
 
First build the right thing
First build the right thingFirst build the right thing
First build the right thing
 
13 good ideas_4_webvideos
13 good ideas_4_webvideos13 good ideas_4_webvideos
13 good ideas_4_webvideos
 
Overcoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in GovernmentOvercoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in Government
 
Effective prototyping
Effective prototypingEffective prototyping
Effective prototyping
 

Similar to Learnings from founding a Computer Vision startup: Chapter 8 Software Engineering

Private Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure AgilePrivate Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure AgileAbiquo, Inc.
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile ProjectsRam Srivastava
 
Avoiding the 11th Hour Sh*storm at SxSW
Avoiding the 11th Hour Sh*storm at SxSWAvoiding the 11th Hour Sh*storm at SxSW
Avoiding the 11th Hour Sh*storm at SxSWKaren McGrane
 
Beyond the Scrum - I
Beyond the Scrum - IBeyond the Scrum - I
Beyond the Scrum - IAdam Monago
 
Developing Successful Content Management Solutions
Developing Successful Content Management SolutionsDeveloping Successful Content Management Solutions
Developing Successful Content Management SolutionsKaren McGrane
 
Eliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud IntegrationEliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud IntegrationDarren Cunningham
 
SIM presentation Oct 9 2012
SIM presentation Oct 9 2012SIM presentation Oct 9 2012
SIM presentation Oct 9 2012sdlc_coach
 
How To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyHow To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyRoopa Nadkarni
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyIBM
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyIBM
 
Bhavish Kumar Getting Serious About Enterprise Architecture V1.0
Bhavish Kumar Getting Serious About Enterprise Architecture V1.0Bhavish Kumar Getting Serious About Enterprise Architecture V1.0
Bhavish Kumar Getting Serious About Enterprise Architecture V1.0Bhavish Kumar Madurai
 
Linkroad Corporate Snapshot
Linkroad Corporate SnapshotLinkroad Corporate Snapshot
Linkroad Corporate Snapshotmelvinyou
 
Systems Engineering - a smarter way
Systems Engineering - a smarter waySystems Engineering - a smarter way
Systems Engineering - a smarter wayMark Borowski
 
SAP BPM Jump Start to Value Package
SAP BPM Jump Start to Value PackageSAP BPM Jump Start to Value Package
SAP BPM Jump Start to Value PackageIncture Technologies
 
New Zealand Premiere! A first look at Rational Insight
New Zealand Premiere! A first look at Rational InsightNew Zealand Premiere! A first look at Rational Insight
New Zealand Premiere! A first look at Rational InsightVincent Kwon
 

Similar to Learnings from founding a Computer Vision startup: Chapter 8 Software Engineering (20)

Private Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure AgilePrivate Clouds for Developers: Make Your Infrastructure Agile
Private Clouds for Developers: Make Your Infrastructure Agile
 
Why Zachman Certification
Why Zachman CertificationWhy Zachman Certification
Why Zachman Certification
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile Projects
 
Avoiding the 11th Hour Sh*storm at SxSW
Avoiding the 11th Hour Sh*storm at SxSWAvoiding the 11th Hour Sh*storm at SxSW
Avoiding the 11th Hour Sh*storm at SxSW
 
Software Lifecycle
Software LifecycleSoftware Lifecycle
Software Lifecycle
 
Beyond the Scrum - I
Beyond the Scrum - IBeyond the Scrum - I
Beyond the Scrum - I
 
Developing Successful Content Management Solutions
Developing Successful Content Management SolutionsDeveloping Successful Content Management Solutions
Developing Successful Content Management Solutions
 
Eliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud IntegrationEliminate SaaS Sprawl with Cloud Integration
Eliminate SaaS Sprawl with Cloud Integration
 
SIM presentation Oct 9 2012
SIM presentation Oct 9 2012SIM presentation Oct 9 2012
SIM presentation Oct 9 2012
 
How To Make It Real - Hayden Lindsey
How To Make It Real - Hayden LindseyHow To Make It Real - Hayden Lindsey
How To Make It Real - Hayden Lindsey
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
 
Bhavish Kumar Getting Serious About Enterprise Architecture V1.0
Bhavish Kumar Getting Serious About Enterprise Architecture V1.0Bhavish Kumar Getting Serious About Enterprise Architecture V1.0
Bhavish Kumar Getting Serious About Enterprise Architecture V1.0
 
GenericFrame Prototyping Tool
GenericFrame Prototyping ToolGenericFrame Prototyping Tool
GenericFrame Prototyping Tool
 
Linkroad Corporate Snapshot
Linkroad Corporate SnapshotLinkroad Corporate Snapshot
Linkroad Corporate Snapshot
 
Systems Engineering - a smarter way
Systems Engineering - a smarter waySystems Engineering - a smarter way
Systems Engineering - a smarter way
 
About scrum
About scrumAbout scrum
About scrum
 
SAP BPM Jump Start to Value Package
SAP BPM Jump Start to Value PackageSAP BPM Jump Start to Value Package
SAP BPM Jump Start to Value Package
 
New Zealand Premiere! A first look at Rational Insight
New Zealand Premiere! A first look at Rational InsightNew Zealand Premiere! A first look at Rational Insight
New Zealand Premiere! A first look at Rational Insight
 
Lean UX
Lean UXLean UX
Lean UX
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Learnings from founding a Computer Vision startup: Chapter 8 Software Engineering

  • 2. Learnings from founding a Computer Vision Startup Research vs Developing a Product
  • 3. Learnings from founding a Computer Vision Startup Challenge 1: Quality Stability Modularity Robustness Flexibility Flickr: sbisson
  • 4. Learnings from founding a Computer Vision Startup Challenge 2: Time to market Effort Estimation Effort vs Reward Priorization Flickr: Kristian M Often in direct conflict with quality
  • 5. Learnings from founding a Computer Vision Startup Challenge 3: Changing requirements A new competitor Customer feedback Flickr: 416style A new technology
  • 6. Learnings from founding a Computer Vision Startup Flickr: geoffeg Challenge 4: User Experience
  • 7. Learnings from founding a Computer Vision Startup Flickr: royskeane Challenge 5: Efficient Teamwork
  • 8. Learnings from founding a Computer Vision Startup Summary Challenges Time To Market Quality Efficient Changing Teamwork Requirements User Experience
  • 9. Learnings from founding a Computer Vision Startup Running the project Time To Market Quality Needed: a process that is Changing Efficient Teamwork - Flexible (Changing Requirements) Requirements - Quickly leads to results (Time to Market) User Experience - Little overhead (Efficient teamwork) - Shows problems early on (Time to Market and Quality)
  • 10. Learnings from founding a Computer Vision Startup Traditional way of running software projects What if requirements change halfway through project? What if unexpected issues arise? waterfall model (image source: Wikipedia)
  • 11. Learnings from founding a Computer Vision Startup A better way to run software projects Do short iterations with all phases: iterative process Iteration 1 Examples: - Scrum Iteration 2 - RUP (Rational Unified Process) - ... Iteration 3
  • 12. Scrum et al. (Google Tech Talk) Learnings from founding a Computer Vision Startup Ken Schwaber http://www.youtube.com/watch?v=IyNPeTn8fpo
  • 13. Learnings from founding a Computer Vision Startup Scrum
  • 14. Learnings from founding a Computer Vision Startup Backlogs Requirements written as “User Stories” Example: “iPhone app user can log-in with username and password, in order to log history of requests” Effort for each story is estimated (how, see later) Prioritized list of stories in the Product Backlog. Re-prioritize regularly. For each sprint, just select top-n stories to Sprint Backlog
  • 15. Learnings from founding a Computer Vision Startup Sprints Sprint = Iterations (2-4 weeks) Meetings Sprint Planning Meeting -> Team decides how much it can do in the Sprint (not the manager). Set a goal. Daily Scrum 15 minutes max (“timeboxed”). Each team member: What I am working on now? / what’s next? / problems? Check progress on burndown chart. If needed drop tasks. Sprint Review Meeting
  • 16. Learnings from founding a Computer Vision Startup NO INTERRUPTIONS DURING SPRINT why?? “People need uninterrupted time to get things done” http://gettingreal.37signals.com/ch07_Alone_Time.php With programmers, it's especially hard. Productivity depends on being able to juggle a lot of little details in short term memory all at once http://www.joelonsoftware.com/articles/fog0000000068.html
  • 17. Learnings from founding a Computer Vision Startup Estimations Product Backlog: Stories are estimated roughly Unit: Story points. A measure of “size” / ”complexity” Ex 1: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100 Ex 2: 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 Team estimates using Planning Poker Sprint Backlog: Each story gets assigned detailed tasks (in hours) at Sprint Planning Longterm planning: velocity = story points / sprint “we need about 3 sprints to finish this module at our current velocity”
  • 18. Learnings from founding a Computer Vision Startup Why a process at all? Why Scrum? You need some process, otherwise you get lost. At the latest with more than 5 people more than 5 customers. Scrum doesn’t get in the way. Simple. Lightweight. “Advanced common sense” * Perfect for startups * David Allen, in order to describe “Getting Things Done”
  • 19. Learnings from founding a Computer Vision Startup http://agilemanifesto.org/ Scrum is part of Agile
  • 20. Learnings from founding a Computer Vision Startup More Agile Practices (or: more common sense) Testing / Test Driven Development Time To Market Quality Code refactoring Efficient Changing Teamwork Requirements User Experience Continuous Integration Pair Programming
  • 21. Learnings from founding a Computer Vision Startup If you don’t like Agile ... http://www.joelonsoftware.com/articles/fog0000000043.html
  • 22. Learnings from founding a Computer Vision Startup Consolidated must-haves Subversion: http://subversion.tigris.org/ Source control (no-brainer) Git: http://git-scm.com/ Google Test (http://code.google.com/p/googletest/) Automated Testing Often part of good frameworks (e.g. Rails) CDash http://www.cdash.org/ Continuous Integration Cruise Control http://cruisecontrolrb.thoughtworks.com/ Automated daily builds (Ruby only) Just give your product to a few random people (in person) Hallway Usability Testing and observe them using it (before release)
  • 23. Learnings from founding a Computer Vision Startup On Deployment - We have 20 million items indexed. Need multiple machines to keep index - What if we have many requests, so we need to replicate the whole system - Buying and maintaining so much hardware is expensive Amazon Web Services (“Cloud Computing”) to the rescue
  • 24. Learnings from founding a Computer Vision Startup On Outsourcing Work Do not outsource core competence Overhead from time difference, communication, project management over distance, travel Graphic design, administration etc. are things to outsource first (www.elance.com)
  • 25. What is special about Vision? In Terms of Engineering
  • 26. Learnings from founding a Computer Vision Startup What’s special about Vision (Consumer) Software is a lot harder to do than e.g. a web-community in PHP (means you need more money also) Lot’s of uncertainty and complexity Still early stage of technology Hard to find good specialists
  • 28. Learnings from founding a Computer Vision Startup How we did it - Two Scrum-Teams in parallel - Use of Story points - 3-week sprints - 2-day break between sprints Ec2, Trac + Agilo, C++, Rails, Googletest, SVN, CDash, Reviewboard In-house: Vision, Rails, iPhone Outsourced: Android, Symbian etc.
  • 29. Learnings from founding a Computer Vision Startup Challenges we still face User stories for system related topics Uncertainty in Computer Vision related stories/tasks Testing can still be improved
  • 30. Learnings from founding a Computer Vision Startup Polar Rose: How we did it - Two teams (infrastructure and vision) - Sys admin & dedicated Q/A tester - 2-3 week sprints - daily and weekly standup Skype meetings Ec2, S3, C++, Python Java, Jira, Confluence, WordPress SVN, Bamboo In-house: Vision, Infrastructure, Web, iPhone/iPad, Android outsourced: Symbian, small projects/prototypes
  • 31. Q&A
  • 32. Learnings from founding a Computer Vision Startup Resources II Ken Schwaber Scrum http://www.youtube.com/watch?v=IyNPeTn8fpo Agile Manifesto http://agilemanifesto.org/ http://www.joelonsoftware.com/articles/ The Joel Test fog0000000043.html Wikipedia: Scrum http://en.wikipedia.org/wiki/Scrum_(development) Wikipedia: Planning Poker http://en.wikipedia.org/wiki/Planning_poker