Bienvenue sur Développement Agile

Référence sur le développement logiciel Agile. Nous traitons de conception, de programmation, de pratiques de génie logiciel, d'essais et d'autres sujets connexes.

La valeur des actifs logiciels

Publié par David Beaumier le mercredi 26 novembre 2014 à 09:39

J’ai beaucoup apprécié l’allocution d’ouverture du dernier Agile Tour de Québec par Michael Feathers. J’ai trouvé qu’il abordait des aspects souvent négligés en développement logiciel. Une des choses qui m’a particulièrement accrochée c’est lorsqu’il a mentionné que les organisations devraient devenir plus consciente de la valeur et de l'état de leurs actifs logiciels.

Aujourd’hui combien d’organisation seraient en mesure de fonctionner normalement sans utiliser une solution logicielle? J’en connais bien peu. La plupart des organisations ont des besoins assez élaborés : outils de collaboration, suivi des opérations, relation clientèle, gestion financière, partage de fichiers, systèmes de téléphonie, etc. Qu’elles aient acquis et piloté un progiciel ou investi dans le développement d’une application sur mesure, des ressources importantes ont été engagées dans ces  solutions logicielles.

Malheureusement, la nature même d’un logiciel (ne dit-on pas justement software en anglais) vient fausser la perception que peuvent en avoir les différentes fonctions de l’organisation. En comptabilité on inclut les logiciels dans la catégorie des « actifs incorporels », aussi appelée « capital immatériel ». Bien qu’il existe des façons de déterminer la valeur financière courante de ces actifs, ça se corse lorsqu’il vient le temps de planifier les investissements futurs requis pour maintenir ceux-ci dans un état permettant d’apporter de la valeur à l’organisation.

Avouez que c’est plus simple de déterminer que l’entrepôt vaut 250 000$ et de prévoir un montant annuel pour couvrir les taxes foncières, les assurances, etc. Un gestionnaire attentif remarquera probablement aussi que la toiture commence à être endommagée et qu’il faudra envisager son remplacement d’ici 2-3 ans.

L'hypothèque logcielle

Est-ce que le même gestionnaire sera en mesure de se rendre compte que le moteur de base de données de son système d’expédition s’apprête à être dépassé en fonction du volume projeté des ventes des prochains mois? Est-ce que les parties prenantes ont pris la peine d’inclure la capacité du système dans leurs analyses?  Pas certain. En contrepartie, est-ce que l’équipe de développement a communiqué le vieillissement de la technologie? A-t-elle mis en place ce qu’il faut pour mesurer les performances du système en production?

HypothequeLogicielleLe jour ou le système deviendra si lent qu’il ne sera quasiment plus utilisable (sans doute pendant la période la plus active de l’année) est-ce que l’organisation aura le luxe de procéder à une mise à jour tout en douceur? L’équipe de développement pourrait devoir prendre certains raccourcis pour livrer rapidement une solution corrigée. C’est une approche tout à fait acceptable si elle permet à l’organiser de retrouver sa vitesse de croissance. Par contre, toutes les parties impliquées doivent être conscientes de l’hypothèque logicielle qui grève maintenant le système.

Prenons l’exemple du camion de livraison d’un marchand de meubles pour illustrer cette situation. Si ce marchand néglige l'entretien de son camion en évitant de procéder à un changement d’huile pour pouvoir effectuer plus de livraisons, il risque d’en payer le prix s’il ne planifie pas un autre moment pour faire cet entretien. Une panne lors d'une grosse journée de livraisons risque lui coûter cher et lui causer bien plus de souci qu’une période d’entretien planifiée.

Feathers a mentionné dans son allocution que certaines organisations rendent ces hypothèques visibles et incluent dans le plan de produit les activités requises pour s’en libérer. En procédant au remboursement, l’organisation réduit la possibilité de se retrouver dans une situation où sa dette logicielle l’empêche de saisir une opportunité d’affaires.

C'est, à mon avis, un devoir qu’ont les professionnels du développement logiciel de garder l'organisation dans son ensemble informée de l'état de leurs systèmes. L’information doit pouvoir remonter de l’équipe de développement jusqu’aux parties prenantes. Il faut travailler pour éviter les situations où un gestionnaire se fait dire un bon matin « Votre logiciel est désuet. Il faut le réécrire et on en a pour x mois et ça vous coûtera x centaines de milliers de $ ».  En même temps, les organisations doivent devenir plus sensibles à l’égard de leurs actifs logiciels, poser des questions aux équipes et prévoir un plan pour limiter le gonflement de l’hypothèque logiciel. 

