Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What a Product Manager Needs to Know About Code Quality


Published on

Presentation created by Michael Rutledge, Senior Product Leader for IT Arena conference 2018. Key point is that Product Managers need to take ownership of technical quality in addition to delivering features and customer value. This ownership is becoming more important as more companies have mature products in market which have larger scale and quality demands.

  • Be the first to comment

  • Be the first to like this

What a Product Manager Needs to Know About Code Quality

  1. 1. © 2018 Michael Rutledge What a Product Manager Needs to Know about 1 Code Quality
  2. 2. © 2018 Michael Rutledge HELLO! I’m Mike Rutledge
  3. 3. © 2018 Michael Rutledge § Review the role of Product Manager § Explore downsides of sacrificing quality § Apply learnings to advance the way we manage products § Understand the importance of quality § Equipped to better manage long term health of products § Balance short term & long term value During this session, we will Following the session, you’ll Objectives & Outcomes
  4. 4. © 2018 Michael Rutledge 4 So, why should you care about quality?
  5. 5. © 2018 Michael Rutledge 5 “Quality is the best business plan.” John Lassetter
  6. 6. © 2018 Michael Rutledge 6 Why don’t we care about digital quality & safety?
  7. 7. © 2018 Michael Rutledge 7 What is Product Management? UX / Customer Technology Business Product Management Mind the Product © 2011 Martin Eriksson.
  8. 8. © 2018 Michael Rutledge 8 As a Lean Product Manager… 1) Represent the voice of the customer 2) Set the product vision and strategy 3) Maximize customer value over time 4) Balance short and long term product needs 5) Mange the overall product process – design & execution
  9. 9. © 2018 Michael Rutledge 9 Lessons of the Lean Startup 1 3 2 5 4 Entrepreneurs are Everywhere Entrepreneurship is Management Validated Learning Innovation Accounting Build-Measure-Learn Company takeaways üEmpower Product & Engineering teams üOrganize cross-functionally üTechnology is as a value creator, not cost center üSmall, incremental, measurable changes üCustomer feedback before, during, after feature releases
  10. 10. © 2018 Michael Rutledge 10 Beware the one way flow! UX Technology Business Product Management What to build
  11. 11. © 2018 Michael Rutledge 11 UX Technology Business Product Management How to build Beware the one way flow!
  12. 12. © 2018 Michael Rutledge 12 The more quality is sacrificed, the slower teams go Time struggling with complexity and debt Time available for new feature development
  13. 13. © 2018 Michael Rutledge 13 Mentality for growth, not for quality Sales Time Introductory Stage Maturity Stage Decline StageGrowth Stage Product Life Cycle Quality is most important Speed is most important
  14. 14. © 2018 Michael Rutledge 14 Quality needs are growing Even the biggest tech companies have 10- 20 years of code in production. Ø Growth phases are slowing, more focus on maintenance, scalability & optimization. New industries entering unfamiliar consumer apps market - airlines, healthcare, finance, media. Ø Little consumer tech know-how and legacy systems.
  15. 15. © 2018 Michael Rutledge 15 The Lean Fallacy Users will fuel your feature factory Short term business focus can emphasize features and incremental thinking over health & quality 1 Users can’t know how close your product is to collapse 2 Users want more features for less cost
  16. 16. © 2018 Michael Rutledge 16 Technology is an important source of jobs to be done UX Technology Business Product Management
  17. 17. © 2018 Michael Rutledge 17 Roadmap with balance of features and quality initiatives Features Quality Backlog Growth Stage Maturity Stage
  18. 18. © 2018 Michael Rutledge 18 So what to do? Talk about it! Track it! Do it!
  19. 19. © 2018 Michael Rutledge 19 Talk about it 1. Interview the team a. Isolate and prioritize the scariest areas of the code b. Discover what stands in the team’s way c. Learn about the codebase, get more technical 2. Create awareness and visibility to leaders & stakeholders a. Visualize risks b. Suggest high level costs & timelines for improvement
  20. 20. © 2018 Michael Rutledge 20 Track it 1. Push for practices & tools that bring visibility to the current state a. Unit / functional test coverage numbers - Android studio, Xcode, etc b. Adopt standards with static code analyzers - Sonar, Checkstyle, OCLint c. Push for a best practices with clean code and architecture standards 2. Push metrics visibility each sprint a. Create dashboards that shows on the screen to engineers b. Set targets and hold each other acountable c. Trend additional metrics like mean onboarding time, bug rate, and mean time to recover
  21. 21. © 2018 Michael Rutledge 21 Do it 1. Plan the time a. 25-40% per sprint for technical improvements b. Look for opportunities in each new feature to improve state c. Bugs can be a good opportunity for small refactors d. Beware generic “refactoring” initiatives 2. Balance needs for speed vs. quality a. Always discuss solutions and whether they’re fast, or high quality way b. Support and buy time for high quality deliveries, communicate trade-offs c. Integrate technical needs into long term roadmaps and product conversations d. Select KPIs cover technical health and platform stability
  22. 22. © 2018 Michael Rutledge 22 Thank You! © 2018 Michael Rutledge
  23. 23. © 2018 Michael Rutledge 23 Sample Questions 1) How can I integrate quality in a consulting or outsourcing context? 2) Can you give an example of X at Y? 3) How can I distinguish myself as a product manager? 4) Can you talk about more differences in tech & non-tech native companies?