SlideShare a Scribd company logo
1 of 37
The Management of Software Product
Engineering
Michael Lei
Feb 28, 2023
Overview of Components
2
All
Management of Software
Product
Management of Projects/Tasks
Management
of Code
Manage
ment of
People
Software
Product
Software
Engineering
Management
of Tech
3
All
Management of Products
Life Cycle of Software Product
4
Strategy &
Planning
Analysis of
Problem
Product
Design
Implementa
tion
Analysis of
Solution
Design Thinking – A Product Design Process
October 14, 2023
5
EMPATHIZ
E
DEFINE
IDEATE
PROTOTY
PE
TEST
Understanding
users’ context
and needs by:
observing,
interviewing,
and data
collection/anal
ysis to gain
insights into
their
behaviors,
motivations,
and pain
points.
Defining the problem
based on the insights
gathered in the
empathize stage, the
problem is framed as a
specific and actionable
challenge.
Generate a range of
potential solutions to
the defined problem,
through creative
thinking.
Represent the
solutions through
sketch, mock-up,
simulation, functional
prototype, etc.
Test the prototypes and gather
feedbacks, observe metrics, to
validate hypothesis, identify and
improve/refine solutions.
Multi-step Process
Iterative Process
Analysis is the Key of Product Success
6
All
• Analysis of the Problem
• Framing a business problem into solvable technical problems.
• Design business metrics.
• Pre-analysis of Solutions
• Prototype/POC/Simulation of implementations for verification and comparison (A/B Tests) of
alternative ideas.
• Fast search/filter of solution space before costly investments.
• Post-analysis of Solutions
• Online A/B tests
• Track changes of business metrics
• Feedback to next iteration of Product Planning & Design
MVP & Iterative Improvements
7
All
• Minimal Viable Product
• V0 of a product with minimal set of functionalities to be deemed useful.
Eg: MFA with SMS as 2nd factor as SMS is the only usable solution for most users.
• MVP requires substantial planning, design and implementation efforts to start a product on the
right track.
• Iterative Improvements
• Incremental efforts to improve metrics. Eg: Search relevance, user conversion on a website.
• Extend features from previous version.
• Small incremental investments with verifiable benefits.
Understand Users
8
All
• Consumer: need very intuitive UI and least friction.
Eg: No one wants to read a user guide to know how to use Google search or Amazon Market
Place.
• Professional:
• Has prior knowledge and experience  implicit expectation on usability patterns.
Eg: programmers will want sophisticated SDK and API, much more than a UI.
• Enterprise:
• Not only user manuals but also training is not a problem.
• Rich functionality and high customizability are favored over usability.
• Integration w. existing enterprise environment
• Multiple roles of users with very different interests.
Generalization: Configurability & Customizability
9
All
• Generalization over many use cases is the foundation of business software.
• Low-code redevelopment
Eg: Workflow engine, scripting, configuration
Problem Pattern 1: Business Process Automation
10
Users, Product Managers and
Engineers have the same high level
view of software that automates
business processes:
• An ontology of the business.
• Automation of the business
processes and workflows.
• Views and analytics over business
objects.
• Users/roles have different
accesses to data of business
objects and different functionalities.
Ontology
of
Business
Objects
Processes/
Workflows
Views/
Analytics
Users/
Roles
Problem Pattern 2: Optimization
11
All
Given a constraint C(x), find value of x to optimize function(x).
• Some optimization problem can be formulated mathematically with analytical or numerical
solutions.
Eg: Newton’s method and Deep Learning solves optimization problems with numerical methods.
• A software program is also a function.
Business_Metric = MetricComputation(program(p))
Some business metrics are computed over the output of software program with parameter p. P
may represent a simple parameter with alternative values or a software component with
alternative implementations. Eg:
• Google Ads: maximize click through rate of ad with a constraint on Ads relevance.
• Appen’s Fair Pay: balance between underpay for contributors and overcharge for customers
12
All
Management of Projects/Tasks
13
A Scrum Team
Enterprise,
Global BUs
Contributors
(crowd & in-house)
Project Managers
Enterprise Customers
SRE
Feature
spec ,
Prioritize/
track
bugs &
features
Scrum Process
14
All
Sprint
Planning
Daily Standup
& Dev
Sprint Review
Sprint
Retrospective
Backlog
Grooming
Product
Planning
UAT,
Product
Release
Organizing Tasks
15
All
• The Ontology of Projects/Tasks
• Initiative, Epic, Story are all derived from Issue.
• Epic models a stream of features
• Story models an individually testable/verifiable feature unit.
• A Story may have sub-stories that are Dev Stories, QA Stories and SRE Stories.
• Issue has the following property:
• “sub-task” that references another issue as a logical containment relationship.
• “depend on”
• Scrum-team
• Assignee
• State: new, triaged, in-progress, in-test, in-verification, closed
• Management visibility is through analytical reporting on those objects.
The Agile Nature of Scrum
16
All
• Epics may be planned quarterly, but Stories are added/updated each sprint.
• Stories are groomed for business priority and estimated with story points to measure Eng
workload.
• Completion time of an Epic is always dynamically updated throughout its life cycle through
multiple sprints.
• There is only rough estimate at the planning time of an Epic.
• The point of time estimate of an Epic is the aggregate over all its Stories.
Evaluate Eng Productivity in Scrum
17
All
• On-time Delivery of an Epic is hard to measure, because
• Stories are dynamically added/updated, hence points of an Epic are dynamically updated.
• Prioritization of stories is dynamic. There is usually no reservation of resources to work on an
epic from start to end.
• Can productivity be measured as points delivered per sprint?
• Such measure can easily be gamed because points of a story is determined by Eng, who is
also the party being evaluated.
• Independent auditing of points?
• It takes an expert to judge an expert.
• We will revisit this topic in people management.
18
All
Management of Code
• Overview of the life cycle of code
• Git branch strategy of code
• Journey of Code
• Tests
• Design and Code Reviews
Journey of Code
19
Code/
UnitTests/
ServiceTes
ts Dev
Regression
Tests:
- unit tests
- service tests
Integrati
on Tests
Code
Reviews
automat
ed
FE tests
Binary
Release
has more PR
Developer’s Environment
Master/Integration
Code Br
Release
Candidate
Production
feature code
all deployed
has more binary
changes
Feature
Release:
- turn on behavior
- A/B Tests
Production
Monitoring
& Diagnosis
Design
&
Reviews
Code Branching Strategy w. Release Br.
20
release
master
feature
1
feature
2
PR
PR
PR
Hotfix
branch
1.1.
0
1.1.hotf
ix
Merge back
PR
1.1.inprog
1.2.inprog
PR
1.2
time
Ships code to Staging, Pre-PROD and PROD, Protected and alive till app is alive
Ships code to Feature Pools only, should be short lived
PR
From Dev to Master Br.
Dev box
Commit to local or
push to remote
feature branch
Send Pull
Request to
Master
Code Review
PR Validation
Merge to
Master
● Unit Tests are coded in tandem with features
● Unit Tests are runnable w/o network connectivity
● API/Service Tests are using mocks for dependencies
● Static Analysis performed
● All local testing passed
Automation Quality Gate:
● Unit Test 100% pass
● UT Code Coverage > 80%
● Static Analysis passed for
code compliance and security
compliance
From Release branch to Core Staging/Pre-Prod
Build Release
Candidate
Deploy to
Integration/Pre-
prod
Feature automation
+ regression
Deploy to Core
Staging/Pre-Prod
Automation:
● Unit Test 100% pass
● Static Analysis passed for
code compliance and security
compliance
Automation:
● Feature automation +
P1/P2 Regression
● Accessibility (for UI)
Fork Release Br
from Master
Code journey from Core Staging/Pre-Prod to Production
All functional automation
Speed testing
(Server side + Client side)
Security testing
Accessibility testing (for UI)
Deploy to Prod one
single instance (in
traffic)
Smoke test
10%
deployment
20%
deployment
Automation:
● All tests passed
● IT code coverage > 70%
Automation:
● P1/P2
tests
passed
Deployment
completed
Deploy to Core
Staging/Pre-Prod
Production Monitoring
Feature
enable/disable/AB Test
Production
Monitoring
● Ops related monitoring - CPU, Memory, errors,
exceptions, logs, software/data parity and etc.
● Functional Automation in Production to identify
issues and then take actions immediately
● Data Monitoring - Data correctness, Analytics data
(e.g. Tracking, Conversion and etc.)
● Release calendar for all prod changes to help
Production issues root cause narrow down
● make monitoring reports very simple and easy to
read, everybody could help monitor and
identify/report issue.
Deployment
completed
Production Code : Testing Code
1 : 1.5
● Primary burden of tests is on developers
○ otherwise we have to hire more “testers” than
“developers”!
○ force them to write “testable” code.
Testability == Modularity, Extendability
Test
Pyramid of
Coverage
Test: Classifications
26
Unit Tests
Service-level
Blackbox Tests
Cross-service
Integration
Tests
UI
Tests
PD: test framework, write tests
QE/PD:
Framework, mock service
dependencies
Write tests
QE: Framework, Maintain
staging/preprod env, write tests.
QE/PM: manual and automated
test
Test: Unit vs Service Tests
Difference
● sub-service modules vs. microservice
Commonalities
● Mock all dependencies
● Fully portable
○ Dev’s machine, build machine, no need for staging/preprod envs
● Data driven:
○ Test input
○ Expected output + side_effect
Design Reviews
• Requirements: reviewed against the project requirements.
• Architecture: modular, scalable, and meets design goals & SLAs.
• Data flow: efficient, secure, and reliable.
• Algorithms and logic: correctness and efficiency.
• Error handling and recovery.
• Security: security vulnerabilities and how they are addressed.
• Usability: user-friendly and meets the needs of the users.
• Performance: potential performance issues and how they are addressed.
• Maintainability & Extendability
• Standards & Guidelines:
Industry standards, guidelines, best practices and compliance with
regulations and requirements.
Code Reviews
● Coding styles. Naming/Commenting conventions, …
But why? Is 2-space indentation really better than 4-space?
The hidden agenda is to enforce standard and homogeneity.
● Enforce design patterns and programming models.
Code Reviews
● Check unit/service test coverage: code coverage, branch
coverage, corner cases, etc.
● Mandatory Reviewers: owners of code (by repo, by
directory, automated as owners files).
● Involve code reviewers as early as design review.
● Small check-ins (PRs) to ease reviews.
Binary vs. Behavior release
● Binaries are released at fixed interval with/without
features.
● Binary release are gated by Regressions (expected original
behavior) instead of new feature behavior.
● A feature implementation is usually chunked into multiple
PRs and binary releases.
● Behavior release happens after all binary changes are
released and is turned on and rolled out using A-B test
mechanism.
32
All
Management of People
• Starts with Hiring
• Engineering Excellence
• Evaluation
Hiring: Characteristics of Good Engineers
33
All
• Curiosity, especially on how things work.
• Attention to Detail.
• Hands-on, especially the ability to handle complexity.
• Good learner.
• Analytical mindset.
• Logical & Abstract thinking.
• Collaboration & Communications are important but not specific to
engineering.
Hiring: Finding the right candidates
34
All
• Jira, Git
• Scrum process
• Kafka programming
• AWS experience
• Coding
• Data Structure & Algo
• Event driven architecture
• Experience on legacy code base
• Experience with Platform Services
• Most are specific skills/processes
that can be learned quickly.
• Scrum is not a universal standard
for agile (not really emphasized in
Google or Meta).
• Has the candidate learned well from
classroom?
• All are foundational knowledge and
skills for software professionals.
• A person with good foundation,
learning capability & coding skills
can pick up specific tools very
quickly.
VS
Hiring: Process
35
All
• Standardize engineering hiring process across teams.
• Each JD has:
• Mostly role (FE, BE Dev, SRE, QA, ML Eng, etc) specific
requirements.
• Some project specific requirements.
• Interviews are designed to cover all requirements, with emphasis on
hands-on.
• Fair and transparent decision process based on interview results.
Engineering Excellence
36
All
• Promote technical soundness outside business impacts.
• Eg: code and design have to pass reviews and satisfy standards
even if delivery is delayed.
• Under Engineering Excellence Culture
• Engineers will not cut corners to cause technical debts.
• Engineers will pay off technical debts much faster.
Evaluation
37
All
• No magic metrics to evaluate engineers’ productivity.
• Because all of them can be gamed by engineers.
• It takes an expert to evaluate an expert.
• We rely on meritocracy.
• Managers and leaders need to be technical enough to come up
with fair assessment on work complexity and result quality.
• A manager should potentially be able to do the jobs of his/her
reports.

