Friday, March 24, 2017

Entrepreneur training 5: Product Development & Project Management

Product Development & Project Management

This week we talked about all the product development and project management. 
We first answered the following 3 questions:
  • How are companies organized?
  • How do projects get approved & executed?
  • Who does what? To whom?
These are the answers for the 3 above questions:
  • Product manager - the one to connecting the dots, listen to sales, customer, competition. What we are building and why?
  • Project manager - making sure the project, tasks is done, schedule. Is making sure things on schedule. What should be on time?
  • VP of engineering (or R&D) link
  • Architects - Conceiving the idea
  • CTO - look Horizon
  • CFO - financial
  • CEO - glue of all people
Waterfall method - sequential process for software development

Agile method

  • Simple structure, simple rules
  • Whole team communicates every day
  • Delivers in small fixed time intervals
  • Refine, test, see something working, repeat!
  • Reflect & improve your product, plan, process
Figure 1

Waterfall vs Agile

Figure 2
You should get customer feedback fast and make the testing customers as part of the team. But different customers may have different feedback, it is product manager to make the decision. 
Starts with the smallest, cheapest features, and add more features incrementally. In this phase, perfection is the enemy. 
Before dropbox have a product, they did a demo online to get customer feedback, it was a great success, see the demo below:

Don't let the developer as the tester, you really want someone different to test the product. You should have your customer as the first and worst customer. 

Product team roles

  1. Product owner/product manager
  • The primary customer advocate
  • Intimate knowledge of customer needs
  • Defines the product requirements 
  1. Developers
  • Chief Architect/Chief Engineer/CTO (owner of the product)
    • Expert in all of the technologies used in the product
  • Senior Engineers/Technical Leads (owner of the subsystem)
    • SME for their area. Own a module or a subsystem
    • Developers (owner of some codes)
  1. Testers (destructive mind)
  • Chief Test Engineer: sets test strategy
  • First and worst customer for the product
  • Tries to emulate all customer use scenarios
  • Gatekeeper of the releases
alpha release - I have a product but I haven't tested yet. This is not a final product. This is limited to a few testers and you have to talk with them on a weekly basis. 
Beta release - Should be usable by a large number of people. 

Development resources

  1. Break down effort for every subsystem into “byte-sized” (1-2 week)
  • Senior engineers should be able to find tasks they’ve done in the past as a reference for the estimation.
  • Find dependencies between tasks
  • Group features into “sprints” (2-week time-box)
  • This will give you the total number of drops you will need to get to your first release
  • You can add more developers to shorten the delivery time
  • This is just an estimate - typically it will take longer
    • Add reasonable contingency (25% 50%?) to your estimates
  • Decide on ratio of Test Engineers to Developers for your product
    • You will typically need 1 tester for every 2-4 developers in SW
    • GUI-heavy products will require more SQA engineers
    • Developers can also do QA as long as a developer doesn’t test her own code

Tracking development progress

  • Weekly/biweekly sprints
    • timebox: if a feature doesn’t make it to the current drop you push it out to the next sprint
  • Daily standup (10 min)
    • Remove obstacles fast
    • Identify & resolve new dependencies
  • Kanban Board
Micro-management - Tell people how to do it. This is not good
Management is - What to do? And ask people how you will do it?
Management is also gluing people, delegate is really important. Managing and leading, difference. Manager’s job is to break down the elements, and connecting the dots.
Summary 
  • Get customer feedback fast
  • Release frequently
  • Fail fast - always assume you are building the wrong thing
  • Fail frequently

Acknowledgements:

All the materials are from the entrepreneurship class at UC Berkeley taught by Naeem Zafar

1 comment:

  1. Analogica Data is the best Product Development Service Provider in India due to our core competencies in product development. we provide Top Product development Services India.

    ReplyDelete