Archive

Posts Tagged ‘cycle’

Comment améliorer la qualité du code applicatif en production ?

Les applications Web et mobile en production, malgré les efforts fournis en phase de recette, souffrent souvent de défauts de qualité qu’il faut savoir corriger. Pour les grandes entreprises qui éditent des services en ligne, il peut être intéressant d’étudier les pratiques des pure players de l’Internet. A ce titre, Foursquare fournit un exemple intéressant, ayant récemment fait l’objet d’une publication sur leur blog. Il ressort du « Hack Day » que la startup organise régulièrement, quatre grands principes qui peuvent être appliqués par les grandes entreprises :

  1. Faire une pause dans les développements
  2. Mobiliser l’entreprise dans l’amélioration de la qualité du code
  3. Valoriser les collaborateurs
  4. Lancer des innovations, même partielles, mais innover rapidement

Faire une pause dans les développements

La course à l’enrichissement de fonctionnalités peut conduire à un amoncellement de couches de code qui peuvent devenir ingérables sur le long terme. Le code est peu optimisé, mal documenté, l’urgence permanente nuit à la qualité des applications, et donc à leur maintenabilité.

En planifiant une pause dans les développements, les équipes peuvent temporairement se concentrer sur un seul et unique objectif : améliorer la qualité des applications. Toute l’énergie est alors focalisée sur ce seul objectif, et les équipes ne sont pas distraites par des nouveautés à développer. Cependant, mobiliser sur des opérations qui s’apparentent à du classement, du rangement et toutes sortes d’activités de ce type, est bien moins enthousiasmant que d’innover. Comment donc créer l’enthousiasme sur cet objectif ?

Mobiliser l’entreprise dans l’amélioration de la qualité du code

Le jeu est un formidable levier de mobilisation. La « gamification » se développe et peut être utilisée pour entrainer les équipes à réaliser une tâche a priori peu enthousiasmante. Le jeu peut aussi être conçu de sorte à mobiliser l’ensemble des compétences de l’entreprise, et pas seulement les développeurs.

En organisant un jeu doté d’un prix jugé suffisamment attractif par l’ensemble des collaborateurs et incitant à l’amélioration de la qualité des applications, on crée ainsi les conditions favorables à l’engagement de tous au profit de l’objectif commun, et ceci dans une ambiance ludique et festive. Reste que le jeu ne doit pas être la seule raison du mouvement. Comment orienter les efforts de tous vers l’objectif d’amélioration de la qualité des applications ?

Valoriser les collaborateurs

Un des leviers de motivation d’un collaborateur est la reconnaissance de son travail. En assurant au collaborateur que sa contribution à l’atteinte de l’objectif d’entreprise sera valorisée, on le met en mouvement.

La valorisation d’un collaborateur peut par exemple passer par sa mise en avant sur les supports de communication de l’entreprise, qu’ils soient internes ou externes. Les interviews de collaborateurs vainqueurs du jeu organisé pour mobiliser les équipes peuvent ainsi être publiées sur le site Web de l’entreprise. Les collaborateurs concernés ne manqueront pas de relayer l’interview au travers des réseaux sociaux auxquels ils participent, partageant ainsi leur enthousiasme… et contribuant à véhiculer une image positive de l’entreprise qui rayonnera auprès des collaborateurs futurs.  Après avoir momentanément arrêté les développements, organisé un premier jeu mobilisateur et valorisé les collaborateurs, comment pérenniser cette boucle vertueuse ?

Lancer des innovations, même partielles, mais innover rapidement

La boucle d’amélioration de la qualité du code applicatif peut aussi apporter de bonnes surprises et pourquoi pas des innovations. La clé du succès des pure players tient en leur capacité à lancer des innovations en mode bêta. Les développeurs savent pertinemment qu’elles ne sont pas parfaites. Les chefs de produit savent qu’elles manquent d’une foule de fonctionnalités qui les rendraient encore plus attractives. Ils savent aussi que c’est l’usage qui crée la fonctionnalité.

En se donnant la liberté de lancer rapidement des innovations, même imparfaites sur les plans fonctionnels et techniques, on augmente ses chances de toucher le public et d’avoir des retours d’expérience d’usage en situation réelle, et non seulement dans un laboratoire. Le code applicatif se retrouve ainsi enrichi de fonctionnalités éprouvées par les utilisateurs. Et progressivement, ce code subira des évolutions qu’il faudra un jour revoir pour les rendre plus conformes aux règles de l’art en terme d’architecture, de norme de codage, etc. Il sera alors temps de lancer un nouveau Hack Day !

10
10

Préparer le système d’information aux innovations d’usage

