SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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.
 
2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introduction2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introductionMike Marin
 
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
 
TAPUniversity - Use Case Driven Vendor Selection
TAPUniversity - Use Case Driven Vendor SelectionTAPUniversity - Use Case Driven Vendor Selection
TAPUniversity - Use Case Driven Vendor SelectionDave Kohrell
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katochIBM
 
Traffic-Light-Tool presentation 2010
Traffic-Light-Tool presentation 2010Traffic-Light-Tool presentation 2010
Traffic-Light-Tool presentation 2010michir
 
Exploiting Tools for Faster, More Acceptable Process Improvement Initiatives
Exploiting Tools for Faster, More Acceptable Process Improvement InitiativesExploiting Tools for Faster, More Acceptable Process Improvement Initiatives
Exploiting Tools for Faster, More Acceptable Process Improvement InitiativesMahesh Singh
 
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
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...Compuware APM
 
Cstd presentation final
Cstd presentation finalCstd presentation final
Cstd presentation finalMary Kyer
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Chris Sterling
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application ManagementCAST
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraIBM
 
BPM Model Preserving Strategy vs. Model Transforming Strategy
BPM Model Preserving Strategy vs. Model Transforming StrategyBPM Model Preserving Strategy vs. Model Transforming Strategy
BPM Model Preserving Strategy vs. Model Transforming StrategyKeith Swenson
 
Arrow ECS Partner Jam - PureSystems - William Burns
Arrow ECS Partner Jam - PureSystems - William BurnsArrow ECS Partner Jam - PureSystems - William Burns
Arrow ECS Partner Jam - PureSystems - William BurnsArrow ECS UK
 

Tendances (19)

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
 
2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introduction2009 11-04 mm (carson, california - csu-dh) bpm introduction
2009 11-04 mm (carson, california - csu-dh) bpm introduction
 
Agile.usability
Agile.usabilityAgile.usability
Agile.usability
 
Ux policy primax
Ux policy primaxUx policy primax
Ux policy primax
 
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
 
[StepTalks2011] Agility @ Scale - Rien Schot
[StepTalks2011] Agility @ Scale - Rien Schot[StepTalks2011] Agility @ Scale - Rien Schot
[StepTalks2011] Agility @ Scale - Rien Schot
 
TAPUniversity - Use Case Driven Vendor Selection
TAPUniversity - Use Case Driven Vendor SelectionTAPUniversity - Use Case Driven Vendor Selection
TAPUniversity - Use Case Driven Vendor Selection
 
Agile development
Agile developmentAgile development
Agile development
 
2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch2 trasnformation design_patterns-sandeep_katoch
2 trasnformation design_patterns-sandeep_katoch
 
Traffic-Light-Tool presentation 2010
Traffic-Light-Tool presentation 2010Traffic-Light-Tool presentation 2010
Traffic-Light-Tool presentation 2010
 
Exploiting Tools for Faster, More Acceptable Process Improvement Initiatives
Exploiting Tools for Faster, More Acceptable Process Improvement InitiativesExploiting Tools for Faster, More Acceptable Process Improvement Initiatives
Exploiting Tools for Faster, More Acceptable Process Improvement Initiatives
 
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
 
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
IDC & Gomez Webinar --Best Practices: Protect Your Online Revenue Through Web...
 
Cstd presentation final
Cstd presentation finalCstd presentation final
Cstd presentation final
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011
 
Software Measurement for Lean Application Management
Software Measurement for Lean Application ManagementSoftware Measurement for Lean Application Management
Software Measurement for Lean Application Management
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandra
 
BPM Model Preserving Strategy vs. Model Transforming Strategy
BPM Model Preserving Strategy vs. Model Transforming StrategyBPM Model Preserving Strategy vs. Model Transforming Strategy
BPM Model Preserving Strategy vs. Model Transforming Strategy
 
Arrow ECS Partner Jam - PureSystems - William Burns
Arrow ECS Partner Jam - PureSystems - William BurnsArrow ECS Partner Jam - PureSystems - William Burns
Arrow ECS Partner Jam - PureSystems - William Burns
 

En vedette

NIPS2009: Understand Visual Scenes - Part 2
NIPS2009: Understand Visual Scenes - Part 2NIPS2009: Understand Visual Scenes - Part 2
NIPS2009: Understand Visual Scenes - Part 2zukun
 
