Nomadisme et mobilité 2.0

Le techno-nomadisme sous-entend la possibilité pour toute personne mobile ou non de pouvoir utiliser son univers d’activité personnel quel que soit l’endroit où elle se situe. L’exemple du bureau est parfait et représente, par essence, un lieu physique, un espace agencé, géographiquement localisé. A partir du moment où nous obtenons une connexion internet, le terme bureau prend une toute autre valeur. En effet, ce n’est plus un lieu physique mais un objet ! Par prolongement, nous pourrions dire que notre bureau est Internet ! Donc le simple fait de se connecter à Internet permettrait de rejoindre notre bureau quel que soit l’endroit où nous nous trouvons et le bureau est alors dématérialisé et atemporel.

Une projection du futur proche, partagée par de plus en plus de spécialistes, fait plusieurs constats :

  • Nous aurons des ordinateurs concentrant le strict minimum d’intelligence et de puissance de calcul pour les rendre à la fois plus autonomes (possibilité de travailler déconnectés), moins lourds et gourmands en ressources et beaucoup plus « interopérables » avec une connectivité très développés. C’est le retour des mainframes mais bénéficiant de « terminaux » intelligents et à très forte connectivité. Nous sommes passés d’une période où nous avons voulu nous débarrasser de l’existence des postes clients pour arriver à une solution d’informatique centralisée faisant une place importante à l’acteur « nomade » sans lui enlever sa liberté
  • La communication en ligne sera possible de partout utilisant le Wifi, les lignes électriques, les téléphones, les satellites. Le monde entier est alors intégralement connecté
  • Les télévisions hertziennes seront abolies faisant place aux télévisons depuis Internet et les autres supports
  • Nous pourrons créer nos propres programmes média que nous compléterons d’information en direct sur le net
  • Une fois la domotique acceptée, nous pourrons consulter facilement le contenu de notre réfrigérateur depuis le super marché, régler le chauffage de la maison et la température de chaque pièce, démarrer une cuisson, fermer les volets

Nous avançons donc à grands pas dans la mobilité 2.0 et nous pourrons rester connectés quels que soient nos déplacements. Ce nomadisme « latent » engendre donc des questionnements forts sur le futur de l’organisation des taches et des lieux qualifiés de « regroupement » (travail, salles de réunions, écoles, séminaires, etc …).

Ces concepts du « nomadisme 2.0 », utilisés dans une large mesure auprès du grand public, puis dans les entreprises, s’insèrent également de plus en plus dans le monde de la sphère publique. L’apprentissage des différents outils web 2.0 par les internautes (blog, fils rss, réseaux sociaux, richmédia, podcast,…) amène de plus en plus les collectivités locales à prendre en compte ces nouveaux usages dans leur offre web.

Les portails institutionnels ne se contentent plus de fournir des pages statiques qui ont pour seule vocation la présentation dela collectivité. Cessites « vitrines » font place, de plus en plus, à des sites informationnels dont le but est de renseigner le citoyen en lui proposant une certaine dynamique de contenus. De fait, le web entre désormais dans la stratégie des institutions publiques et se décline en 4 composantes:

  • Communication et information : renseigner et informer le citoyen en disposant de contenus “riches” et interactifs
  • Dématérialisation et transaction : améliorer les services rendus
  • Relation citoyens : impliquer le citoyen dans le débat public et à la vie locale en développant des actions d’implications et de participation
  • Définir le futur cadre de travail des agents : les économies d’énergie, la réduction du nombre d’agents publics, la diversité des métiers impliqués par la décentralisation, l’exigence croissante de performance jouent un rôle grandissant dans la nécessité de rendre les données accessibles quel que soit le lieu de travail ou l’instant d’exécution de l’action

Les technologies à surveiller [1]

Les technologies suivantes sont sur le point d’émerger et devraient voir les derniers obstacles à leur prolifération résolus à court terme :

  • Interface utilisateur mobile : l’ergonomie des interfaces mobiles est devenue un sujet important pour l’industrie et il reste beaucoup à faire pour séduire les utilisateurs
  • Géolocalisation permanente : l’accès aux données de positionnement GPS permet de créer des applications contextuelles puissantes et élargit le champ d’action des solutions SIG (métiers techniques, aménagement du territoire).
  • WiFi : le 802.11n apporte débits et portées de natures à concurrencer les réseaux filaires dans les locaux des entreprises. Cette évolution du Wifi est extrêmement importante dans l’amélioration de la mobilité intra établissement (suivi des personnes âgées, synchronisation avec les technologies RFID, accompagnement des tournées médicales HL/CH, moniteurs à connectivité asynchrones/lâche dans la ville)
  • Affichage : la taille et la qualité de l’affichage conditionnent le succès des applications sur les appareils mobiles. Plusieurs technologies vont émerger, dont les pico-projecteurs, pour dépasser ces contraintes et créer de nouveaux usages. Les affichages passifs, comme les écrans e-paper des nouveaux lecteurs d’ebook, vont également modifier la façon d’utiliser les documents et de gérer l’information
  • Haut débit mobile : L’Internet Mobile se conçoit de moins en moins sans un débit mobile suffisant. Le déploiement de la technologie HSPA(High Speed Packet Access) a permis d’en élargir considérablement l’horizon, jusqu’à faire de l’ombre aux hotspots WiFi. La tendance se prolongera avec l’intégration plus fréquente de modules 3G+ dans les ordinateurs portables et netbooks
  • Sécurité et surveillance dynamique : le mobile engendre de nouvelles menaces. En effet si le principe du mur défensif (firewall) autour du réseau de l’entreprise a primé jusqu’à présent, les nouveaux usages imposent une surveillance capable de détecter des comportements et événements anormaux dans le flot de données d’un utilisateur authentifié pour couvrir les usages nomades