Pour en savoir plus

D'autres billets sur le même thème

Agile Tour 2014 - Une mise en production à chaque heure de la journée

Publié par Jean-Nicolas Viens le mardi 11 novembre 2014 à 00:00

Description

L’intégration continue c’est bien, mais le déploiement continu c’est mieux! Le gain est évident : une boucle de rétroaction encore plus rapide. Les dangers le sont également : les outils et tableaux de bords doivent être digne de confiance. La qualité doit également être au rendez-vous. Comment diminuer ces risques et aller chercher ce gain en rétroaction est le sujet que nous allons explorer.

  • Présentateur: Jean-Nicolas Viens
  • Niveau : Intermédiaire
  • Public cible : Développeurs et architectes

Contenu

Agile Tour 2014 - Architecture Agile et développement durable

Publié par Félix-Antoine Bourbonnais le mardi 11 novembre 2014 à 00:00

Description

Beaucoup d’équipes ont embrassé Scrum sans considérer l’architecture nécessaire pour soutenir un tel rythme et minimiser la dette technique. Comment adopter une architecture émergente, malléable et facile à changer? Bref, comment faire du développement logiciel durable? Principes SOLID, patrons de conception d’entreprise, architecture émergente et pilotée par le domaine (DDD) sont au menu.

Présentation

Agile Tour 2014 - Les tests et la qualité: moteur de productivité

Publié par Félix-Antoine Bourbonnais, Pascal Roy le mardi 11 novembre 2014 à 00:00

Description

Comment transformer la qualité, les tests et le déploiement en moteur de productivité plutôt qu’en simple poste de dépenses? Portés par Lean et Agile, de grands acteurs (ex.: Google) ont transformé leur département d’assurance qualité pour le placer au coeur du processus de production! Limitez les tests réalisés après l’itération et diminuez la pression sur votre équipe qualité.

  • Présentateurs:  Félix-Antoine Bourbonnais et Pascal Roy
  • Niveau : Débutant
  • Public cible : Tous, spécifiquement Assurance qualité, gestionnaires et équipes de développement.

Présentation

En l'honneur de M. Feathers

Publié par Pascal Roy le jeudi 25 septembre 2014 à 00:00
Michael Feathers

En l’honneur de la visite de Michael Feathers à Montréal et Québec pour sa formation Working Effectively with Legacy Code en novembre, nous avons pensé vous présenter une liste de nos coups de coeur parmi les articles qu’il a publiés au cours des dernières années.

J’ai eu le privilège de travailler avec Michael pendant quelques années en compagnie d’Uncle Bob (Robert C. Martin). Michael possède une capacité impressionnante à synthétiser l’essence même de ce qu’est le développement logiciel, de comprendre les problématiques que nous vivons et proposer des solutions pragmatiques et utilisables au quotidien.

Michael s’intéresse vraiment à tous les aspects du développement logiciel. Pas étonnant que son livre "Working Effectively with Legacy Code" soit reconnu comme le 3e ouvrage le plus influent en Agilité (2011).

Si vous ne le connaissez pas, prenez le temps de le lire. Vous ne le regretterez pas. Bonne lecture!

Pascal Roy, VP
Elapse Technologies

 

Son livre

Working effectively with legacy code book

Vous avez déjà entendu parler de ce livre

C’est un ouvrage marquant du monde de l’Agilité… Si vous devez travailler dans un environnement de code patrimonial (Legacy Code), n’hésitez pas une minute à vous le procurer, car il aura sûrement un impact profond sur votre façon de travailler dans le futur.

Code patrimonial et tests

Getting empirical about Refactoring 
A set of Unit Testing Rules

Langages fonctionnels et OO

Tell Above, and Ask Below - Hybridizing OO and Functional Design 
Functional vs Object Oriented Programming with Michael Feathers

Architecture

The humble dialog box

Vous pouvez également profiter de la présence de Michael ces 3-4 novembre 2014 à Montréal et les 6-7 novembre à Québec et assister à sa formation « Working Effectively with Legacy Code ». C’est une occasion unique de partager avec un des pionniers de l’Agilité.

Ne manquez pas non plus le 5@7 du lundi soir à Montréal où Michael explorera comment les différentes pratiques d’estimation utilisées en Agile peuvent être utilisées pour atteindre des objectifs bien spécifiques au sein de nos organisations.

Archive