Introduction :
Suite à une demande client ou même une idée de l’équipe, d’un besoin ou même du fait d’une mauvaise utilisation nous travaillons à faire évoluer les applications. Le manager nous charge de rajouter certaines fonctionnalités. Les fonctionnalités peuvent être des modifications sur le fonctionnement, problème de droit utilisateur sur certaine fonctionnalité sensible, message d’erreur, nouvelle fenêtre.
Contexte :
Les fonctionnalités demandées peuvent-être rajoutés, comme un buttons, une nouvelle gestion de celui-ci, un
rajout d’une nouvelle fenêtre de saisie, de visualisation, une gestion de nouveau type de fichier d’import, d’un
algorithme pour des statistiques. Les évolutions sont vastes et cela est une partie sensible du développement
qui peut impacter le service qui tourne actuellement.
C’est un travail que je réalise régulièrement en entreprise.
Réalisation :
Evolution du code/base de donnée :
Dans un premier temps il va falloir estimer le temps de développement d’une modification que l’on nous demande (C2.3.2.2, C4.1.1.2), si nécessaire mettre à jours des plugins (C3.2.2.2), faudra analyser la demande pour réaliser dans un premier temps la modification de la base de donnée avant de modifier les codes (C4.1.3.3, c4.1.3.4, C4.1.1.1). Il a fallu repérer la partie de code à faire évoluer (C4.2.2.1, C4.2.2.2).
Test :
Une fois le développement de l’évolution terminé il faut que l’on teste le bon fonctionnement avec des jeux d’essais (c1.2.4.2, C4.2.2.3), nous avons vérifiés que cela fonctionne comme prévus et que l’on ne régresse pas (C1.2.4.1, C4.2.3.1). Si des erreurs surviennent on recherche la source du problème puis on corrige (C4.1.8.2).
Déploiement :
Une fois un le développement terminé on commit sur la plateforme gitlabs, afin de visionner notre code (C5.1.3.2), il peut arriver que des conflits se génèrent alors on doit fusionner le code, analyser les codes pour ne pas mettre une mauvaise ligne de code en production (c5.1.3.3). Nous mettons à jours notre base de connaissance sur des traitements spécifiques (C5.1.2.2). Une fois commit sur le serveur de production un CI/CD tache automatique déploie le code (c1.3.4.2). Il faut par la suite réaliser des requêtes pour le Framework cake PHP prend en compte les modifications (c1.3.4.3).
Supervision :
Une fois l’application déployée, nous réalisons une supervision des performance serveur (serveur web/sql) afin de maintenir une qualité service, Les modification appliquer au service peuvent impacter l'exécution de l'application (boucle, slow query) (C2.1.2.4).
Conclusion :
La maintenance évolutive m’a permis de m’améliorer dans l’estimation du temps prévue pour un développement. Les tests de non régression est une tâche importante qui demande un grand travail d’analyse, cela a permis de renforcer mes compétences. La modification de code est plus simple à réaliser qu’une création de 0 du fait que nous avons une base de code et une base de donnée déjà créé. Je préfère réaliser la création d’application que faire tout simplement des petites modifications.
Activités et compétences mises en œuvre :
- A1.2.4 Détermination des tests nécessaires à la validation d’un service
- C1.2.4.1 Recenser les tests d’acceptation nécessaires à la validation du service et les résultats attendus
- C1.2.4.2 Préparer les jeux d’essai et les procédures pour la réalisation des tests
- A1.3.4 Déploiement d’un service
- C1.3.4.2 Automatiser l’installation de la solution
- C1.3.4.3 Mettre en exploitation le service
- A2.1.2 Évaluation et maintien de la qualité d’un service
- C2.1.2.4 Superviser les services et leur utilisation
- A2.3.2 Proposition d’amélioration d’un service
- C2.3.2.2 Évaluer le délai et le coût de réalisation du changement proposé
- A3.2.2 Remplacement ou mise à jour d’éléments défectueux ou obsolètes
- C3.2.2.2 Mettre en œuvre une procédure de remplacement ou de migration
- A4.1.1 Proposition d’une solution applicative
- C4.1.1.1 Identifier les composants logiciels nécessaires à la conception de la solution
- C4.1.1.2 Estimer les éléments de coût et le délai de mise en œuvre de la solution
- A4.1.3 Conception ou adaptation d’une base de données
- C4.1.3.3 Programmer des éléments de la solution applicative dans le langage d’un SGBD
- C4.1.3.4 Manipuler les données liées à la solution applicative à travers un langage de requête
- A4.1.8 Réalisation des tests nécessaires à la validation d’éléments adaptés ou développés
- C4.1.8.2 Mettre en évidence et corriger les écarts
- A4.2.2 Adaptation d’une solution applicative aux évolutions de ses composants
- C4.2.2.1 Repérer les évolutions des composants utilisés et leurs conséquences
- C4.2.2.2 Concevoir les mises à jour à effectuer
- C4.2.2.3 Élaborer et réaliser les tests unitaires des composants mis à jour
- A4.2.3 Réalisation des tests nécessaires à la mise en production d’éléments mis à jour
- C4.2.3.1 Élaborer et réaliser des tests d’intégration et de non régression de la solution mise à jour
- A5.1.2 Recueil d’informations sur une configuration et ses éléments
- C5.1.2.2 Actualiser les caractéristiques des éléments de la configuration
- A5.1.3 Suivi d’une configuration et de ses éléments
- C5.1.3.2 Reconstituer un historique des modifications effectuées sur les éléments de la configuration
- CC5.1.3.3 Identifier les éléments de la configuration à modifier ou à remplacer