Catégories
Start-up et applications

Ne jetez pas ce code jetable

Vous voulez savoir rapidement à quel point un chef de projet est bon? Voici une vieille astuce de consultant: demandez à un programmeur de l’équipe combien de code jetable il a utilisé lors du dernier projet. Une bonne règle 80/20 est que plus le code jetable est utilisé pendant le développement, meilleur est le chef de projet.

Le code jetable fait référence aux programmes logiciels temporaires et aux routines créés pour aider au codage, aux tests, à la conversion et à la mise en œuvre du système final (livrable). Il y a une utilisation presque universelle du code jetable dans la création de logiciels de conversion, les programmes utilisés pour déplacer les données de l'ancien système de classement vers le nouveau.
Une fois la conversion terminée, le logiciel de conversion est souvent jeté, ce qui conduit à l'étiquette jetable.

Bien que le logiciel de conversion puisse être l'utilisation la plus évidente du code jetable, il existe de nombreux autres exemples. Les programmeurs utilisent du code jetable dans les tests unitaires pour afficher les variables d'application à différents endroits du programme. Les équipes de base de données créent une ou plusieurs bases de données, bien avant que la conception finale de la base de données ne soit terminée, pour donner aux programmeurs d'application l'accès aux données dont ils ont besoin pour faire leur travail. Le code jetable peut également être utilisé pour relier des programmes afin de simuler un système intégré.

Certains développeurs créent des systèmes de test entiers, rivalisant parfois avec la taille du système livrable. Ces systèmes de test hébergent les données de test dans des bases de données de test temporaires, exécutent les données de test par rapport au système à tester, analysent et rapportent les résultats des tests, puis actualisent / réinitialisent l'ensemble du système de test afin que le test puisse être exécuté à nouveau.

Vers la fin du cycle de développement, une série de sous-systèmes jetables prépare l'environnement informatique pour le nouveau système. Outre les programmes de conversion, il existe des systèmes de secours qui, si la conversion de l'ancien système au nouveau ne se passe pas bien, suppriment le nouveau système, le remplace par l'ancien et appliquent à l'ancien système toute activité de données (ajoute, modifie et supprime) généré par le nouveau système défectueux.

Combien de code jetable est écrit pour le projet de développement de systèmes moyen? Il est difficile de trouver des chiffres précis, mais des informations anecdotiques indiqueraient que dans quelques situations, la moitié de tout le code écrit pendant le développement est jetable, avec 20-25 pour cent une moyenne viable.

Quelle est l'importance du code jetable pour le développement de systèmes? Considérez bien que presque tous les outils de développement disponibles dans le commerce – des générateurs de code, des débogueurs et des outils de test, aux générateurs d'interface graphique, aux outils de référence croisée, aux répertoires, etc. – ont commencé comme du code jetable de quelqu'un. À un moment donné, un entrepreneur intelligent a pensé qu'il y avait une opportunité de partager les meilleurs outils jetables avec la communauté de développement de systèmes… pour un prix.

Cependant, l'approche actuelle des logiciels jetables pose deux problèmes. Elles sont:

Le code jetable, à l'exception possible d'un sous-système de conversion, est souvent considéré comme le domaine du programmeur. Les programmeurs individuels décident de la quantité de code jetable qu'ils vont créer, quand ils le créeront et à quoi il ressemblera. Quand ils en ont fini avec, si cela est utile, ils peuvent le conserver dans une bibliothèque ou un dossier privé; s'il n'est que médiocre ou pire, ils pourraient le supprimer.

Les chefs de projet travaillent dur pour s'assurer que tous les livrables sont pris en compte lors de la création du plan de projet. Le chef de projet a besoin de savoir exactement ce qui sera livré à l'utilisateur pour calculer les coûts et les calendriers avec un certain espoir de précision. C'est une tâche ardue. Déterminer ce qui doit être livré, avant de définir ce qui doit être livré, est déjà assez difficile, mais ce n’est que le début des maux de tête du chef de projet. Étant donné que le code jetable peut être d'une taille considérable, peut-être 25% du code total écrit, il doit être pris en compte lors de l'élaboration du plan de projet.

Parfois, le chef de projet est suffisamment astucieux pour inclure un logiciel de conversion dans le plan. Rarement d'autres formes de code jetable, telles que des sous-systèmes de secours, sont incluses. La vérité est que le code jetable est généralement une planification après coup.

Il existe deux solutions à ces problèmes qui sont, en fait, de grandes opportunités pour améliorer la planification tout en réduisant les coûts et en augmentant la productivité.

Tout d'abord, faites du code jetable une partie intégrante du projet et de la gestion de projet
Le chef de projet doit considérer le besoin, le développement et l'utilisation de tout le code jetable comme une partie intégrante du système en cours de développement et son potentiel de réutilisation.

Un homme politique français célèbre a dit un jour que la guerre était trop importante pour être laissée aux généraux. Ignorant toute sagesse potentielle qui pourrait être dans cette déclaration, on peut dire avec confiance que le code jetable est trop important pour être laissé aux programmeurs. Son statut doit passer d'outil de codage à des sous-systèmes potentiellement importants nécessitant l'attention du chef de projet, de l'analyste et du concepteur.

La direction peut déléguer les tests unitaires aux programmeurs, mais les problèmes majeurs, tels que la conversion, les tests système et les systèmes de back-out, doivent faire l'objet d'une attention de la direction.

La sagesse entrepreneuriale doit être appliquée à l'informatique pour propager les meilleures pratiques. Les routines jugées jetables devraient être examinées pour leur utilisation future potentielle. La réutilisation peut être aussi simple que de stocker le code dont on n'a plus besoin «tel quel» ou de généraliser des routines pour une adoption plus variée et plus générale. Cette approche n'est pas nouvelle pour les éditeurs de logiciels, qui considèrent leurs bibliothèques logicielles internes de code réutilisable comme un avantage critique du développement de systèmes qui fournit une base pour des produits meilleurs et moins chers.

N'importe quel magasin informatique peut faire la même chose pour peu ou pas de frais. Il suffit que le chef de projet, ou une personne déléguée à la tâche, visite les tranchées à la recherche de gemmes jetables. Ensuite, les chefs de projet ou le service informatique doivent voir que les routines valables sont correctement documentées, hébergées et leur utilisation encouragée.

Deuxièmement, inclure du code jetable dans le processus de planification
Reconnaissez que le code jetable peut être une partie considérable du projet global de développement de systèmes et que son plein impact est souvent sous-estimé. Assurez-vous que les coûts et les horaires du code jetable sont regroupés dans le plan, même s'il n'existe qu'en tant qu'élément de frais généraux.

Étudiez l'impact du code jetable sur les projets antérieurs pour obtenir des estimations plus précises. Impliquez d'autres chefs de projet – que ce soit avec une pause-café rapide ou une réunion formelle – pour découvrir les expériences organisationnelles avec du code jetable et institutionnaliser les résultats.

Assurez-vous que, à l'avenir, le code jetable fait partie intégrante de toutes les revues post-projet. Documentez l'impact réel du code jetable sur le projet, pas seulement ce qui était prévu.

C'est l'occasion pour le chef de projet de briller tout en améliorant les performances de développement des systèmes à peu ou pas de frais supplémentaires. Des offres comme celle-ci sont difficiles à trouver. Le chef de projet avisé en profite.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *