Selon Sourcegraph, le Big Code est tout ce qui a trait à la façon dont le code se développe en :
- Volume : augmentations exponentielles de la quantité de code.
- Variété : beaucoup plus de complexité dans les langages, les outils et les processus utilisés pour fournir des logiciels.
- Vitesse : cycles de livraison accélérés, ce qui signifie que le code change plus rapidement et est livré pratiquement tous les jours.
- Valeur : la réimagination des modèles commerciaux et des pratiques grâce à des logiciels de haute qualité.
Pour cette enquête, Big Code fait référence à la croissance spectaculaire du volume et de la complexité du code. Cela comprend l'augmentation de la variété des environnements de développement, des plateformes et des outils; la rapidité des calendriers de livraison; et la valeur commerciale attendue. Le Big Code a un impact sur les équipes de développement comme le Big Data a eu un impact sur les équipes de données.
Sourcegraph précise que « Ce rapport est basé sur une enquête menée en 2020 auprès de plus de 500 professionnels du développement logiciel en Amérique du Nord. Cette recherche examine l'état du Big Code pour quantifier sa complexité, comprendre son impact réel sur le développement et les résultats commerciaux et identifier ce qui doit être changé pour que les entreprises réussissent. Tous les participants à l'enquête avaient la responsabilité directe du développement logiciel dans une entreprise de plus de 200 employés de développement ».
Dans les bases de code vastes et complexes d’aujourd’hui, il est invariablement problématique pour les développeurs de découvrir, comprendre et corriger le code en raison de l’augmentation significative du volume et de la complexité du code. Le Big Code est l'un des problèmes les plus urgents auxquels les entreprises de logiciels sont confrontées aujourd'hui. Parce que les logiciels sont une partie importante de chaque industrie, le Big Code a un impact sur presque toutes les organisations avec des efforts de développement importants (94%, d'après le sondage).
Ce niveau de réponse est presque identique dans toutes les organisations et industries, quel que soit leur taille ou le nombre spécifique de développeurs. Il est intéressant de noter que les industries en dehors du logiciel rapportent qu'elles sont un peu plus touchées, 95 % déclarant être touchées par le Big Code contre 92 % des éditeurs de logiciels. Ces données soutiennent la réalité actuelle selon laquelle le Big Code n'est pas seulement un problème de l'industrie du logiciel.
Les évolutions
Croissance du volume
Pour mieux comprendre ce qui est en jeu, il est important de commencer par quantifier la taille du Big Code. En d'autres termes, avec quels volumes de code les organisations travaillent-elles en 2020 s'il fallait comparer par exemple à 2010 ? Lorsqu'il leur a été demandé comment la taille de la base de code dans l'ensemble de leur entreprise, mesurée en mégaoctets et le nombre de référentiels, a changé au cours de la dernière décennie, plus de la moitié (51 %) des parties prenantes du développement logiciel déclarent avoir plus de 100 fois le volume de code d'il y a 10 ans. Et 18 % d'entre eux déclarent avoir 500 fois plus de code.
Une plus grande variété
Lors de l'examen des logiciels actuels, il est essentiel de noter la profusion de différents langages de programmation, référentiels, systèmes de contrôle de version, architectures, services, appareils pris en charge, outils, API, etc. qui contribuent à la complexité et au volume du code. Plus précisément, plus de six professionnels du logiciel sur 10 signalent une augmentation significative dans un large éventail de dimensions de développement différentes au cours de la dernière décennie.
La vitesse augmente
En plus du volume et de la variété qui sont en pleine expansion au sein du Big Code, la vitesse de diffusion des versions de logiciels augmente également. Grâce à la mise en œuvre d'approches et de pratiques de développement telles qu'Agile, Scrum et DevOps, les organisations peuvent effectuer des builds plus rapides et déployer rapidement de nouvelles versions. Presque tous les acteurs du développement (92 %) disent qu'il y a une pression croissante au cours des 10 dernières années pour publier le code plus rapidement.
Le Big Code pose de gros problèmes
Les équipes de développement sont confrontées à de nombreuses difficultés en raison d'une complexité croissante des logiciels qui soutiennent l'entreprise. Si l'entreprise devient de plus en plus complexe, sa base de code suivra, car le développement reflète l'entreprise et ses processus clés. Lorsqu'ont été interrogés les acteurs du développement logiciel sur la complexité de leur logiciel, 77 % ont déclaré qu'il est considérablement plus complexe qu'il y a 10 ans.
Comme cela pouvait être prévisible, cette augmentation spectaculaire de la complexité du code présente un large éventail de défis pour les équipes de développement. Le principal défi cité est le temps et les efforts nécessaires pour que les nouvelles recrues soient productives (62 %), suivis de la rupture de code en raison d'un manque de compréhension des dépendances (57 %), des difficultés à gérer les changements de code (50 %), du manque de visibilité (46 %), des révisions de code lentes (43 %), une frustration accrue pour les développeurs qui trouvent du code spécifique (40 %), des problèmes de compréhension de nouvelles bases de code (38 %), et bien plus encore. Quelques personnes ont évoqué d'autres problèmes auxquels ils faisaient face comme le maintien de la qualité, le manque de connaissances en matière de test, la courbe d'apprentissage des nouvelles technologies et le temps de traitement.
La complexité du Big Code a un impact direct sur l'entreprise
Avec des milliards de lignes de code, de multiples interfaces système et des exigences complexes, la complexité du logiciel peut influencer le contrôle de l'équipe de développement et entraîner des conséquences commerciales indésirables. La complexité du Big Code est une préoccupation majeure pour les équipes gérant de nombreuses technologies et applications. Dans cette étude, 99 % des acteurs du développement établissent une corrélation directe entre la complexité du code et l'impact sur l'entreprise. Selon les parties prenantes, les principaux résultats commerciaux négatifs liés au Big Code sont la difficulté à maintenir des normes de qualité élevées (57 %), des risques de sécurité élevés (51 %), des délais de publication retardés (49 %), des coûts accrus (47 %), moins d'agilité ( 46 %) et une difficulté croissante à innover (36 %).
La complexité du Big Code a un impact personnel sur les développeurs
Sur un plan plus personnel, presque toutes les nouvelles versions de logiciels complexes suscitent des sentiments indésirables, 88 % des équipes de développement de logiciels admettant que chaque version provoque une certaine anxiété.
Lorsque la question a été approfondie, les développeurs ont révélé qu'ils ressentent un large éventail d'émotions lors de la publication de code. Presque toutes les équipes de développement (96 %) révèlent que les versions de code suscitent des émotions en eux. Bien que beaucoup rapportent des sentiments positifs comme la satisfaction, il est alarmant de constater que plus de la moitié (58 %) disent ressentir des émotions négatives, y compris la peur et l'anxiété, au moment où ils publient le code ou le soumettent pour examen.
Les équipes évitent de mettre à jour le code, car elles craignent de briser les dépendances
L'une des révélations les plus sombres de cette enquête est de savoir comment cette peur peut affecter les progrès du développement. Les trois quarts (74 %) des acteurs du développement affirment que leurs équipes évitent de mettre à jour le code, car elles ne sont pas sûres des dépendances et craignent de casser quelque chose.
Les équipes de développement ont besoin de nouveaux outils pour s'adapter aux environnements Big Code
Les outils existants n'ont pas été conçus pour l'ère du Big Code
Les éditeurs et les EDI ont été conçus pour des développeurs individuels travaillant en petites équipes sur un référentiel unique. Mais dans l'environnement actuel, les développeurs collaborent désormais régulièrement sur du code à grande échelle. Pour répondre aux exigences de l'entreprise et rester compétitifs, ils doivent évoluer rapidement, même dans les grandes bases de code. Mais leurs outils actuels peuvent-ils s'adapter aux environnements Big Code ? Une écrasante majorité de développeurs de logiciels (85 %) est d'accord pour dire que les outils existants ne sont pas conçus pour travailler avec de grandes bases de code à grande échelle.
En particulier, comment les développeurs effectuent-ils des recherches dans des bases de code massives pour écrire et apporter des modifications efficaces au code de leur entreprise tout en respectant des délais serrés dans le cadre d'exigences strictes en matière de qualité et de sécurité ? Interrogées sur la technologie utilisée pour effectuer des recherches dans le code d'entreprise, les équipes logicielles déclarent s'appuyer sur des hôtes de code (83 % - GiHub, GitLab, BitBucket, etc.), des outils locaux (69 % - EDI/éditeurs, etc.), des outils de recherche de code open source (35 % - OpenGrak, Hound, LiveGrep, etc.), une recherche de code universelle (24%), et plus encore. Plusieurs personnes ont pris le temps d'écrire d'autres réponses, notamment Team Foundation Server (TFS), Azure DevOps, ClearCase, des solutions maison, des hôtes de code interne, Jira, Resharper, SCCS et Codeproject.
En y regardant de plus près, il existe un écart alarmant entre ce que la direction pense que ses développeurs utilisent pour effectuer la recherche de code et ce que les développeurs rapportent utiliser. Parmi les dirigeants, 50 % déclarent que leurs développeurs utilisent la recherche de code universelle, tandis que seulement 13 % des développeurs utilisant ces outils rapportent la même chose.
Les équipes de développement bénéficieraient de capacités supplémentaires pour rechercher du code
Alors que la direction et les développeurs ne sont pas synchronisés sur les outils de recherche qu'ils utilisent actuellement, ils conviennent de vouloir de nouvelles technologies ayant le potentiel de transformer les entreprises à court terme. Presque toutes les parties prenantes du développement (99%) disent qu'elles bénéficieraient de capacités supplémentaires de recherche de code.
Les deux tiers (67 %) affirment que la possibilité de configurer des alertes pour les vulnérabilités de sécurité et les risques de conformité serait la plus précieuse pour leurs équipes de développement. D'autres fonctionnalités principales citées par les parties prenantes impliquent la possibilité de rechercher rapidement tout le code dans n'importe quel référentiel, n'importe quel langage, tout changement de code, la possibilité de rechercher n'importe quel format de fichier (59 %), la possibilité de trouver du code en interrogeant les relations sémantiques (58 %).
Source : Sourcegraph
Et vous ?
Que pensez-vous de ces statistiques ?
Partagez-vous l'avis du panel qui indique que le volume de code, la complexité des applications, la variété des plateformes et langages, mais aussi les cycles de livraisons ont considérablement augmentés ces dix dernières années ?
Êtes-vous surpris par le fait que la complexité du Big Code ait un impact personnel sur les développeurs ?
Bien que beaucoup de développeurs rapportent des sentiments positifs comme la satisfaction, plus de la moitié (58%) disent ressentir des émotions négatives comme la peur et l'anxiété au moment où ils publient le code ou le soumettent pour examen. Qu'en pensez-vous ? Dans quel spectre vous situez-vous ?
Partagez-vous l'avis selon lequel les outils existants n'ont pas été conçus pour l'ère du Big Code ?