feuilles de temps: le fléau de l'existence de chaque ingénieur logiciel. Ne préféreriez-vous pas lutter contre un bug complexe à 3 heures du matin que de documenter méticuleusement votre journée de travail? Malheureusement, le travail indépendant ou à temps plein nécessite souvent cette tâche fastidieuse.
Cette année, j'ai atteint ma limite. Après une année mouvementée de projets - certains annulés, certains repensés, d'autres indéfiniment reportés - j'ai fait face à une date limite de feuille de fin d'année. La perspective de recréer manuellement mon travail de toute l'année était intimidante. Ma solution? L'automatiser.
Ceci est mon voyage de la peur de la feuille de temps à une aventure de codage. Préparez-vous pour une approche rationalisée et efficace.
Préparez le terrain:
L'entrée manuelle était impossible. Mon plan: Extraire les données de mes outils quotidiens - Jira, Git, Slack et Outlook - et les combiner dans une feuille de temps complète.
mon arsenal:
Tout d'abord, j'ai abordé Jira. J'avais besoin de tous les billets qui m'ont été attribués dans un délai spécifique. L'API robuste de Jira et un peu de magie Python ont rendu cela réalisable.
Ce script Python récupère les billets Jira:
<code class="language-python">import os from jira import JIRA import pandas as pd from datetime import datetime import logging import sys from typing import List, Dict, Any import argparse # ... (rest of the script remains the same) ...</code>
Ensuite, j'ai traité Git. Étant donné que notre équipe comprend des identifiants de billets JIRA dans les messages de validation, j'ai créé un script pour extraire les données de validation et les lier aux billets.
<code class="language-python">import os from jira import JIRA import pandas as pd from datetime import datetime import logging import sys from typing import List, Dict, Any import argparse # ... (rest of the script remains the same) ...</code>
git log
pour récupérer l'historique des engagements. Slack s'est avéré plus difficile. Les messages sont riches en contexte, ce qui rend difficile la cartographie directe des tâches. J'ai contourné l'IA (en raison du coût et de la complexité) et j'ai créé un billet générique pour le temps de communication, puis j'ai écrit un script pour récupérer les messages Slack.
<code class="language-python">import subprocess import csv import re def get_git_commits(since_date=None, author=None): # ... (rest of the script remains the same) ...</code>
Enfin, j'ai incorporé des réunions. En utilisant la bibliothèque exchangelib
Python, j'ai créé un script pour extraire les événements de calendrier et les exporter vers un CSV.
<code class="language-python">import os from datetime import datetime from slack_sdk import WebClient from slack_sdk.errors import SlackApiError import pandas as pd # ... (rest of the script remains the same) ...</code>
Maintenant, j'avais quatre fichiers CSV:
Dans Partie 2 , je vais montrer comment j'ai combiné ces ensembles de données pour créer une feuille de temps complète. Astuce: plus de python, de manipulation de données et une touche de magie.
Restez à l'écoute! N'oubliez pas: l'efficacité est essentielle.
Quelle est votre tâche la moins préférée en tant qu'ingénieur logiciel? L'avez-vous déjà automatisé? Partagez vos expériences dans les commentaires!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!