fix: migration des scripts de 'core' vers 'adopt' et mise à jour documentation
- scripts/generate-team-visualization-data.js : remplacement de 'core' par 'adopt' dans generateCongestionMatrix() et generateGenesisTeam() - scripts/analyze-business-metrics.js : remplacement de 'core' par 'adopt' dans 3 endroits - docs/app/guide-page-equipe.md : précisions sur l'utilisation de 'adopt' pour les technologies critiques - docs/app/architecture.md : précisions sur les technologies utilisées dans les visualisations Tous les scripts utilisent maintenant les rings standards (adopt|trial|assess|hold) conformément à la migration effectuée.
This commit is contained in:
@@ -221,8 +221,8 @@ Le script `scripts/generate-team-visualization-data.js` :
|
||||
- Lit les technologies depuis `radar-business/2025-01-15/*.md`
|
||||
- Génère `public/team-visualization-data.json` avec :
|
||||
- Données réseau (nodes/edges) pour Cytoscape.js
|
||||
- Matrice de congestion pour ECharts
|
||||
- Équipe de genèse MVP avec statistiques
|
||||
- Matrice de congestion pour ECharts (technologies `adopt` uniquement - anciennement "core")
|
||||
- Équipe de genèse MVP avec statistiques (basée sur les technologies `adopt`)
|
||||
|
||||
Ce fichier est utilisé par `public/team.html` pour les visualisations interactives.
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ La page propose trois visualisations complémentaires :
|
||||
|
||||
**Fonctionnalités** :
|
||||
- **Axe X** : Membres de l'équipe
|
||||
- **Axe Y** : Technologies
|
||||
- **Axe Y** : Technologies (uniquement les technologies "adopt" - anciennement "core")
|
||||
- **Couleurs** :
|
||||
- Vert : Technologie maîtrisée par le membre
|
||||
- Rouge : Technologie non maîtrisée
|
||||
@@ -74,6 +74,8 @@ La page propose trois visualisations complémentaires :
|
||||
- Filtrer par technologie ou membre
|
||||
- Identifier visuellement les technologies avec peu de personnes
|
||||
|
||||
**Note** : Seules les technologies avec `ring: adopt` sont affichées dans la matrice, car ce sont les technologies fondamentales en production (anciennement classées comme "core").
|
||||
|
||||
**Technologie** : ECharts (heatmap)
|
||||
|
||||
### 3. Équipe de Genèse MVP
|
||||
@@ -83,7 +85,7 @@ La page propose trois visualisations complémentaires :
|
||||
**Fonctionnalités** :
|
||||
- **Sélection automatique** : Algorithme qui sélectionne les membres selon :
|
||||
- Disponibilité >= 50%
|
||||
- Couverture maximale des technologies critiques
|
||||
- Couverture maximale des technologies critiques (technologies avec `ring: adopt` - anciennement "core")
|
||||
- Équilibre des compétences
|
||||
- **Statistiques** :
|
||||
- Nombre de membres sélectionnés
|
||||
@@ -242,9 +244,11 @@ Les données sont chargées depuis `/team-visualization-data.json` via `fetch()`
|
||||
Pour l'équipe de genèse MVP, le seuil est fixé à **50%**. Pour le modifier :
|
||||
|
||||
1. Ouvrir `scripts/generate-team-visualization-data.js`
|
||||
2. Modifier la constante `MIN_AVAILABILITY` dans la fonction `generateGenesisTeam()`
|
||||
2. Modifier le filtre `m.availability >= 50` dans les fonctions `generateCongestionMatrix()` et `generateGenesisTeam()`
|
||||
3. Régénérer les données : `node scripts/generate-team-visualization-data.js`
|
||||
|
||||
**Note** : Les technologies critiques utilisées pour la sélection sont celles avec `ring: adopt` (anciennement "core"). Pour modifier ce critère, changer le filtre `t.ring === 'adopt'` dans `generateGenesisTeam()`.
|
||||
|
||||
### Ajouter de nouvelles visualisations
|
||||
|
||||
1. Modifier `public/team.html`
|
||||
|
||||
@@ -136,8 +136,8 @@ function calculateMetrics(blips) {
|
||||
});
|
||||
}
|
||||
|
||||
// Technologies critiques (core + high impact)
|
||||
if (m.ring === 'core' && m.businessImpact === 'high') {
|
||||
// Technologies critiques (adopt + high impact) - anciennement "core"
|
||||
if (m.ring === 'adopt' && m.businessImpact === 'high') {
|
||||
metrics.criticalTechnologies.push({
|
||||
name: m.title,
|
||||
quadrant: m.quadrant,
|
||||
@@ -174,8 +174,8 @@ function identifyPatterns(blips, metrics) {
|
||||
for (const blip of blips) {
|
||||
const m = blip.metadata;
|
||||
|
||||
// Technologies critiques non différenciantes (commodité critique)
|
||||
if (m.ring === 'core' && m.differentiation === 'low') {
|
||||
// Technologies critiques non différenciantes (commodité critique) - anciennement "core"
|
||||
if (m.ring === 'adopt' && m.differentiation === 'low') {
|
||||
patterns.criticalNonDifferentiating.push({
|
||||
name: m.title,
|
||||
quadrant: m.quadrant,
|
||||
@@ -202,8 +202,8 @@ function identifyPatterns(blips, metrics) {
|
||||
});
|
||||
}
|
||||
|
||||
// Gaps de compétences critiques
|
||||
if (m.skillGap === 'high' && (m.ring === 'core' || m.businessImpact === 'high')) {
|
||||
// Gaps de compétences critiques - anciennement "core", maintenant "adopt"
|
||||
if (m.skillGap === 'high' && (m.ring === 'adopt' || m.businessImpact === 'high')) {
|
||||
patterns.skillGaps.push({
|
||||
name: m.title,
|
||||
ring: m.ring,
|
||||
|
||||
@@ -212,8 +212,8 @@ function generateNetworkData(technologies, members) {
|
||||
|
||||
// Générer la matrice de congestion
|
||||
function generateCongestionMatrix(technologies, members) {
|
||||
// Filtrer technologies core uniquement
|
||||
const coreTechs = technologies.filter(t => t.ring === 'core').sort((a, b) => {
|
||||
// Filtrer technologies adopt uniquement (anciennement "core")
|
||||
const coreTechs = technologies.filter(t => t.ring === 'adopt').sort((a, b) => {
|
||||
// Trier par businessImpact puis par coverage
|
||||
const impactOrder = { 'high': 3, 'medium': 2, 'low': 1 };
|
||||
const impactDiff = (impactOrder[b.businessImpact] || 0) - (impactOrder[a.businessImpact] || 0);
|
||||
@@ -261,7 +261,8 @@ function generateCongestionMatrix(technologies, members) {
|
||||
|
||||
// Générer l'équipe de genèse MVP
|
||||
function generateGenesisTeam(technologies, members) {
|
||||
const coreTechs = technologies.filter(t => t.ring === 'core');
|
||||
// Technologies adopt (anciennement "core") - technologies fondamentales en production
|
||||
const coreTechs = technologies.filter(t => t.ring === 'adopt');
|
||||
const availableMembers = members.filter(m => m.availability >= 50);
|
||||
|
||||
const genesisTeam = [];
|
||||
|
||||
Reference in New Issue
Block a user