A fully automated solution for analyzing and breaking down Product Requirement Documents (PRDs) using AI/ML and NLP, with intelligent task assignment and workload balancing. Includes streamlined deployment.
The PRD Automation Pipeline is designed to automate the analysis and breakdown of Product Requirement Documents (PRDs). It extracts key sections from the PRD, generates epics and user stories, assigns tasks to engineers based on skills and workloads, and evaluates the pipeline's performance using various metrics.
The pipeline supports three modes:
- Basic Mode
- Advanced Mode
- Optimized Mode
The PRD Automation Pipeline consists of three modes:
- Techniques Used:
- Simple regex-based extraction of PRD sections.
- Round-robin task assignment with basic workload balancing.
- Task Assignment Logic:
- The pipeline extracts PRD sections (objectives, functional requirements, user personas).
- Epics and user stories are generated from functional requirements.
- Tasks are assigned to engineers in a round-robin manner while keeping workloads relatively balanced.
- Evaluation:
- Evaluates workload variance, skill match score (basic matching), and other simple metrics.
- Use Case:
- Suitable for smaller teams and simpler PRDs where requirements are straightforward and uniform.
- Techniques Used:
- Uses a transformer model (e.g., SentenceTransformer) to perform semantic extraction of PRD sections.
- Assigns tasks based on semantic similarity between user stories and engineersβ skills.
- Task Assignment Logic:
- Extracts PRD sections using transformer models to achieve better context understanding.
- Calculates cosine similarity between task embeddings and skill embeddings to find the best-matching engineer.
- Considers workload balancing by distributing tasks based on similarity scores adjusted for current workloads.
- Evaluation:
- Uses advanced metrics like Semantic Similarity Score, BLEU, and ROUGE Scores to measure extraction quality.
- Evaluates Skill Match Score more precisely using semantic embeddings.
- Use Case:
- Suitable for medium-sized teams with more complex PRDs that require better context understanding and skill-based task matching.
- Techniques Used:
- Similar to the Advanced Mode but includes a knapsack optimization algorithm to maximize skill matching while keeping workloads balanced.
- Uses reinforcement learning-like strategies to refine task assignments over time.
- Task Assignment Logic:
- Performs task assignment based on skill matching, but with optimization that considers both workload and skill simultaneously.
- Uses a Dynamic Programming-based Knapsack Algorithm to find the most optimal assignment that maximizes the skill match and minimizes workload variance.
- Evaluation:
- Includes additional metrics such as Gini Coefficient to evaluate workload equality.
- Measures Skill Match Score, BLEU, ROUGE, and semantic similarity more comprehensively.
- Use Case:
- Suitable for large teams with complex PRDs where tasks need to be optimally balanced across multiple engineers based on skills and workloads.
The pipeline uses a variety of metrics to evaluate task assignments and section extraction:
- Skill Match Score: Measures the average cosine similarity between user stories and engineers' skills.
- Workload Variance: Measures the variance in the number of tasks assigned to engineers.
- Gini Coefficient: Evaluates how evenly tasks are distributed among engineers (lower is better).
- BLEU Score: Evaluates how well the extracted sections match with expected PRD sections.
- ROUGE Score: Measures recall of phrases in the extracted sections.
- Semantic Similarity Score: Evaluates how semantically similar the extracted sections are to expected sections.
- Python 3.10
- Natural Language Processing (NLP):
transformers
,sentence-transformers
- Machine Learning:
Reinforcement Learning
- Streamlit: Web-based interactive app
git clone https://github.com/yourusername/prd-automation-pipeline.git
cd prd-automation-pipeline
Make sure you have Python 3.10 installed. Install the required dependencies using pip
:
pip install -r requirements.txt
You can run the application in different modes:
This mode uses simple round-robin task assignment.
python3 pipeline.py --mode basic --prd_file data/prd_data.json --engineers data/engineer_profile.json
This mode assigns tasks based on engineers' skills.
python3 pipeline.py --mode advanced --prd_file data/prd_data.json --engineers data/engineer_profile.json
This mode uses reinforcement learning for skill-based task assignment and workload balancing.
python3 pipeline.py --mode optimized --prd_file data/prd_data.json --engineers data/engineer_profile.json
streamlit run app.py
- Upload your PRD JSON and Engineer Profiles JSON.
- Select the mode (
basic
,advanced
, oroptimized
). - View the generated epics, user stories, and task assignments.
- Download results in JSON or Excel format.
{
"product_name": "Hivel Insight Dashboard",
"objectives": [
"Provide real-time visibility into software engineering KPIs.",
"Identify productivity bottlenecks."
],
"functional_requirements": {
"KPI Dashboard Module": [
"Displays key metrics such as cycle time.",
"Supports historical trend visualization."
]
}
}
You can try out the PRD Automation Pipeline directly in your browser by visiting the following link:
π PRD Automation Pipeline Streamlit App This mode uses reinforcement learning for skill-based task assignment and workload balancing