|
|
|
|
|
""" |
|
|
Product Management Frame |
|
|
'MOSCOW': { |
|
|
'name': 'MoSCoW Prioritization', |
|
|
'description': 'Must have, Should have, Could have, Won\'t have', |
|
|
'use_case': 'Requirements prioritization', |
|
|
'categories': ['Must have', 'Should have', 'Could have', "Won't have (this time)"] |
|
|
}, |
|
|
|
|
|
'STAR_RESUME': { |
|
|
'name': 'STAR Method for Resume', |
|
|
'description': 'Situation, Task, Action, Result - Structure for resume bullet points', |
|
|
'use_case': 'Writing impactful resume achievements', |
|
|
'structure': 'Action verb + Context + Impact with metrics' |
|
|
}, |
|
|
|
|
|
'RESUME_OPTIMIZATION': { |
|
|
'name': 'PM Resume Optimization Framework', |
|
|
'description': 'Key elements for product management resume success', |
|
|
'use_case': 'Creating compelling PM applications', |
|
|
'components': ['Quantified Impact', 'PM Keywords', 'Framework Application', 'Leadership Examples', 'Technical Skills', 'Stakeholder Management'] |
|
|
}, |
|
|
|
|
|
'APPLICATION_FUNNEL': { |
|
|
'name': 'Application Success Funnel', |
|
|
'description': 'Systematic approach to PM job applications', |
|
|
'use_case': 'Increasing interview conversion rates', |
|
|
'stages': ['Research & Targeting', 'Resume Tailoring', 'Cover Letter', 'Portfolio/Case Studies', 'Network Activation', 'Follow-up'] |
|
|
} |
|
|
}d Best Practices |
|
|
This module contains common PM frameworks that can be referenced in coaching sessions. |
|
|
""" |
|
|
|
|
|
PM_FRAMEWORKS = { |
|
|
'RICE': { |
|
|
'name': 'RICE Prioritization', |
|
|
'description': 'Reach, Impact, Confidence, Effort - A framework for feature prioritization', |
|
|
'use_case': 'Prioritizing features or initiatives', |
|
|
'formula': 'Score = (Reach × Impact × Confidence) / Effort' |
|
|
}, |
|
|
|
|
|
'CIRCLES': { |
|
|
'name': 'CIRCLES Method', |
|
|
'description': 'Comprehend, Identify, Report, Cut, List, Evaluate, Summarize', |
|
|
'use_case': 'Product design interviews and product thinking', |
|
|
'steps': ['Comprehend the situation', 'Identify the customer', 'Report needs', 'Cut through prioritization', 'List solutions', 'Evaluate trade-offs', 'Summarize recommendations'] |
|
|
}, |
|
|
|
|
|
'JOBS_TO_BE_DONE': { |
|
|
'name': 'Jobs-to-be-Done', |
|
|
'description': 'Focus on what customers hire your product to do', |
|
|
'use_case': 'Understanding customer needs and product-market fit', |
|
|
'statement': 'When I [situation], I want to [motivation], so I can [expected outcome]' |
|
|
}, |
|
|
|
|
|
'KANO_MODEL': { |
|
|
'name': 'Kano Model', |
|
|
'description': 'Categorizes features into Must-have, Performance, and Delight', |
|
|
'use_case': 'Feature planning and customer satisfaction', |
|
|
'categories': ['Must-have (Basic)', 'Performance (Linear)', 'Delight (Attractive)'] |
|
|
}, |
|
|
|
|
|
'LEAN_CANVAS': { |
|
|
'name': 'Lean Canvas', |
|
|
'description': '1-page business model focused on problems, solutions, and key metrics', |
|
|
'use_case': 'Product strategy and business model validation', |
|
|
'sections': ['Problem', 'Solution', 'Key Metrics', 'Unique Value Prop', 'Unfair Advantage', 'Channels', 'Customer Segments', 'Cost Structure', 'Revenue Streams'] |
|
|
}, |
|
|
|
|
|
'NORTH_STAR': { |
|
|
'name': 'North Star Framework', |
|
|
'description': 'A single metric that captures the core value your product delivers', |
|
|
'use_case': 'Product strategy and team alignment', |
|
|
'components': ['North Star Metric', 'Input Metrics', 'Work Streams'] |
|
|
}, |
|
|
|
|
|
'DESIGN_SPRINT': { |
|
|
'name': 'Design Sprint', |
|
|
'description': '5-day process for answering critical business questions through design', |
|
|
'use_case': 'Rapid prototyping and validation', |
|
|
'phases': ['Monday: Map', 'Tuesday: Sketch', 'Wednesday: Decide', 'Thursday: Prototype', 'Friday: Test'] |
|
|
}, |
|
|
|
|
|
'MOSCOW': { |
|
|
'name': 'MoSCoW Prioritization', |
|
|
'description': 'Must have, Should have, Could have, Won\'t have', |
|
|
'use_case': 'Requirements prioritization', |
|
|
'categories': ['Must have', 'Should have', 'Could have', 'Won\'t have'] |
|
|
} |
|
|
} |
|
|
|
|
|
PRODUCT_METRICS = { |
|
|
'ENGAGEMENT': ['DAU/MAU', 'Session Duration', 'Feature Adoption', 'Stickiness'], |
|
|
'GROWTH': ['CAC', 'LTV', 'Viral Coefficient', 'Retention Rate'], |
|
|
'BUSINESS': ['Revenue', 'Conversion Rate', 'Churn Rate', 'NPS'], |
|
|
'PRODUCT': ['Time to Value', 'Feature Usage', 'User Satisfaction', 'Task Success Rate'] |
|
|
} |
|
|
|
|
|
COACHING_SCENARIOS = { |
|
|
'PRIORITIZATION': [ |
|
|
"You have 5 high-impact features but can only build 2 this quarter. How do you decide?", |
|
|
"Engineering is pushing back on your roadmap timeline. How do you respond?", |
|
|
"A key customer is threatening to churn unless you build their feature request." |
|
|
], |
|
|
|
|
|
'STAKEHOLDER_MANAGEMENT': [ |
|
|
"Sales wants feature A, marketing wants feature B, and engineering prefers feature C.", |
|
|
"The CEO wants to add a major feature that doesn't align with your product vision.", |
|
|
"You need to communicate a roadmap delay to frustrated stakeholders." |
|
|
], |
|
|
|
|
|
'METRICS_ANALYSIS': [ |
|
|
"Your key engagement metric dropped 20% last month. How do you investigate?", |
|
|
"You need to prove ROI for a new feature launch to executives.", |
|
|
"Two A/B tests show conflicting results. How do you make a decision?" |
|
|
], |
|
|
|
|
|
'USER_RESEARCH': [ |
|
|
"You're seeing low adoption of a recently launched feature.", |
|
|
"Users are requesting a feature that conflicts with your product vision.", |
|
|
"You need to validate a new product concept with limited research budget." |
|
|
] |
|
|
} |
|
|
|
|
|
def get_framework_suggestion(scenario_type, coaching_type): |
|
|
"""Suggest relevant frameworks based on the coaching scenario.""" |
|
|
framework_mapping = { |
|
|
'Product Strategy & Vision': ['LEAN_CANVAS', 'NORTH_STAR', 'JOBS_TO_BE_DONE'], |
|
|
'Market Research & Analysis': ['JOBS_TO_BE_DONE', 'KANO_MODEL'], |
|
|
'User Experience & Design Thinking': ['DESIGN_SPRINT', 'JOBS_TO_BE_DONE', 'KANO_MODEL'], |
|
|
'Product Roadmap Planning': ['RICE', 'MOSCOW', 'KANO_MODEL'], |
|
|
'Metrics & Analytics': ['NORTH_STAR', 'KANO_MODEL'], |
|
|
'Stakeholder Management': ['MOSCOW', 'LEAN_CANVAS'], |
|
|
'Product Launch Strategy': ['DESIGN_SPRINT', 'LEAN_CANVAS'], |
|
|
'Competitive Analysis': ['LEAN_CANVAS', 'KANO_MODEL'], |
|
|
'Feature Prioritization': ['RICE', 'MOSCOW', 'KANO_MODEL'], |
|
|
'Customer Development': ['JOBS_TO_BE_DONE', 'DESIGN_SPRINT'], |
|
|
'Resume & Application Strategy': ['STAR_RESUME', 'RESUME_OPTIMIZATION', 'APPLICATION_FUNNEL'] |
|
|
} |
|
|
|
|
|
suggested_frameworks = framework_mapping.get(coaching_type, ['RICE', 'JOBS_TO_BE_DONE']) |
|
|
return [PM_FRAMEWORKS[fw] for fw in suggested_frameworks if fw in PM_FRAMEWORKS] |
|
|
|
|
|
def get_relevant_metrics(coaching_type): |
|
|
"""Get relevant metrics for the coaching area.""" |
|
|
metric_mapping = { |
|
|
'Product Strategy & Vision': PRODUCT_METRICS['BUSINESS'] + PRODUCT_METRICS['ENGAGEMENT'], |
|
|
'Market Research & Analysis': PRODUCT_METRICS['GROWTH'], |
|
|
'User Experience & Design Thinking': PRODUCT_METRICS['PRODUCT'] + PRODUCT_METRICS['ENGAGEMENT'], |
|
|
'Product Roadmap Planning': PRODUCT_METRICS['PRODUCT'], |
|
|
'Metrics & Analytics': list(PRODUCT_METRICS.values()), |
|
|
'Stakeholder Management': PRODUCT_METRICS['BUSINESS'], |
|
|
'Product Launch Strategy': PRODUCT_METRICS['GROWTH'] + PRODUCT_METRICS['BUSINESS'], |
|
|
'Competitive Analysis': PRODUCT_METRICS['GROWTH'], |
|
|
'Feature Prioritization': PRODUCT_METRICS['PRODUCT'], |
|
|
'Customer Development': PRODUCT_METRICS['ENGAGEMENT'] + PRODUCT_METRICS['PRODUCT'], |
|
|
'Resume & Application Strategy': ['Application Response Rate', 'Interview Conversion Rate', 'Resume ATS Score', 'Portfolio View Rate', 'Network Response Rate'] |
|
|
} |
|
|
|
|
|
return metric_mapping.get(coaching_type, PRODUCT_METRICS['PRODUCT']) |
|
|
|