More Related Content

Similar to prod-dev-management.pptx

Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Moataz Nabil
 
How To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareHow To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareErika Barron
 
AI projects - Lifecyle & Best Practices
AI projects - Lifecyle & Best PracticesAI projects - Lifecyle & Best Practices
AI projects - Lifecyle & Best PracticesVincent de Stoecklin
 
Softwareenggineering lab manual
Softwareenggineering lab manualSoftwareenggineering lab manual
Softwareenggineering lab manualVivek Kumar Sinha
 
Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCodecamp Romania
 
Abey_Thomas_Resume
Abey_Thomas_ResumeAbey_Thomas_Resume
Abey_Thomas_ResumeAbey Thomas
 
CV_AUTOMATION_TEST_ENGINEER
CV_AUTOMATION_TEST_ENGINEERCV_AUTOMATION_TEST_ENGINEER
CV_AUTOMATION_TEST_ENGINEERPERLA RAVI THEJA
 
Datta_Capital_Market_4+_Automation_Manual
Datta_Capital_Market_4+_Automation_ManualDatta_Capital_Market_4+_Automation_Manual
Datta_Capital_Market_4+_Automation_ManualDatta Bobade
 
Chandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_OracleChandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_OracleChandan Jai
 
Agile-plus-DevOps Testing for Packaged Applications
Agile-plus-DevOps Testing for Packaged ApplicationsAgile-plus-DevOps Testing for Packaged Applications
Agile-plus-DevOps Testing for Packaged ApplicationsWorksoft
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metricsPiyush Sohaney
 

