2. My Background Bachelors, Masters in Computer Science from MIT, HBS ’09 Most of my career @ Microsoft Software engineering at SQL Server Managed product development and later product marketing for Dynamics CRM (enterprise software) Now VC @ Fairhaven Capital 2
10. Waterfall vs. Lean – striking the right balance Know what you’re building - coding is still hard and developer time is valuable (!) Instead of writing long specs, aim for high level requirements and more wireframes Prototype - test in small groups (alpha) to gather feedback and iterate Managing bugs and quality pre-release is still important – have a triage process Leverage existing software tools and platforms to launch your product quickly – don’t re-invent the wheel Shift more towards a waterfall method when working with an outsourced development shop (more on this later…) 7
17. Spec Example: Facebook Scenario: Joe is a college student and wants to stay on top of the latest happenings of his college friends. He first looks up his friends by their email address, then adds them, and once he’s connected checks regularly for their status updates. Use cases Add friends Approve friend request Monitor newsfeed Comment on newsfeed item Requirements Must be able to look up people by email, by name, by school, etc. Must be able to add friends (send invite to connect) Must allow user to approve (or disapprove) of a request to friend Must allow users to update their status with text, picture, location, etc Newsfeed must be cached and updated on increments of X minutes Etc etc 10
18. User Flow Diagram 11 Quick way to define user experience, get a sense of complexity Forces you to flush out the product logic and flow Can be created with MS Visio, Lucid Chart (online)
19. Storyboard (wireframe) 12 Keep it low-fidelity! Use for brainstorming, debating functionality, UI design iterations Google Search 2. Click search 1. Type in search term
20. Spec drives dev, test, marketing 13 Architecture / dev design Time/effort estimates Code + documentation Dev QA plan / test cases Performance / scalability Security Spec Test Scenarios Use cases Features Prioritization UX wireframes Product demo video Product positioning Marketing collateral Support documentation Marketing
21. Spec Best Practices Stay organized: each scenario contains multiple use cases, each use case contains multiple requirements. Prioritize (high, med, low) all scenarios, use cases, and requirements because it always takes longer than you think to implement features, and you will need to cut features to make deadlines. When cutting, important to keep track of dependencies. Don’t forget requirements that are outside of explicit use cases, i.e. security, scalability. Detailed specs are very helpful when it comes to managing outsourced development. Make sure code is well-documented, if possible ask for developer design docs also. 14
22. Bug curve 15 QA to a point, then release and fix/iterate. SaaS/agile - release earlier and more often. Enterprise – need a certain level of quality Consumer – users can do some of the testing, fix rapidly # of Bugs Fix/iterate Feature Complete Release Time