
Dans les coulisses
Comment développons-nous notre logiciel?
par Oliver Herren
Notre croissance nous demande de trouver des manières agiles et intelligentes de nous adapter à tous les niveaux. L’organisation et l’architecture du logiciel doivent constamment évoluer. Cet article vous présente nos actualités et préoccupations.
Il y a bien trop longtemps que je ne vous ai pas donné un aperçu des travaux de développement de Digitec Galaxus. Peut-être certains lecteurs assidus se souviendront-ils de cet article:
Nous n’avons pas chômé. Notre département du développement est passé de cinq à douze équipes Scrum, ce qui n’est pas sans poser quelques problèmes qu’il s’agit de résoudre avec doigté. Mais nous sommes prêts à surmonter les multiples défis auxquels nous faisons face actuellement, et qui ne diminueront sans doute pas ces prochaines années.
Le développement rapide de notre département du développement nous demande de développer davantage notre développement… Logique, non?
La complexité, c’est compliqué. Comme l’a dit Steve Jobs: «La simplicité peut être plus difficile que la complexité. Rendre ses pensées claires pour les simplifier demande beaucoup de travail». Simplifier les processus et les problèmes requiert non seulement des compétences techniques, mais aussi des connaissances approfondies des processus de l’entreprise. Lorsqu’un système est mal divisé, il augmente inutilement la complexité au lieu de la maîtriser. La modularisation est une bonne chose, mais ce n’est pas une panacée: même lorsqu’on crée des modules pertinents, la complexité de la solution dans son ensemble n’est pas réduite. Elle est simplement transférée aux interfaces entre les systèmes. Dans l’idéal, il existe un petit nombre d’interfaces les plus stables possible grâce auxquelles une équipe se concentre sur un seul module et n’a pas à se soucier du reste de l’application.
La complexité ne peut être réduite (en allemand) que si les exigences et les capacités du système sont réduites elles aussi. L’objectif premier n’est donc pas de la réduire, mais de la maîtriser.
Et comment la rend-on mieux maîtrisable?
Voici la théorie:
Ce qui me semble important:
Je vais vous donner un aperçu de ce qui s’est passé ces 15 derniers mois et de ce que nous avons fait pour développer notre département du développement.
Les équipes Scrum ont été clairement affectées à un domaine, c’est-à-dire un secteur tel que la logistique, la gestion de produit ou la boutique en ligne. Chaque équipe peut donc se spécialiser dans un secteur et développer des solutions toujours plus élégantes. Le secteur est généralement représenté par un département. L’équipe de développement collabore aussi étroitement que possible avec celui-ci afin de déterminer à l’aide de quelles ressources actuelles nous pourrons apporter la meilleure plus-value possible au client. Il faut que l’équipe soit la plus stable possible. Dans l’idéal, elle est si bien rodée qu’elle travaille en état de flow.
Une équipe n’est plus uniquement constituée de développeurs de logiciels. Elle devrait toujours réunir toutes les compétences nécessaires au domaine ou au sous-domaine. Ainsi, une équipe dédiée à notre boutique en ligne comprend un designer d’interaction et un développeur front end. Selon le contexte, elle fait également appel à un ingénieur en exigences système, un spécialiste en renseignements commerciaux ou un ingénieur de systèmes. Cela permet de réduire les interfaces et de raccourcir les voies de communication. L’équipe doit pouvoir travailler de manière autonome sans obstacle et ne pas être ralentie par des dépendances inutiles.
Les nouvelles équipes sont principalement constituées de nouveaux collaborateurs afin de les rendre aussi stables que possible et d’éviter de modifier sans cesse leur composition. Afin de faciliter l’acquisition du savoir-faire, elles sont accompagnées de manière spécialisée et méthodique par un coach: un développeur de logiciels habitué à notre environnement les suit durant un certain temps et répond à leurs questions. D’un point de vue méthodologique, un coach du secteur Scrum et développement de logiciels agile collabore avec l’équipe entière.
Afin de travailler dans l’esprit de l’entreprise, chaque collaborateur doit pouvoir accéder aux informations nécessaires. Qu’il s’agisse de notre stratégie, notre mission, notre vision ou encore les résultats du sondage mené auprès de nos collaborateurs, nous n’avons pratiquement plus aucune information qui ne soit pas accessible à tous. Ainsi, chacun peut vérifier que ce qu’il doit faire correspond à la stratégie de l’entreprise. Chacun doit savoir quelle prestation nous voulons livrer au client. Notre proposition de valeur est publique et transparente afin que chaque client puisse vérifier que la qualité de nos prestations s’y conforme.
Au vu des progrès technologiques actuels, nous pensons que l’avenir se jouera entièrement dans le cloud. De nouvelles fonctionnalités sont déjà proposées uniquement dans le cloud. Avec les milliards investis dans les diverses plateformes sur le cloud, ce phénomène continuera à s’accélérer. Et afin d’en profiter, nous misons sur plusieurs prestataires. La flexibilité et l’innovation que nous offrent les solutions sur le cloud sont des aspects décisifs. C’est la raison pour laquelle les nouveaux services sont uniquement développés sur le cloud. Même lorsque nous apportons des modifications à un secteur, nous les transférons autant que possible sur une plateforme cloud optimale. Certains de nos services ont déjà été mis en place sur la plateforme Google Cloud, sur Microsoft Azure et sur Elastic. Tous les éléments de l’application qui n’ont pas encore été adaptés continuent d’être exploités dans nos deux centres de données. On ne peut pas faire plus hybride que ça. Cela explique aussi pourquoi le DevOps gagne en importance, ce qui sera encore davantage le cas à l’avenir. En effet, dans le cloud, l’infrastructure devient une partie de l’application.
Aucun autre changement ne me vient à l’esprit pour le moment, et il est temps que je mette un point final à mon article. Je ferai en sorte que vous n’ayez pas à patienter plus d’un an avant ma prochaine contribution. Je risquerai aussi moins d’oublier certains changements.
Nous voulons accélérer notre développement. Si vous avez été convaincu par notre vision et si vous êtes prêt à relever les nombreux défis que représente notre croissance, n’hésitez pas à répondre aux diverses offres d’emploi de notre département du développement.
Cool: construire des ponts entre le monde réel et le monde de l’information. Pas cool: prendre sa voiture pour aller faire ses courses. Ma vie est «en ligne» et l’ère de l’information ma patrie.