Similar to prod-dev-management.pptx (20)

Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013Working Agile with Scrum and TFS 2013
Working Agile with Scrum and TFS 2013
 
How To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty SoftwareHow To Avoid Continuously Delivering Faulty Software
How To Avoid Continuously Delivering Faulty Software
 
AI projects - Lifecyle & Best Practices
AI projects - Lifecyle & Best PracticesAI projects - Lifecyle & Best Practices
AI projects - Lifecyle & Best Practices
 
Test Policy and Practices
Test Policy and PracticesTest Policy and Practices
Test Policy and Practices
 
Softwareenggineering lab manual
Softwareenggineering lab manualSoftwareenggineering lab manual
Softwareenggineering lab manual
 
Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditech
 
Abey_Thomas_Resume
Abey_Thomas_ResumeAbey_Thomas_Resume
Abey_Thomas_Resume
 
CV_AUTOMATION_TEST_ENGINEER
CV_AUTOMATION_TEST_ENGINEERCV_AUTOMATION_TEST_ENGINEER
CV_AUTOMATION_TEST_ENGINEER
 
Udhai_Resume
Udhai_ResumeUdhai_Resume
Udhai_Resume
 
VidyaManjunath_CV
VidyaManjunath_CVVidyaManjunath_CV
VidyaManjunath_CV
 