La percée des « Smart Objects » [2]

Un « Smart Object » correspond à tout objet qui inclut un identifiant unique capable de tracer des informations sur lui-même. Il existe un grand nombre de technologies pour couvrir ce comportement :

  • Les radios fréquences avec le RFID
  • Les codes à réponse rapide (QR – Quick Response)
  • Les smartcards de tout type

Ce qui rends les « smart objects » intéressant c’est leur capacité et les moyens qu’ils emplois pour se connecter au monde réel. Ceci leur donne un intérêt particuliers pour gérer des « entités » physiques, pour les accompagner dans leurs quotidiens, capturer des informations les concernant (description, instructions, alertes, identifiants).


[1] « Tendances 2010 », Gartner, Octobre 2009

[2] Johnson, L., Levine, A., & Smith, R., «The 2009 Horizon Report », 2009, Austin, Texas: The New Media Consortium

Advertisements

Vous avez dit Rhyzomatique ?

La révolution informatique et son infosphère électronique peut induire de nouvelles méthodes d’acquisition du savoir, de nouvelles méthodes de travail et de nouvelles approches de l’acquisition de connaissances. L’enjeu consiste donc à mettre en évidence des modes de pensée différents notamment vis-à-vis d’une approche rationaliste linéaire, réductrice et fondamentalement dualiste. La notion de Cloud est alors considérée comme un changement de paradigme et non comme un simple changement de modèle économique ou de technologie.

La paternité du concept de « paradigme » revient au philosophe et historien des sciences Thomas Kuhn qui l’a développé en 1962 dans un ouvrage intitulé La structure des révolutions scientifiques[1]. Il y fait l’hypothèse que chaque époque de l’histoire produit, par ses pratiques sociales, son langage et son expérience du monde, une structure imaginaire, qu’il appelle «paradigme». Ce dernier s’impose, durant la période considérée, à tous les domaines dela pensée. Un paradigme est donc une certaine vision du monde qui sert de cadre de référence, de moteur fédérateur à toutes les pensées « normales » de l’époque.

Lorsque des mutations, induites par l’expérience, change la vision du monde, il y a changement de « paradigme ». La « pensée rhizomatique ou connexionniste » (en réseau), par définition distribuée et nomade, sort de la normativité de la pensée cartésienne, rationnelle et unidimensionnelle et se projette dans un espace multilinéaire et multidirectionnelle. Une définition sophistiquée du Cloud est donnée par Raphael Josset : « une architecture fractale, invisible, hétérogène, fluide, interactive, malléable, pliable, intégrant la rupture et la discontinuité et permettant une multiplicité de parcours et de combinaisons dans un médium hybride et digital mêlant le texte, l’image et le son »[2].

(Lire la suite …).


[1] Thomas Samuel Kuhn, « La structure des révolutions scientifiques », édition originale, 1962

[2] Raphael Josset, « La pensée en réseau : nouveaux principes cognitifs pour un devenir post humain », Société, n°91, 141 pages

Les Métriques Software

Un support méthodologique pour la compréhension intrinsèque de la qualité des développements objets

Instinctivement, nous pouvons deviner que les « métriques du logiciel » impliquent des chiffres et des mesures des différents aspects du processus de développement logiciel. Si nous nous tournons vers la littérature, nous pouvons trouver plusieurs définitions, qui donnent une interprétation plus ou moins différentes du même terme.

Goodman (1993)[1] définit les métriques logicielles comme « l’application continue de techniques de mesures sur le processus de développement pour fournir des informations de gestion pertinentes et opportunes, ainsi que l’utilisation de techniques pour améliorer ce processus et ses produits ». Le champ est donc vaste mais le but concerne bien l’amélioration de tous les aspects de la réalisation des logiciels.

Grady (1992)[2] souligne pour sa part que les « métriques de logiciels sont utilisées pour mesurer des attributs spécifiques d’un développement logiciel afin de nous aider à prendre de meilleures décisions ». Cette définition met en évidence l’un des problèmes liés aux développements logiciels, le manque d’informations pour prévoir et évaluer les projets.

D’autres auteurs, comme Zuse (1991)[3], font une distinction entre « mesures logicielles » et « métriques logicielles » ! Cela implique que la mesure et la métrique sont des termes plus mathématiquement corrects lors de l’examen de la valeur empirique de différents objets mesurés dans le processus de développement logiciel. En outre, ils constatent qu’une métrique est un critère utilisé pour déterminer la différence ou la distance entre deux entités, par exemple la métrique d’Euclide, qui mesure la distance la plus courte entre deux points.

