Aller au contenu
  1. Exemples/

Génération automatique de documentation de backlog avec Google Sheets et Apps Script

·2 mins· loading · loading · · ·
Documentation
Adrien D'acunto
Auteur
Adrien D’acunto
Sommaire

Génération automatique de documentation de backlog avec Google Sheets et Apps Script
#

Dans un projet Agile, il est essentiel de documenter les User Stories (US) pour que toute l’équipe dispose d’une vision claire des besoins. Grâce à Google Sheets et Apps Script, il est possible d’automatiser cette génération de documentation.

Préparer le backlog dans Google Sheets
#

Imaginons un fichier Backlog avec une structure simple :

Script principal code.gs
#

Le script suivant automatise la récupération des US prêtes à la documentation et crée un Google Doc pour chaque US :

function main() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet();
  const backlogName = tabs?.get('backlog') || 'Backlog';
  const backlogSS = sheet.getSheetByName(backlogName);

  if (!backlogSS) {
    SpreadsheetApp.getUi().alert(`Feuille "${backlogName}" introuvable.`);
    return;
  }

  const lastBacklogLine = backlogSS.getLastRow();
  if (lastBacklogLine < 2) {
    SpreadsheetApp.getUi().alert('Aucune donnée trouvée dans le backlog.');
    return;
  }

  const rangeUS = backlogSS.getRange(2, 1, lastBacklogLine - 1, 7);
  const USValues = rangeUS.getValues();

  const usReady = USValues.filter(row => Boolean(row[0]));

  if (usReady.length === 0) {
    SpreadsheetApp.getUi().alert('Aucune US prête à être documentée.');
    return;
  }

  const ui = SpreadsheetApp.getUi();
  const dialogResponse = ui.alert(
    `${usReady.length} US sont prêtes à être documentées. Voulez-vous continuer ?`,
    ui.ButtonSet.OK_CANCEL
  );

  if (dialogResponse === ui.Button.OK) {
    const doc = getDoc(usReady[0]);
    usReady.forEach(us => generate(us));
    doc.saveAndClose();
    ui.alert('Documentation générée avec succès ✅');
  }
}

Paramètres du projet (Para.gs)
#

Pour simplifier la maintenance, on centralise les noms d’onglets :

const tabs = new Map([
  ['backlog', 'Backlog'],
  ['params', 'Params']
])

Génération des documents (GenerateDoc.gs)
#

Le script crée un document par US et applique un style minimal :

const generate = (usRow) => {
  console.log(`About to generate doc for ${usRow[1]}`)
  // Ici, on pourrait parcourir chaque colonne pour enrichir le document
}

const getDoc = (usReady) => {
  const title = `[US-${usReady[1]} - ${usReady[2]}]`;
  const doc = DocumentApp.create(title);
  const body = doc.getBody();

  body.setMarginTop(72)
      .setMarginBottom(72)
      .setMarginLeft(72)
      .setMarginRight(72);

  const mainTitle = body.appendParagraph(title);
  mainTitle.setHeading(DocumentApp.ParagraphHeading.TITLE);
  mainTitle.setAlignment(DocumentApp.HorizontalAlignment.CENTER);
  mainTitle.setAttributes({ [DocumentApp.Attribute.FONT_SIZE]: 20 });

  body.appendParagraph('');

  const description = body.appendParagraph(usReady[3] || 'Description non fournie');
  description.setAttributes({
    [DocumentApp.Attribute.FONT_SIZE]: 11,
    [DocumentApp.Attribute.FONT_FAMILY]: 'Arial',
  });

  body.appendParagraph('');

  const businessContext = body.appendParagraph('Business context');
  businessContext.setHeading(DocumentApp.ParagraphHeading.HEADING2);
  businessContext.setAttributes({ [DocumentApp.Attribute.FONT_SIZE]: 16 });

  return doc;
}

Résultat
#

Pour chaque US prête, un Google Doc est créé avec :

Le titre de l’US

La description

Le contexte métier

Le processus est rapide, fiable et centralisé. Plus besoin de copier-coller chaque US manuellement dans un document.

Articles connexes

Le pattern Singleton - garantir une instance unique
·12 mins· loading · loading
Conception Back-End
Modélisation de base de données - Le cas Langlois
·7 mins· loading · loading
Conception Back-End
Single Responsibility Principle (SRP) - Refactoring d'une Classe Invoice
·14 mins· loading · loading
Conception Back-End
Les Interfaces en Programmation Orientée Objet - Principe SOLID et Exemple Pratique
·7 mins· loading · loading
Conception Back-End
Les patrons de conception
·7 mins· loading · loading
Conception
Fonctions Commerciales et SAP - Guide Complet
··9 mins· loading · loading
ERP SAP