Le développement de logiciels Agile ne concerne pas uniquement les développeurs
Personne n'a envie de livrer un logiciel rempli de bogues, qui fonctionne mal et qui ne satisfait pas réellement les clients. L'intégration continue et les revues de code empêchent cela... Mais vous devez vous demander qui a vraiment le temps de faire tout cela ? Eh bien, les équipes Agile et DevOps.
Les développeurs de logiciels Agile se concentrent sur le développement durable plutôt que sur l'héroïsme. La durabilité implique une bonne estimation, des stratégies de branching efficaces pour la gestion du code, des tests automatisés pour préserver la qualité et un déploiement continu pour obtenir un feedback rapide de la part des utilisateurs.
Mais pour adopter des pratiques de développement durable, il faut une discipline à laquelle beaucoup d'entre nous aspirent (mais ont du mal à appliquer). Pourquoi ? Parce que personne ne peut devenir Agile ou DevOps dans l'absolu. C'est la culture globale de l'organisation qui doit s'adapter. Parfois, un agent du changement, comme un ingénieur DevOps est nécessaire. Autrement dit, les leaders de projets doivent adhérer à l'idée que la qualité est plus importante que le cahier des charges ou le calendrier. C'est souvent l'aspect le plus difficile dans l'adoption d'Agile.
Mais cela en vaut la peine ! Les développeurs ont la liberté et la responsabilité de développer des logiciels de façon durable, tout en conservant d'excellentes relations avec l'entreprise. Quant à l'entreprise, elle peut commercialiser un produit de meilleure qualité, ce qui renforce encore cette excellente relation avec l'ingénierie. De plus (et c'est le meilleur argument), les développeurs de logiciels Agile ont rarement l'impression de devoir « marcher vers l'échafaud ». Lorsque le développement prend du retard sur le calendrier à cause des efforts (sous-estimés) qu'implique le maintien d'une excellente qualité, l'aspect « cahier des charges » du triangle de fer peut être assoupli pour tenir compte de cette réalité. Et personne n'est pour autant pris en otage pendant le week-end.
Tous les développeurs connaissent le « triangle d'or » de la gestion de projets : périmètre, calendrier et qualité. Nous avons, pour la plupart, travaillé sur des projets dont le cahier des charges était inflexible, le calendrier malmené et le développement étouffé par l'augmentation de la dette technique. Et parfois, comme si cela ne suffisait pas, le produit final ne correspondait même pas à ce que le marché espérait. C'est une situation frustrante et bien connue.
Mais n'ayez crainte : il y a de bonnes nouvelles.
Grâce au développement de logiciel Agile, le cahier des charges devient la variable dynamique. Les équipes peuvent ainsi préserver la qualité, instaurer une culture de développement stimulante et conserver des liens étroits avec l'entreprise. Chez Atlassian, Agile est au cœur de chaque équipe de développement (mais aussi de nombreuses équipes qui ne font pas de développement !). Et pour cause.
Elle met à la disposition de chaque individu des pratiques qui posent des bases techniques solides pour son produit et qui favorisent une culture de collaboration avec son équipe. Au sein des équipes agiles, les développeurs sont plus impliqués, rédigent un meilleur code et prennent plus de plaisir qu'ailleurs.
Des liens plus étroits font un produit plus efficace
Agile encourage le travail en équipe. Ce n'est pas une surprise, la plupart des logiciels actuels sont développés par des équipes. Les développeurs établissent des liens étroits avec la gestion de produit, la conception, l'assurance qualité et les opérations. En effet, pour rédiger un code durable, il faut rester connecté avec toutes les facettes du projet. En facilitant la coopération directe entre les développeurs et les autres composantes de l'entreprise, Atlassian a constaté des avantages considérables au niveau de la qualité du code et de la satisfaction des développeurs. Un meilleur code, c'est moins de « déchets » (à savoir la duplication des efforts et/ou les conflits entre flux de travail), mais aussi des interactions plus efficaces entre les intervenants, et ce ne sont là que quelques-uns des avantages constatés.
Le mentorat est tout aussi important. Les équipes Agile assurent des formations croisées afin de garantir la diffusion, à tous les niveaux de l'équipe, des connaissances concernant la base de code. Cela se fait, entre autres, grâce aux revues de code, lesquelles non seulement préservent la qualité, mais assurent une « pollinisation croisée » de la maîtrise du code au sein de l'équipe. Quel que soit le mode de diffusion de ces connaissances, les équipes Agile ne se retrouvent pas avec des développeurs « irremplaçables » qui ne peuvent pas partir en vacances parce qu'ils sont les seuls à comprendre un aspect particulier du code. Parce qu'évidemment, personne ne veut être ce développeur.
Les développeurs agiles peuvent aussi travailler sur la stack technique de leur produit plus facilement que leurs homologues qui travaillent en cascade. En effet, les équipes agiles s'organisent de façon autonome et offrent à leurs membres l'occasion d'acquérir de nouvelles compétences. C'est un fait : les développeurs qui livrent des fonctionnalités entières, de l'interface utilisateur à la base de données, s'approprient davantage leur code. Chez Atlassian, nous encourageons la formation de développeurs « complets » parce que nous croyons dans le partage des connaissances au sein de l'équipe, et dans l'ensemble de l'entreprise.
Programmation, culture et bons côtés du développement de logiciels Agile
Devenir Agile, c'est instaurer une excellente culture du développement au sein de votre entreprise. Poursuivez votre lecture pour en savoir plus sur l'efficacité des stratégies de création de branches, les techniques de tests automatisés, l'intégration continue et l'établissement de liens efficaces avec les autres composantes de l'entreprise. Les articles qui suivent reviennent plus en détail sur les changements qu'ont apportés plusieurs milliers de développeurs pendant leur passage à Agile et sur les avantages qu'ils en ont tirés.
Le développement de logiciels Agile est un parcours. Et nous sommes à vos côtés à chaque étape.
Lancez-vous gratuitement avec le modèle de plan de projet DevOps
Développez, déployez et gérez des applications grâce à une approche basée sur des outils ouverts.