Parfois, nous trouvons des tentatives de classification des différents types de métriques logiciels. Une telle distinction est faite entre les mesures primitive et celle qui sont calculées. Les métriques primitives sont directement mesurables ou dénombrable, comme le comptage des lignes de code. Les métriques calculées utilisent une sorte de formule mathématique pour obtenir la valeur d’un attribut déterminé.

Pour différentier les mesures qui sont utilisés pour la prise de décision de haut niveau il est fait référence à des « métriques globales ». Cette expression renvoi à des informations sur la taille, le produit, et la qualité du développement qui influent sur la maintenabilité des logiciels. Cette première notion implique qu’il pourrait également y avoir des « métriques locales » ou « métriques de phase », plus liées à des cycles particuliers du développement.

En tout état de cause nous pouvons proposer de synthétiser la métrique software comme :

Une mesure de différents attributs du processus de développement logiciel dans le but d’obtenir des informations utiles et pertinentes pour améliorer l’efficience globale du processus de développement.

Je pense qu’il est important de reconsidérer la place de ces métriques dans nos processus de développement et qu’il faut appliquer les métriques en fonction des différents buts de mesure. Certaines métriques et méthodes de mesure sont plus utiles à une phase spécifique du développement logiciel :

  • Dans les phases préliminaires comme l’analyse des exigences et la conception du système
  • Dans la phase d’implémentation pour capturer le statut réel du projet afin d’en mesurer la progression
  • Dans la phase des tests dans la remontée du nombre de défauts ainsi que la densité de défauts

Il faut appliquer les métriques pertinentes selon les différentes exigences en matière d’objectifs de qualité du produit final. Si on évalue la convivialité du logiciel, par exemple, le degré de satisfaction des clients en termes de facilité d’utilisation est la mesure la plus parlante !

Enfin il faut appliquer les métriques en regard des différents rôles des membres d’une équipe de développement. Les développeurs choisissent des métriques comme l’effort contribué au projet, la durée estimée pour leur tâche, la complexité du module sur lequel ils travaillent, le nombre de lignes de code produit ou la densité de défauts. Le chef de projet mettra l’emphase sur la complexité ou le volume estimé du projet afin de planifier les tâches, les dates et l’effort global prévus. Le management de l’entreprise s’intéresse plutôt aux métriques incluant la valeur commerciale du produit final en fonction de l’investissement avant le projet, le degré de satisfaction des clients, la comparaison entre le temps prévu et le budget disponible et les valeurs obtenues au cours de la construction.

Le sujet est approfondi dans un document que vous pouvez télécharger.


[1] Goodman, P., « Practical implementation of software metrics”, 1993, McGraw-Hill publication

[2] Grady, R.B., « Practical software metrics for project management and process improvement », 1992, Prentice Hall

[3] Zuse, H., « Software complexity – measures and methods », 1991, Walter de Gruyter & Co

Agilité : Mythe ou Réalité

Adopter la bonne organisation de développement logiciel est ce possible ?

En 1975, Frederick Brooks a écrit un livre sur la gestion de projets informatiques intitulé « The Mythical Man-Month (le mythe du mois-homme) ». Dans cet ouvrage, il démontrait brillamment qu’ajouter des personnes à un projet de développement le ralentissait au lieu de l’accélérer. La raison était mécanique et il démontrait que l’ajout de nouvelles personnes aboutissait à une augmentation non linéaire du temps consacré à la réalisation.

Cinq années avant le livre de Brooks (en 1970), une méthodologie de développement logiciel, appelée le « cycle » en cascade (Waterfall cycle), était inventée. Cette approche appliquait les idées de l’ingénierie (mécanique, civile, etc…) au logiciel. Le principe consistait à commencer par recueillir les spécifications, puis faire le design, puis l’implémenter, enfin le tester, et finalement obtenir un logiciel de manière linéaire.

Il a coulé beaucoup d’eau sous les ponts depuis et nous avons beaucoup appris dans le domaine du développement logiciel. Le modèle en cascade est maintenant de plus en plus désuet car il est trop rigide et irréaliste. Dans notre quotidien, les projets de logiciels sont mal définis et ont des fonctionnalités en constante évolution, ce qui ne permet pas de tout envisager dès le départ. Avec l’avènement des langages de programmation modernes de 4ième ou de 5ième génération (Java, PHP, Python, Perl, C# ou Ruby), les nombreuses bibliothèques et un nombre sans précédent d’infrastructures nous sommes arrivés à la fin des années 90 à un nouveau pallié de l’évolution de l’ingénierie logicielle.

C’est alors que sont apparues de nouvelles méthodes regroupées sous l’appellation de techniques de « conceptions agiles ». Le principe en est simple : pour concevoir un logiciel aujourd’hui, vous n’avez besoin que de quelques bons développeurs ! De plus cette approche permet aux développeurs de réajuster constamment le logiciel en fonction du marché et des exigences des clients.

Mais est-ce si simple ? (Lire la suite …) (Document au format Pdf)