Aujourd’hui, le succès des entreprises est autant lié aux performances des développeurs qu’à celles des commerciaux. Comme Satya Nadella, PDG de Microsoft, le déclarait déjà en 2015 :"toutes les entreprises sont des entreprises de logiciels." Elles doivent donc mettre en œuvre les pratiques garantissant l’épanouissement et l’efficacité des équipes de développeurs, deux dimensions qui sont des impératifs pour réussir. Mais comment s’en assurer ? Quelles bonnes pratiques mettre en place ?
L’indépendance, moteur du succès
L’une des principales conclusions des recherches de DORA (DevOps Research and Assessment) est que les équipes de développement les plus performantes au sein des entreprises les plus prospères partagent un facteur clé : l’indépendance. En effet, ces recherches nous apprennent que les meilleurs résultats ne sont pas liés au nombre d’experts, à leur niveau de diplôme ou à la rémunération mais au niveau de confiance octroyée aux équipes de développement.
En effet, la performance des développeurs dépend surtout de leur capacité à aborder de la bonne manière les problèmes et à s'auto-organiser pour obtenir les meilleurs résultats. Les développeurs n'ont pas besoin d'être micro-managés et ils ne s'épanouiront pas si d'autres personnes surveillent sans cesse leur travail.
Cependant, l’indépendance ne doit pas être vue comme absolue. Il est important d'aider les développeurs à comprendre les limites de leur autonomie et de cadrer leurs idées de développement en fonction des besoins à long termes du produit. De plus, certains changements peuvent être testés, évalués et facilement annulés s'ils ont des conséquences indésirables. C’est ce type de processus que les développeurs doivent être encouragés à poursuivre. Un bon équilibre est donc nécessaire et c’est ainsi au manager que revient la lourde tâche de trouver cet équilibre.
Définir clairement ses principes
Prenons ici l’exemple de Slack qui a un plan directeur comprenant quatre principes clés restés inchangés depuis 2014. Le premier d’entre eux est “don’t make me think” (“ne me faites pas réfléchir”) qui signifie tout simplement que si une fonctionnalité n'est pas suffisamment explicite pour les utilisateurs, alors elle n'a pas sa place dans le logiciel. Les principes directeurs d’un produit permettent d’évaluer clairement toute proposition de changement. Les principes doivent être exprimés de manière claire, sans ambiguïté et facilement mémorisables. La stratégie et les principes de développement d’un produit doivent être continuellement pensés de manière cohérente et répétés car ils guident la prise de décision. Si c’est le cas, ce sont plus de personnes qui comprendront la stratégie de l'entreprise.
Aujourd’hui, de nombreuses entreprises de la tech se développent très rapidement. Si elles ne communiquent leur stratégie qu’une fois par an, c’est le risque de n’avoir qu’une moitié des effectifs qui l’ignore. C’est la raison pour laquelle le suivi de la stratégie et des principes du produit doit être inclus dans le processus d'intégration. Il est important d'intégrer ces objectifs et principes dans les objectifs individuels et collectifs pour renforcer le pouvoir des principes qui deviennent alors de véritables priorités. Si les objectifs se limitent à des mesures moins stratégiques, comme le nombre de tickets fermés, cela nuit à la stratégie et réduit la capacité des développeurs à se comporter de manière autonome.
L'autonomie devrait aussi s'étendre aux outils. En général, les développeurs adoptent les outils qui leur permettent d'être plus productifs en facilitant leur travail et en favorisant une automatisation fiable. C’est pourquoi il est possible que plusieurs personnes utilisent des outils différents sans pour autant empêcher les autres membres de l'équipe de collaborer efficacement. Au final, le fait de soutenir les préférences individuelles sera un atout pour la productivité et la satisfaction de l’ensemble de l’équipe.
Donner la liberté pour obtenir la sécurité
Appliquer ces idées d’autonomie à la sécurité s’avère compliquée. Une bonne sécurité est, d'une certaine manière, invisible. Si le code et les composants ont été soigneusement analysés pour détecter les vulnérabilités potentielles et que la configuration du cloud et des conteneurs applique les meilleures pratiques d’hygiène de la cybersécurité, alors rien ne se passe. La sécurité des applications a en effet tendance à être remarquée uniquement en cas de problème.
Il est important de mesurer le travail important qui est réalisé pour garantir la sécurité de l'application. La rigueur dans les vérifications et l'élimination des problèmes doivent être pleinement reconnus, en prenant notamment en compte l'absence de failles malgré l'ajout de fonctionnalités. Il faut mettre en lumière les meilleures pratiques en matière de cybersécurité, reconnaître le travail effectué et évaluer sa valeur pour l'entreprise en termes de pertes qui s'accumuleraient si la sécurité était compromise.
Le développement du code était auparavant considéré comme un acte de production individuel et les développeurs étaient évalués en fonction du volume de code qu’ils produisaient. Cependant, le développement d'une application n’est pas comparable à l'assemblage de composants sur une chaîne de production. La créativité et l'imagination sont désormais reconnues comme des aspects essentiels du métier de développeur. La compréhension et la faculté à résoudre des problèmes, ainsi que la réalisation d'objectifs de haut niveau, ont maintenant une plus grande valeur stratégique que la production de centaines de lignes de code. Le rôle de la direction est donc d'aider les développeurs à faire au mieux leur travail, en étant le plus créatif et imaginatif possible, tout en restant en accord avec les grands objectifs de l'application. Définir et communiquer les objectifs stratégiques, les attentes, les limites et les principes est devenu la tâche la plus importante pour la direction.