ls1intum / Hephaestus

Hephaestus - A Framework to Support Novice Software Engineers in Collaborative Environments
https://hephaestus.ase.cit.tum.de
MIT License
8 stars 1 forks source link

Implement bad practice detector #145

Closed iam-flo closed 1 day ago

iam-flo commented 3 weeks ago

This is an epic issue

Description:

Develop and integrate a bad practice detection feature to help monitor the development environment and provide actionable insights on areas needing improvement. This feature will identify practices that deviate from established guidelines and notify users to promote adherence to best practices.

Steps:

Development Environment Monitoring: Implement a module to monitor relevant user activities within the development environment (e.g., pull requests, issues, and reviews). Bad Practice Detection Pipeline: Design and build a detection pipeline that aggregates monitored data and identifies potential bad practices. Guideline-Based Detection: Set up detection logic based on specific guidelines for each type of activity. This includes identifying practices like prolonged open pull requests, vague issue descriptions, or insufficient code review feedback. Implement Activity-Specific Guidelines: Define and integrate detailed guidelines for each activity type (e.g., pull requests, issues, reviews) to enhance the accuracy of detection and provide tailored feedback. This feature will enhance the dashboard’s capability to promote best practices by automatically highlighting areas for improvement based on real-time activity monitoring.

Objectives

Monitor the development environment looking for bad practices based on individual activities, workflows, or software engineering metrics. (see example below) For monitoring, create a detection pipeline that reacts to activity updates, as well as aggregated data, allowing detection after changes to a activity, as well as e.g. inactivity. Integrate Guidelines into the pipeline that define rules, good practices , and bad practices for the pipeline. Define good and bad practices.

Tasks

Example