Iccv2009 recognition and learning object categories p2 c01 - recognizing a ...
Iccv2009 recognition and learning object categories   p2 c01 - recognizing a ...Iccv2009 recognition and learning object categories   p2 c01 - recognizing a ...
Iccv2009 recognition and learning object categories p2 c01 - recognizing a ...zukun
 
CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...
CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...
CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...zukun
 
Tuto cvpr part1
Tuto cvpr part1Tuto cvpr part1
Tuto cvpr part1zukun
 
NIPS2008: tutorial: statistical models of visual images
NIPS2008: tutorial: statistical models of visual imagesNIPS2008: tutorial: statistical models of visual images
NIPS2008: tutorial: statistical models of visual imageszukun
 
ECCV2010: distance function and metric learning part 2
ECCV2010: distance function and metric learning part 2ECCV2010: distance function and metric learning part 2
ECCV2010: distance function and metric learning part 2zukun
 

En vedette (6)

NIPS2009: Understand Visual Scenes - Part 2
NIPS2009: Understand Visual Scenes - Part 2NIPS2009: Understand Visual Scenes - Part 2
NIPS2009: Understand Visual Scenes - Part 2
 
Iccv2009 recognition and learning object categories p2 c01 - recognizing a ...
Iccv2009 recognition and learning object categories   p2 c01 - recognizing a ...Iccv2009 recognition and learning object categories   p2 c01 - recognizing a ...
Iccv2009 recognition and learning object categories p2 c01 - recognizing a ...
 
CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...
CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...
CVPR2010: Learnings from founding a computer vision startup: Chapter 1, 2: Wh...
 
Tuto cvpr part1
Tuto cvpr part1Tuto cvpr part1
Tuto cvpr part1
 
NIPS2008: tutorial: statistical models of visual images
NIPS2008: tutorial: statistical models of visual imagesNIPS2008: tutorial: statistical models of visual images
NIPS2008: tutorial: statistical models of visual images
 
ECCV2010: distance function and metric learning part 2
ECCV2010: distance function and metric learning part 2ECCV2010: distance function and metric learning part 2
ECCV2010: distance function and metric learning part 2
 

Similaire à CVPR2010: Learnings from founding a computer vision startup: Chapter 8: Software Engineering: doing research and delivering a product

Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile ProjectsRam Srivastava
 
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
 
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
 
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
 
The CIO Innovation Toolkit | G2iX
The CIO Innovation Toolkit | G2iXThe CIO Innovation Toolkit | G2iX
The CIO Innovation Toolkit | G2iXg2ix
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
Reality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsReality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsCognizant
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsBjörn Jónsson
 

Similaire à CVPR2010: Learnings from founding a computer vision startup: Chapter 8: Software Engineering: doing research and delivering a product (20)

Why Zachman Certification
Why Zachman CertificationWhy Zachman Certification
Why Zachman Certification
 
Estimation Agile Projects
Estimation Agile ProjectsEstimation Agile Projects
Estimation Agile Projects
 
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
 
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
 
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
 
The CIO Innovation Toolkit | G2iX
The CIO Innovation Toolkit | G2iXThe CIO Innovation Toolkit | G2iX
The CIO Innovation Toolkit | G2iX
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
Reality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsReality checking agile's architectural inner workings
Reality checking agile's architectural inner workings
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methods
 

Plus de zukun

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009zukun
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVzukun
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Informationzukun
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statisticszukun
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibrationzukun
 
Brunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionBrunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionzukun
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluationzukun
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-softwarezukun
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptorszukun
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectorszukun
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-introzukun
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video searchzukun
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video searchzukun
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video searchzukun
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learningzukun
 
Advances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionAdvances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionzukun
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick startzukun
 
EM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysisEM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysiszukun
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structureszukun
 
Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities zukun
 

Plus de zukun (20)

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCV
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Information
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statistics
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibration
 
Brunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionBrunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer vision
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluation
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-software
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptors
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectors
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-intro
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video search
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video search
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
 
Advances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionAdvances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer vision
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick start
 
EM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysisEM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysis
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structures
 
Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities
 

Dernier

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 

Dernier (20)

INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 

CVPR2010: Learnings from founding a computer vision startup: Chapter 8: Software Engineering: doing research and delivering a product

  • 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