Chaque développeur de la chaine de développement logiciel est un maillon clé

Une très grande majorité des entreprises ont recours à des codes applicatifs fournis par des tiers. Or, les standards de qualité logicielle sont rarement homogènes entre les codes internes et externes. Avec, au final, des répercutions sur la qualité et la sécurité des produits.

Cela pourrait ressembler à la trame d'un film. Début janvier 2011, Microsoft a commencé à recevoir des plaintes de clients signalant que leur téléphone Windows envoyait et recevait des "données fantômes", avec les répercussions que l'on devine sur leur facture de téléphone. Les clients se sont rendus compte que leur téléphone transmettait jusqu'à 50 Mbs par jour - dépassant la bande passante leur étant allouée - et ont commencé à blâmer les responsables supposés : leur opérateur téléphonique, les systèmes de facturation déficients, les hackers piratant leur téléphone, et Microsoft. Dans une course contre  la montre pour résoudre rapidement ces problèmes, Microsoft a mené l'enquête et a pu découvrir qu'un développeur logiciel externe était à la source du bug

Pour le Windows Phone 7, en quête de parts de marché et espérant devenir un concurrent sérieux pour la plate-forme Android de Google, les terminaux BlackBerry de RIM et l'iPhone d'Apple, la capacité à fournir des fonctionnalités et des Apps aussi rapidement que possible est la clé. Nokia - le plus important fournisseur mondial de téléphones mobiles - abandonnant son système logiciel mobile Symbian et se tournant vers Microsoft, la demande pour plus de fonctionnalités et d'Apps est encore plus importante.

Pour Microsoft, cela nécessite de devoir s'appuyer sur une chaine de développement étendue comprenant des composants Open Source et des logiciels tiers. Chaque personne impliquée dans cette chaine de développement est critique pour la réussite de Microsoft, qui s'engage dans une bataille à cinq pour la domination du marché des plates-formes mobiles, aux côtés d'Appel, Google, HP (avec Palm) et RIM. Chaque développeur tiers sur cette chaine est capital pour les activités de Microsoft.

Il s'agit d'un challenge incontournable pour quasiment tous les OEM, quel que soit le secteur d'activité. La chaine de développement logiciel est aussi primordiale pour la réussite de leurs activités que leurs propres équipes de développement. En tant que vendeur OEM, vous avez, pour les logiciels créés par vos propres équipes, une certaine visibilité sur le processus de développement et sur la qualité des logiciels produits. Mais à quand remonte la dernière fois qu'un vendeur OEM a su avec précision ce qu'il a reçu d'un fournisseur de solutions tiers ? Comment peut-il être certain que ce qu'ils reçoivent répond aux niveaux de qualité requis ? Et comment obtiennent-ils une vue sur les problèmes possibles sans devoir passer par une intégration et des cycles de test de qualité à grande échelle ?

Pour comprendre ces challenges liés à la chaine de développement logiciel moderne, le kernel Android (version 2.6.32 "Froyo") utilisé par le téléphone HTC Droid Incredible a été testé. Les résultats de cette analyse - consultable dans le rapport Coverity Scan 2010 Open Source Integrity Report - révèlent que même si le code a un niveau de qualité supérieur à la moyenne, un nombre non négligeable de défauts à haut risque est toujours présent.  Les résultats font apparaitre des défauts tels que les corruptions de mémoire, les accès mémoire illégaux, les fuites de ressources et les variables non initialisées. Plus important, il a été découvert que le fait que la base de code de la partie du kernel spécifique à Android soit nouvelle entraine une concentration plus élevée de défauts par millier de lignes de code. De plus, beaucoup d'entre eux n'ont pas été corrigés dans la version suivante du kernel d'Android.

Deuxièmement, il existe un problème situé au cœur de ce à quoi sont confrontés les OEM dans ce modèle. Les responsabilités et les standards en matière de qualité sont fragmentés en raison de la complexité de la chaine de développement et du nombre d'intervenants sur Android. Plus il y a de contributeurs prenant part à un projet de développement, ou au sein d'un package Open Source spécifique, plus nombreux seront les standards de qualité et de sécurité du code. Et au final, il semble évident que sans standards de qualité consistants aussi bien pour les codes maison que pour les codes fournis par des prestataires tiers, il y a un risque plus important à livrer des produits contenant des défauts et pouvant générer des problèmes de qualité et de sécurité.

Les OEM ont besoin d'avoir une visibilité précoce et régulière sur la qualité et la sécurité sur l'ensemble de leur chaine de développement. Ce qui nécessite de mettre en place une mesure cohérente de la qualité, et d'avoir la même exigence pour ses fournisseurs que celle que l'on a pour les codes développés en interne. Que ce soit Nokia qui demande cela à Microsoft, ou Microsoft aux développeurs externes auxquels il a recourt.

Autour du même sujet