-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Task: Setup Data Collection Framework
Research and choose an appropriate technology or tool for data collection. This could be an ETL (Extract, Transform, Load) tool or a data pipeline service like AWS Glue, Google Cloud Dataflow, or a custom script in Python or other suitable languages.
Define the data sources. In this case, our primary data sources will be our version control system (e.g., Git) and bug tracking system (e.g., Jira, GitHub Issues).
Establish connections to these data sources and ensure that they are stable and secure.
Implement data extraction routines to pull necessary data, such as code changes, defect records, etc.
Task: Capture Task Timestamps
Connect with the version control system and project management tool APIs.
For each task, capture the 'start' timestamp when work begins (usually when the task is moved to 'in-progress' status) and the 'end' timestamp when work is finished (when the task is moved to 'done' status).
Automate this process using scripts or plugins so that timestamps are captured in real-time.
Task: Calculate Cycle Time for Each Task
Cycle time is the total time from the beginning to the end of your process, as defined by you and your team. So here, you'd subtract the 'start' timestamp from the 'end' timestamp for each task.
If there are any blockers or dependencies that pause work on the task, adjust the cycle time calculation to exclude these periods.
Task: Calculate Lead Time for Each Task
Lead time is the period between a new task's appearance in your workflow and its final departure from the system. So here, you'd subtract the 'creation' timestamp (when the task first appears in your system) from the 'end' timestamp.
Any waiting times or delays before the task starts should be included in the lead time.
Task: Implement Data Storage for Cycle Time and Lead Time Data
Choose an appropriate database system, such as MySQL, PostgreSQL, or a NoSQL option like MongoDB, based on your data structure and volume.
Design the database schema to store the task data, including 'start', 'end', and 'creation' timestamps, cycle time, and lead time. Also, consider storing task identifiers and other relevant task details.
Implement data insertion and retrieval routines to work with the data efficiently.
Task: Create a Data Visualization Prototype for Cycle Time and Lead Time Metrics
Choose a visualization library that suits your needs. Python libraries such as Matplotlib, Plotly, or JavaScript libraries like D3.js could be options.
Define the visualizations you need. For cycle time and lead time, line charts or scatter plots could work well, showing trends over time.
Implement these visualizations using the chosen library, feeding in your cycle time and lead time data.
Ensure the visualizations are interactive, allowing users to filter and drill down into the data as needed. This might involve adding date range selectors, dropdowns, or other UI elements.