Datta_Capital_Market_4+_Automation_Manual
Datta_Capital_Market_4+_Automation_ManualDatta_Capital_Market_4+_Automation_Manual
Datta_Capital_Market_4+_Automation_Manual
 
Chandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_OracleChandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_Oracle
 
Anil_kumar_Resume
Anil_kumar_ResumeAnil_kumar_Resume
Anil_kumar_Resume
 
Agile-plus-DevOps Testing for Packaged Applications
Agile-plus-DevOps Testing for Packaged ApplicationsAgile-plus-DevOps Testing for Packaged Applications
Agile-plus-DevOps Testing for Packaged Applications
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
ravi kumar s
ravi kumar sravi kumar s
ravi kumar s
 
resume
resumeresume
resume
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metrics
 
Animesh Chatterjee
Animesh Chatterjee Animesh Chatterjee
Animesh Chatterjee
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 

prod-dev-management.pptx

  • 1. The Management of Software Product Engineering Michael Lei Feb 28, 2023
  • 2. Overview of Components 2 All Management of Software Product Management of Projects/Tasks Management of Code Manage ment of People Software Product Software Engineering Management of Tech
  • 4. Life Cycle of Software Product 4 Strategy & Planning Analysis of Problem Product Design Implementa tion Analysis of Solution
  • 5. Design Thinking – A Product Design Process October 14, 2023 5 EMPATHIZ E DEFINE IDEATE PROTOTY PE TEST Understanding users’ context and needs by: observing, interviewing, and data collection/anal ysis to gain insights into their behaviors, motivations, and pain points. Defining the problem based on the insights gathered in the empathize stage, the problem is framed as a specific and actionable challenge. Generate a range of potential solutions to the defined problem, through creative thinking. Represent the solutions through sketch, mock-up, simulation, functional prototype, etc. Test the prototypes and gather feedbacks, observe metrics, to validate hypothesis, identify and improve/refine solutions. Multi-step Process Iterative Process
  • 6. Analysis is the Key of Product Success 6 All • Analysis of the Problem • Framing a business problem into solvable technical problems. • Design business metrics. • Pre-analysis of Solutions • Prototype/POC/Simulation of implementations for verification and comparison (A/B Tests) of alternative ideas. • Fast search/filter of solution space before costly investments. • Post-analysis of Solutions • Online A/B tests • Track changes of business metrics • Feedback to next iteration of Product Planning & Design
  • 7. MVP & Iterative Improvements 7 All • Minimal Viable Product • V0 of a product with minimal set of functionalities to be deemed useful. Eg: MFA with SMS as 2nd factor as SMS is the only usable solution for most users. • MVP requires substantial planning, design and implementation efforts to start a product on the right track. • Iterative Improvements • Incremental efforts to improve metrics. Eg: Search relevance, user conversion on a website. • Extend features from previous version. • Small incremental investments with verifiable benefits.
  • 8. Understand Users 8 All • Consumer: need very intuitive UI and least friction. Eg: No one wants to read a user guide to know how to use Google search or Amazon Market Place. • Professional: • Has prior knowledge and experience  implicit expectation on usability patterns. Eg: programmers will want sophisticated SDK and API, much more than a UI. • Enterprise: • Not only user manuals but also training is not a problem. • Rich functionality and high customizability are favored over usability. • Integration w. existing enterprise environment • Multiple roles of users with very different interests.
  • 9. Generalization: Configurability & Customizability 9 All • Generalization over many use cases is the foundation of business software. • Low-code redevelopment Eg: Workflow engine, scripting, configuration
  • 10. Problem Pattern 1: Business Process Automation 10 Users, Product Managers and Engineers have the same high level view of software that automates business processes: • An ontology of the business. • Automation of the business processes and workflows. • Views and analytics over business objects. • Users/roles have different accesses to data of business objects and different functionalities. Ontology of Business Objects Processes/ Workflows Views/ Analytics Users/ Roles
  • 11. Problem Pattern 2: Optimization 11 All Given a constraint C(x), find value of x to optimize function(x). • Some optimization problem can be formulated mathematically with analytical or numerical solutions. Eg: Newton’s method and Deep Learning solves optimization problems with numerical methods. • A software program is also a function. Business_Metric = MetricComputation(program(p)) Some business metrics are computed over the output of software program with parameter p. P may represent a simple parameter with alternative values or a software component with alternative implementations. Eg: • Google Ads: maximize click through rate of ad with a constraint on Ads relevance. • Appen’s Fair Pay: balance between underpay for contributors and overcharge for customers
  • 13. 13 A Scrum Team Enterprise, Global BUs Contributors (crowd & in-house) Project Managers Enterprise Customers SRE Feature spec , Prioritize/ track bugs & features
  • 14. Scrum Process 14 All Sprint Planning Daily Standup & Dev Sprint Review Sprint Retrospective Backlog Grooming Product Planning UAT, Product Release
  • 15. Organizing Tasks 15 All • The Ontology of Projects/Tasks • Initiative, Epic, Story are all derived from Issue. • Epic models a stream of features • Story models an individually testable/verifiable feature unit. • A Story may have sub-stories that are Dev Stories, QA Stories and SRE Stories. • Issue has the following property: • “sub-task” that references another issue as a logical containment relationship. • “depend on” • Scrum-team • Assignee • State: new, triaged, in-progress, in-test, in-verification, closed • Management visibility is through analytical reporting on those objects.
  • 16. The Agile Nature of Scrum 16 All • Epics may be planned quarterly, but Stories are added/updated each sprint. • Stories are groomed for business priority and estimated with story points to measure Eng workload. • Completion time of an Epic is always dynamically updated throughout its life cycle through multiple sprints. • There is only rough estimate at the planning time of an Epic. • The point of time estimate of an Epic is the aggregate over all its Stories.
  • 17. Evaluate Eng Productivity in Scrum 17 All • On-time Delivery of an Epic is hard to measure, because • Stories are dynamically added/updated, hence points of an Epic are dynamically updated. • Prioritization of stories is dynamic. There is usually no reservation of resources to work on an epic from start to end. • Can productivity be measured as points delivered per sprint? • Such measure can easily be gamed because points of a story is determined by Eng, who is also the party being evaluated. • Independent auditing of points? • It takes an expert to judge an expert. • We will revisit this topic in people management.
  • 18. 18 All Management of Code • Overview of the life cycle of code • Git branch strategy of code • Journey of Code • Tests • Design and Code Reviews
  • 19. Journey of Code 19 Code/ UnitTests/ ServiceTes ts Dev Regression Tests: - unit tests - service tests Integrati on Tests Code Reviews automat ed FE tests Binary Release has more PR Developer’s Environment Master/Integration Code Br Release Candidate Production feature code all deployed has more binary changes Feature Release: - turn on behavior - A/B Tests Production Monitoring & Diagnosis Design & Reviews
  • 20. Code Branching Strategy w. Release Br. 20 release master feature 1 feature 2 PR PR PR Hotfix branch 1.1. 0 1.1.hotf ix Merge back PR 1.1.inprog 1.2.inprog PR 1.2 time Ships code to Staging, Pre-PROD and PROD, Protected and alive till app is alive Ships code to Feature Pools only, should be short lived PR
  • 21. From Dev to Master Br. Dev box Commit to local or push to remote feature branch Send Pull Request to Master Code Review PR Validation Merge to Master ● Unit Tests are coded in tandem with features ● Unit Tests are runnable w/o network connectivity ● API/Service Tests are using mocks for dependencies ● Static Analysis performed ● All local testing passed Automation Quality Gate: ● Unit Test 100% pass ● UT Code Coverage > 80% ● Static Analysis passed for code compliance and security compliance
  • 22. From Release branch to Core Staging/Pre-Prod Build Release Candidate Deploy to Integration/Pre- prod Feature automation + regression Deploy to Core Staging/Pre-Prod Automation: ● Unit Test 100% pass ● Static Analysis passed for code compliance and security compliance Automation: ● Feature automation + P1/P2 Regression ● Accessibility (for UI) Fork Release Br from Master
  • 23. Code journey from Core Staging/Pre-Prod to Production All functional automation Speed testing (Server side + Client side) Security testing Accessibility testing (for UI) Deploy to Prod one single instance (in traffic) Smoke test 10% deployment 20% deployment Automation: ● All tests passed ● IT code coverage > 70% Automation: ● P1/P2 tests passed Deployment completed Deploy to Core Staging/Pre-Prod
  • 24. Production Monitoring Feature enable/disable/AB Test Production Monitoring ● Ops related monitoring - CPU, Memory, errors, exceptions, logs, software/data parity and etc. ● Functional Automation in Production to identify issues and then take actions immediately ● Data Monitoring - Data correctness, Analytics data (e.g. Tracking, Conversion and etc.) ● Release calendar for all prod changes to help Production issues root cause narrow down ● make monitoring reports very simple and easy to read, everybody could help monitor and identify/report issue. Deployment completed
  • 25. Production Code : Testing Code 1 : 1.5 ● Primary burden of tests is on developers ○ otherwise we have to hire more “testers” than “developers”! ○ force them to write “testable” code. Testability == Modularity, Extendability Test
  • 26. Pyramid of Coverage Test: Classifications 26 Unit Tests Service-level Blackbox Tests Cross-service Integration Tests UI Tests PD: test framework, write tests QE/PD: Framework, mock service dependencies Write tests QE: Framework, Maintain staging/preprod env, write tests. QE/PM: manual and automated test
  • 27. Test: Unit vs Service Tests Difference ● sub-service modules vs. microservice Commonalities ● Mock all dependencies ● Fully portable ○ Dev’s machine, build machine, no need for staging/preprod envs ● Data driven: ○ Test input ○ Expected output + side_effect
  • 28. Design Reviews • Requirements: reviewed against the project requirements. • Architecture: modular, scalable, and meets design goals & SLAs. • Data flow: efficient, secure, and reliable. • Algorithms and logic: correctness and efficiency. • Error handling and recovery. • Security: security vulnerabilities and how they are addressed. • Usability: user-friendly and meets the needs of the users. • Performance: potential performance issues and how they are addressed. • Maintainability & Extendability • Standards & Guidelines: Industry standards, guidelines, best practices and compliance with regulations and requirements.
  • 29. Code Reviews ● Coding styles. Naming/Commenting conventions, … But why? Is 2-space indentation really better than 4-space? The hidden agenda is to enforce standard and homogeneity. ● Enforce design patterns and programming models.
  • 30. Code Reviews ● Check unit/service test coverage: code coverage, branch coverage, corner cases, etc. ● Mandatory Reviewers: owners of code (by repo, by directory, automated as owners files). ● Involve code reviewers as early as design review. ● Small check-ins (PRs) to ease reviews.
  • 31. Binary vs. Behavior release ● Binaries are released at fixed interval with/without features. ● Binary release are gated by Regressions (expected original behavior) instead of new feature behavior. ● A feature implementation is usually chunked into multiple PRs and binary releases. ● Behavior release happens after all binary changes are released and is turned on and rolled out using A-B test mechanism.
  • 32. 32 All Management of People • Starts with Hiring • Engineering Excellence • Evaluation
  • 33. Hiring: Characteristics of Good Engineers 33 All • Curiosity, especially on how things work. • Attention to Detail. • Hands-on, especially the ability to handle complexity. • Good learner. • Analytical mindset. • Logical & Abstract thinking. • Collaboration & Communications are important but not specific to engineering.
  • 34. Hiring: Finding the right candidates 34 All • Jira, Git • Scrum process • Kafka programming • AWS experience • Coding • Data Structure & Algo • Event driven architecture • Experience on legacy code base • Experience with Platform Services • Most are specific skills/processes that can be learned quickly. • Scrum is not a universal standard for agile (not really emphasized in Google or Meta). • Has the candidate learned well from classroom? • All are foundational knowledge and skills for software professionals. • A person with good foundation, learning capability & coding skills can pick up specific tools very quickly. VS
  • 35. Hiring: Process 35 All • Standardize engineering hiring process across teams. • Each JD has: • Mostly role (FE, BE Dev, SRE, QA, ML Eng, etc) specific requirements. • Some project specific requirements. • Interviews are designed to cover all requirements, with emphasis on hands-on. • Fair and transparent decision process based on interview results.
  • 36. Engineering Excellence 36 All • Promote technical soundness outside business impacts. • Eg: code and design have to pass reviews and satisfy standards even if delivery is delayed. • Under Engineering Excellence Culture • Engineers will not cut corners to cause technical debts. • Engineers will pay off technical debts much faster.
  • 37. Evaluation 37 All • No magic metrics to evaluate engineers’ productivity. • Because all of them can be gamed by engineers. • It takes an expert to evaluate an expert. • We rely on meritocracy. • Managers and leaders need to be technical enough to come up with fair assessment on work complexity and result quality. • A manager should potentially be able to do the jobs of his/her reports.

Editor's Notes

  1. Life of code Standardization: design review, dev process, code branching and code review Release process DevOps as a service for Developers
  2. Hiring: the right traits of engineers: learning capability, analytical mindset, hands-on, and detail focused. Hard skill is the fundamental. Evaluation of developers: design/code reviews. Expert auditing on time to finish a task. Culture of engineering excellence: the seek for technical soundness beyond business impact. Eg: tech debt incurred in hacky implementation.