Le développement de logiciels a parcouru un long chemin depuis l’apparition des premiers ordinateurs. Autrefois, il s’agissait simplement du fait de pouvoir écrire n’importe quel programme d’une seule traite. Désormais, de nouvelles compétences en programmation apparaissent tous les jours, car les professionnels ont pris conscience que c’est la technologie du développement des logiciels qui définit les progrès de l’informatique.
Vers la formalisation d’un premier processus de conception
Dans les années 60, de nombreux théoriciens et praticiens ont réalisé que la création de nouveaux langages de programmation plus perfectionnés à eux seuls ne pouvait pas résoudre tous les problèmes liés au développement de programmes. Des recherches intensives dans le domaine des tests de programmes et de l’organisation du processus de développement des logiciels ont commencé.
Dans les années 70, un modèle a été formulé. Il se compose de plusieurs phases : l’analyse, la conception, le développement, les tests et le déploiement. Ce modèle a été baptisé modèle en cascade.
Du modèle en cascade vers les méthodes agiles
Le modèle en cascade est une méthodologie avec laquelle tout est initialement pensé et établi. Il présente des avantages sur des projets dans lesquels toutes les exigences sont connues à l’avance et ne peuvent pas changer en cours de route, et où il n’y a aucun risque de commettre une erreur.
Ces projets sont évidemment très rares dans le monde du numérique. Pour faire face au changement, limiter les erreurs et évoluer en fonction du terrain, les équipes doivent mettre en place des pratiques flexibles. Elles impliquent par exemple la vérification de la conformité du produit après chaque étape du travail, plutôt qu’à la toute fin. Un grand nombre de méthodes ont donc été développées pour faire face au changement et engager davantage le client sur toutes les étapes du travail, afin de lui apporter la meilleure réponse possible.
L’eXtrême Programming ou XP
L’eXtrême Programming est une méthode agile connue pour reposer sur cinq valeurs primordiales. La communication est la première valeur, et c’est celle qui permet aux équipes de se comprendre, et d’améliorer les relations avec les clients.
Le retour est la deuxième : grâce à un retour clair et rapide, les modifications se font sans attendre. L’avancée dans le développement est simplifiée. La simplicité est d’ailleurs la troisième valeur de l’eXtreme Programming : elle est favorisée pour permettre les modifications et l’évolution du logiciel sans difficulté.
Le courage est la quatrième valeur. L’équipe ne doit pas hésiter à essayer de nouvelles choses ou à recommencer pour un résultat optimal.
Enfin, le respect est la dernière valeur et la plus évidente. Il est nécessaire de la part de l’équipe de développement, du client et des parties prenantes.
Test driven development
Le développement dirigé par les tests (TDD) est une méthode qui est basée sur des exigences logicielles qui sont converties en cas de test avant la phase de développement et à chaque étape de création. Elle consiste à essayer de manière répétée le logiciel par rapport à tous les cas de test.
Mettre en place la méthode TDD (test driven development) est aussi une question de changement de culture, car cette approche s’oppose à celle qui consiste à développer d’abord le logiciel et à créer ensuite les cas de test.
Pour faire simple, le développeur ajoute un test qui vise à répondre à une exigence présente sur un scénario. Il s’assure que le test ne fonctionne pas avant de développer le code qui sera testé. Il développe ensuite la fonctionnalité visant à répondre au test. Et enfin, il s’assure que le test fonctionne. Il peut au besoin améliorer la qualité de son code en s’assurant que son test fonctionne toujours. Le TDD fait partie de l’eXtreme Programming.
Feature Driven Development (FDD)
La méthode Feature Driven Development a été conçue en 1997, par Jeff De Luca. L’objectif est simple : diviser des tâches en plusieurs tâches plus petites et plus courtes, afin d’avoir le contrôle sur la gestion du développement.
Cinq étapes sont nécessaires et sont centrées autour des fonctionnalités développées pour le logiciel. Dans un premier temps, les grandes lignes du logiciel sont pensées et notées, pour planifier une liste des différentes fonctionnalités qui devront être créées. Ensuite est déterminé l’ordre de réalisation de chaque fonctionnalité. Elles sont progressivement développées et testées.
Lean Software Development
La méthodologie Lean utilisée par de grandes entreprises comme Toyota, et visant à éliminer le gaspillage au sens large, a été adaptée au développement de logiciels en 2003 par les programmeurs Mary et Tom Poppendieck. Ces derniers ont écrit le livre « Lean Software Development: An Agile Toolkit », dans lequel ils exposent les principes et les pratiques du développement de la méthode. On retrouve dans le Lean Software Developement le TDD, la création de bases de connaissances, mais la méthode va bien plus loin et incite également à respecter le personnel.
Dynamic Systems Development Method (DSDM)
Le Dynamic Systems Development Method, simplifié par l’acronyme DSDM, est une méthode agile qui se concentre sur le cycle complet du projet. Avec DSDM, les développeurs se concentrent sur les objectifs précis et stratégiques de l’application, pour que le logiciel soit développé en ce sens. Pour cela, DSDM se base sur huit principes qui permettent de rester concentré sur les besoins, avec une communication claire, une collaboration entre les différents acteurs et une livraison à l’heure, sans compromettre la qualité du développement.