Le système d’information d’une entreprise est bien sûr conçu pour supporter l’activité de l’entreprise. Tout du moins une partie de son activité : les processus rationnels sont implémentés dans des progiciels ou des outils maison, et tout le reste se retrouve géré de manière plus ou moins formelle dans un univers de données non structurées. L’émergence de l’Internet en tant que canal, a montré la difficulté de faire évoluer les systèmes d’information. Les processus traditionnels, d’abord déclinés dans leur version en ligne, doivent désormais prendre en compte les nouveautés introduites par l’internet. En particulier, la conception rapide de nouvelles évolutions, l’ergonomie et l’intégration de services tiers, bénéficient des technologies du Web, mais non sans mal.

Faire évoluer le système d’information au rythme d’Internet

Les technologies du Web ont apporté aux systèmes informatiques une souplesse et une réactivité exceptionnelle. Les standards technologiques, les architectures fortement découplées et les méthodologies de développement agiles, offrent en effet les moyens nécessaires pour faire évoluer rapidement un système informatique. Désormais habitués à voir évoluer les sites Web au gré de leurs envies, les responsables métier sont en droit d’attendre qu’il en soit de même pour les applications métier qui leur sont mises à disposition, d’autant plus que ces applications implémentent en apparence les mêmes technologies. En apparence seulement. Les progiciels respectent le plus souvent les standards technologiques, et sont conçus suivant des architectures fortement découplées. Mais les méthodologies utilisées pour les déployer restent inspirées de méthodologies classiques. Pour faire évoluer le système d’information au rythme d’Internet (et répondre ainsi aux attentes de leurs utilisateurs), les DSI ont donc tout intérêt à revoir leurs méthodes de développement, et mettre en place les cycles courts qui font le succès des pure players du Web.

Prendre en compte les nouveaux usages offerts par les ergonomies innovantes

Le Web apporte sans arrêt de nouvelles technologies qui facilitent l’utilisation des applications informatiques sous-jacentes, et ce faisant contribuent au déploiement de nouveaux usages. Les interfaces fluides, l’imbrication de contenus au sein de vidéos, les mécanismes de personnalisation, ou encore les écrans tactiles, sont autant de possibilités ergonomiques initiées dans le monde du Web, et que les utilisateurs d’un système d’information d’entreprise sont désormais en droit d’attendre. Il ne s’agit pas seulement de satisfaire un caprice des utilisateurs, mais bien de faciliter leur travail. Qui plus est, les nouveaux usages démocratisés à grande vitesse sur le Web grand public, entrainent de plus en plus une frustration face aux interfaces austères proposées par les applications d’entreprise. En élaborant un système d’information ouvert et personnalisable, la DSI a donc l’opportunité d’offrir à ses utilisateurs de formidables outils de productivité, conviviaux, voire même ludiques.

Ouvrir le système d’information et intégrer les services tiers

Les sites Web grand  public sont un assemblage de services : certains opérés en propre par les entreprises qui éditent leurs sites Web, d’autres proposés par des partenaires. Une intégration réussie de services tiers offre à l’utilisateur du site une expérience fluide, lui permettant de bénéficier du meilleur de chaque service. Pour que cette intégration soit possible, il est au préalable nécessaire que chaque service offre des interfaces techniques de communication : les APIs (Application Programming Interface). Ces mécanismes permettent à une entreprise d’intégrer dans ses sites Web, les services proposés par des éditeurs tiers. Inversement, les mêmes mécanismes permettent à l’entreprise d’offrir ses services à des éditeurs de sites Web. Ces  mêmes mécanismes sont applicables au sein du système d’information, ce qui permettrait d’enrichir l’expérience des utilisateurs en leur facilitant l’accès à des services tiers, et pourtant utiles au quotidien dans l’exercice de leur métier.

Recommandations

Mettez  en place une veille permanente des nouveaux usages du Web. Ils sont le plus souvent la concrétisation d’innovations technologiques, ou de combinaisons de technologies existantes. Tôt ou tard, les utilisateurs de votre système d’information s’approprieront ces nouveaux usages, et seront frustrés de ne pas disposer de l’équivalent dans leur activité professionnelle.

Identifiez les rigidités de l’architecture de votre système d’information et mettez en place les mécanismes qui vous donneront un plus grand degré de liberté. Cet investissement pour donner de la souplesse au système d’information, est un pré-requis indispensable à la mise en place de cycles courts de développement. Vous aurez ainsi la possibilité de mieux coller aux besoins des utilisateurs, comme le font les éditeurs de sites Web soumis à une concurrence exacerbée.

Imaginez les services qui pourraient être développés par des tiers en s’appuyant sur votre système d’information. Vous verrez ainsi votre système d’information non plus uniquement comme un centre de coût, mais aussi potentiellement comme un centre de profit, tout du moins un actif à valoriser.

%d blogueurs aiment cette page :