lundi 12 décembre 2011

Synthèse : Le web social et le développement d'applications

Le Web social et le développement d’applications


Ce document s’inscrit dans le cadre du cours Web social et se veut un bilan des apprentissages du cours appliqué dans le domaine du développement d’applications dans un contexte de communication et d’interaction entre les développeurs.  

Le développement d'applications est une activité hautement collaborative tant au niveau de l’équipe, du projet et de la communauté. Les développeurs sont les créateurs des outils de médias sociaux, ils les ont adoptés rapidement et les utilisent régulièrement.    

Ce document fait une présentation sommaire de l’évolution des outils de développement, décrit les outils sociaux utilisés couramment par les développeurs et termine avec les tendances dans un an et à long terme.

 

Évolution des environnements de développement

Le développement d’applications requiert différents processus, outils et participants.

Au niveau des processus, Gartner a annoncé en Décembre 2009, que plus de 50% des entreprises ont commencé des projets avec l’approche Agile au détriment des processus Waterfall et RUP priorisant les individus, leurs interactions et la collaboration avant les processus et les outils. (Manifeste Agile). Les outils de développement ont dû, ou doivent, incorporer des changements dans leurs offres afin de supporter Agile afin de demeurer compétitifs sur le marché. Alors que les méthodologies Waterfall et RUP demandent des communications formelles, Agile a aussi introduit la communication plus informelle dans le cycle de développement et favorisé encore plus l'utilisation d’outils collaboratifs tels des forums de discussion et des wikis.
Agile methodology interview questions



Au niveau des outils, les environnements de développement intégré (IDE) sont un ensemble d’outils permettant de regrouper les activités de création de code, de compilation et de déboguage facilitant le travail au niveau du développement pur. Des exemples sont : Eclipse, Microsoft Visual Studio, NetBeans, Oracle Jdeveloper.





Alors que les IDE ont été initialement une série d’outils destinés aux développeurs, les environnements de développement collaboratif (CDE) ajoutent le support à l’équipe entière, le focus est sur la collaboration dans l’équipe incluant les analystes, les chargés de projet et les testeurs. Ces outils ajoutent des fonctions telles que le contrôle des versions d’applications, des systèmes pour suivre les bogues, des listes d’activités à réaliser, de la gestion de documents et des forums de discussions. Des exemples sont : Microsoft Visual Studio Team System et IBM Rational Rose.

Le terme « environnement de développement social (SDE) » commence à être utilisé et désigne l’ajout d’une couche sociale par-dessus les fonctions des CDE, intégrant des outils tels des Wikis, Blogs, fils Rss, etc…. Le projet Trac (gratuit) permet aux entreprises de créer une zone sociale pour leurs projets. Alors que plusieurs solutions ont incorporées les notions d’Agile, certains se spécialisent dans cette approche : VersionOne (commercial) intègrent des IDEs dans un environnement totalement collaboratif.  

 

L’utilisation des médias sociaux va plus loin que les catégories traditionnelles de développement d’applications et intègrent une grande sélection de processus et d’outils empruntés aux IDEs, CDEs et SDEs.


Les portails Web de projet de développement « libre » ont, ou intègrent, tout ce que les SDE offrent mais sans définition de l’équipe : l’équipe se compose elle-même et est public. Les plus connus sont ceux des initiatives Open Source tels que SourceForge et Google Code. La plupart sont très spécialisés favorisant un contenu très ciblé: ils peuvent être centrés sur un langage (ex.JavaForge), un processus (ex. Agile,), des marchés spécifiques, etc... Des communautés émergent centrées autour de nouvelles technologies, de processus uniques et de nouveaux marchés.

Les portails Web de développement « libre » permettent une couche d’architecture participative supportant la participation du public (crowdsourcing) et la communication « plusieurs-à-plusieurs ».

Au niveau des participants, l’audience élargit au fur et à mesure que les outils de  collaboration et de participation deviennent disponibles. Quand des outils sociaux deviennent disponibles, l’influence des utilisateurs, des clients et même du public est possible et résulte en un résultat basé sur une « équipe » élargie.

En sommaire :
Il y a bien sûr des variations selon les outils mais les objectifs visés par ceux-ci se résument de la façon suivante :
  • Les IDEs ont pour objectif de faciliter la vie des développeurs.
  • Les CDEs ajoutent la couche de collaboration entre des équipes plus large (en nombre et en localisation) ainsi que l'ajout de la notion de gestion des activités.
  • Les SDEs ajoutent la couche de participation des utilisateurs ou clients à toutes les phases du projet : à la définition des besoins, au suivi de l’évolution (fils RSS), à la participation aux tests et à la communication directe avec toute la « communauté » qui gravite autour du projet de développement.
  • Les portails Web de projet de développement « libre » sont basés sur la participation des développeurs.

Utilisation des outils dans le contexte des développeurs

L’utilisation des relations sociales par les développeurs a amélioré la production et la consommation d’information technique. Pour les auteurs, le web social donne une audience et les motive à créer du contenu. Quant aux consommateurs, ils disposent maintenant de sources sur lesquelles ils peuvent compter. Les communautés permettent aux développeurs d’interagir avec les autres afin d’apprendre et de collaborer avec d’autres notamment pour régler des problèmes ou utiliser une nouvelle technologie.

Les médias sociaux jouent un rôle important au niveau du code par la disponibilité d’information et par la réutilisation de composantes mises à la disposition des développeurs par la communauté de développeurs. Les développeurs utilisent différents outils sociaux énumérés plus bas avec quelques exemples d’utilisation pour chacun.

Blogs :
Les blogs sont une source d’information importante pour les développeurs. Microsoft et d’autres les utilisent pour partager des informations techniques et récolter des opinions de la part de leurs employés et de leurs clients. Les blogs sont plus efficaces que les courriels puisqu’ils peuvent être consulté selon les besoins.

Microblogs :
Le microblogs sont des messages courts, disponibles sur plusieurs interfaces, incluant les mobiles. Twitter est le meilleur exemple public mais il existe également des logiciels de microblogs en version privée pour les entreprises : Yammer est un exemple. Twitter est inondé de messages reliées au développement. Dans les entreprises, les microblogs sont utilisés pour le partage de liens techniques ou pour annoncer une rencontre spontanée.

Fils RSS :
De nombreux sites offrent le service de fils RSS pour informer les développeurs des nouveautés, des nouveaux bogues trouvés ou autres. De même, de plus en plus d’environnements de développement permettent aux utilisateurs ainsi qu’aux gestionnaires et dirigeants de s’abonner aux changements qui surviennent dans les projets. Il se peut que les développeurs qui publient un nouvel article ou met à jour le statut d’une activité informent directement un exécutif de la compagnie : ce qui change la dynamique de communication à l’intérieur des entreprises.

Zones Questions-Réponses communautaire :
Ces zones sont très populaires parmi les développeurs : ils y puisent des réponses à des questions pointues. StackOverflow est un service populaire mais beaucoup utilisent les zones dédiées aux outils dans leurs sites respectifs. Les compagnies ayant un ou peu de développeurs peuvent maintenant compter sur les communautés pour aider leurs développeurs à produire et aussi à évoluer techniquement.

Wikis :
Les Wikis ont été à la base inventés avec les développeurs comme utilisateurs. Ils permettent de suivre facilement les activités et les évolutions de problèmes, de cas de tests et de documentation. La facilité de création de contenu et de comparaison de versions est appréciée par les développeurs.

Agile offre une raison supplémentaire d’implanter des Wikis afin de permettre aux clients de collaborer sur des articles que les développeurs écrivent ou à l’inverse aux clients de documenter les règles d’affaires à intégrer dans l’application.

Étiquetages :
L’étiquetage est largement répandu dans les outils de développeurs afin de catégoriser le contenu et de le retrouver plus facilement. Des sites de Questions/Réponses comme StackOverflow permettent de faire l’étiquetage du contenu et l’appréciation (rating) de la qualité des réponses des participants afin d’identifier les meilleures sources. Github, un environnement de projet libre, permet l’étiquetage des problèmes, JazzCDE permet d’étiqueter des unités de travail et les versions d’objets.

Réseau social :
L’utilisation des outils sociaux supporte et favorise la collaboration. Les outils sociaux permettent de créer des communautés virtuelles entre personnes ayant les mêmes intérêts et conservent les informations sur les gens et leurs relations. Les regroupements de données que l’on peut générer sont très spécifiques à ces outils : en principe on peut faire des liens entre des développeurs, les relations des développeurs avec les versions, les bugs, le niveau des questions posées, la qualité du code fournie, etc… Le réseau social révèle donc les connaissances, l’expertise, les activités d’un développeur : il y a suffisamment de données permettant de faire une évaluation et d’établir une réputation technique : une évaluation qui pourrait bien être différente de celle qu’il peut avoir dans son environnement physique, soit avec un gestionnaire moins technique ou des pairs plus juniors. Les réseaux sociaux ont donc une grande influence sur la réputation des développeurs avec des conséquences sur leurs carrières. Le développeur a donc intérêt à rechercher la solution avant de poser la question afin de conserver sa réputation « technique » et obtenir l’attention des experts dans les bonnes situations car les experts n’aiment pas perdre leur temps avec des questions de routine : une attitude similaire aux hackers.

Le crowdsourcing permet l’utilisation du public dans tous les stades du développement : analyse des besoins, codification, tests, … L’utilisation de la page A/B de Google pour tester une nouvelle version est un exemple d’utilisation du public pour réaliser les tests d’acceptation d’un produit.




Amazon Mechanical Turk est un site où les compagnies téléchargent une activité « intelligente » à réaliser (HIT : Human Intelligence Task), les développeurs effectuent les activités avec rémunération quand le client est satisfait. À l’inverse, les développeurs peuvent aussi proposer leurs services et les compagnies choisissent celui qui cadre le mieux avec l’activité à réaliser. Les entreprises ont donc accès à des ressources qualifiées en tout temps.

Tendances pour la prochaine année (2012)

Des outils sociaux vont continuer à s’ajouter dans les environnements de développement.
L’ajout et l’utilisation des outils sociaux dans les environnements de développement enlèvent les barrières de communication sur les activités de l’équipe souvent sous le contrôle de quelques gestionnaires. Les utilisateurs peuvent maintenant contribuer au développement d’application et influencer les résultats en fournissant des informations supplémentaires ou des opinions durant le développement : ils deviennent des co-créateurs. En favorisant une meilleure communication entre les développeurs et les utilisateurs, le fossé entre le code et la solution finale s’estompe. Ceci permet plus de transparence sur la situation dans les projets et responsabilise les développeurs dans leur rôle. Par contre, plus de transparence est un couteau à deux tranchants : maintenant que les développeurs ont des oreilles pour les écouter, ils devront s’habituer à communiquer en des termes que les dirigeants/clients comprennent et à orchestrer leur travail de façon à apporter des réalisations que les gens puissent apprécier.


Le courriel sera moins utilisé et remplacé par des outils sociaux
Dans l’industrie en général, selon des experts, les communications par texte seront remplacées par du video et audio accélérant la diffusion et l’assimilation des informations. Le partage d’information se fait de moins en moins par courriel; une compagnie à même publier une politique de « zéro-courriel » étant donné le nombre de pourriels et l’impact sur la productivité des employés.

Dans le développement d’application, l’utilisation du courriel a diminué durant les dernières années et a été remplacé par des messages instantanés et des communications face à face. Cette tendance s’accentuera encore plus avec Agile. Pour les équipes dispersées, l’outil le plus utilisé restera la video conference tel Skype, ooVoo, GotoMeeting, etc…


Les données des médias sociaux seront mieux exploitées.
Toujours selon l’article de 30 Social Media Predictions From 30 Social Media Pros, les données des medias sociaux sont « le nouveau pétrole ». Il est prévu qu’il y aura une meilleure segmentation des communications sociales, impliquant des données plus significatives pour les organisations, des données sur l’expérience utilisateur et plus d’emphase sur le partage personnalisé des informations. L’information se multiplie et il y aura des outils pour mieux gérer l’information mais aussi pour retirer le maximum des renseignements contenus dans les médias sociaux, notamment Facebook, afin de pouvoir bénéficier des connaissances et les appliquer dans les processus des entreprises.

Les développeurs devront comprendre comment incorporer les médias sociaux dans leurs applications et offrir des alternatives à leurs clients.


Focus sur les mobiles
Il y aura une plus grande utilisation du mobile et d’information filtrée et agrégée : ceci est valable pour le public et les développeurs suivront cette tendance.


Globalement….
L’architecture orientée service, le développement WEB de logiciel libre et les communautés de développeurs continueront d’évoluer. Le futur des entreprises sera centré sur les relations : il en est de même pour les développeurs.

Tendances à long terme

Pour les cinq(5) prochaines années
Il peut arriver un revirement soudain dans les outils en ligne, alors je ne m’aventurerai pas sur le terrain glissant de prévoir si SourceForge existera encore ou si Facebook perdra du terrain. Je vais me prononcer sur trois sujets : l’impact des réseaux sociaux sur la vie personnelle, le développement de normes concernant l’utilisation des médias sociaux dans les entreprises et la mesure de l’impact des médias sociaux dans le développement d’applications.

Impact des réseaux sociaux sur la vie personnelle
Avec toutes les informations conservées sur notre vie en ligne et l’intérêt publique de recouper et d’analyser toutes les sources sur le Web, notre vie privée ne l’est plus. Si nous acceptons qu’un site conserve nos données et qu’un deuxième site le fasse aussi, est-ce que nous consentons à ce que les deux sites combinent nos informations ? C’est une question sans réponse, bref la réputation en ligne se vérifie bien en ce moment, si elle ne peut pas se vérifier alors l’absence d’information est aussi évaluée : est-ce qu’on a le choix? À mesure que les outils d’analyse se raffineront, et les entreprises sont prêtes à investir beaucoup pour en bénéficier, notre réputation sera compilée selon des nouvelles règles : la ligne entre la vie personnelle et la vie publique disparaît.
Idéalement, il devrait y avoir une révision de la politique sur la vie privée.

Normes concernant l’utilisation des médias sociaux dans les entreprises
Les entreprises ont développé avec les années des normes concernant l’utilisation des courriels dans les entreprises. Les entreprises devront aussi se pencher sur le développement de normes concernant l’utilisation des médias sociaux par les développeurs (entre autres). L’utilisation peut être bénéfique pour l’organisation afin de profiter des ressources disponibles sur le Web, par contre, par exemple, les informations échangées pour obtenir de l’assistance peuvent être confidentielles. Le filtrage des informations échangées par les employés sur les médias sociaux sera difficile à réaliser alors qu’il était fort possible de le faire avec le système de courriel.

Mesure de l’impact des médias sociaux dans le développement d’applications
À ce point-ci, il est très difficile de trouver des informations sur les bénéfices apportées par les médias sociaux dans un contexte de développement d’applications. Il est à prévoir que des analyses seront effectuées et contribueront à élaborer des stratégies d’utilisation dans les entreprises.


Pour les vingt(20) prochaines années
"Prediction is very hard, especially about the future" - Yogi Berra
Je vais essayer de voir les vingt prochaines années basé sur mes observations de mes ados, tous des étudiants, et ensuite les appliquer au futur.

De façon générale.....
  • Les ados n’envoient pas de courriels et téléphonent peu : ils envoient des messages texte de leur mobile.
  • Ils ont en permanence un appareil mobile dans les mains et possèdent tous un portable.
  • Facebook :
    • Ils sont tous abonnés à Facebook. 
    • Environ 50% visitent Facebook régulièrement, les autres 50% prennent leurs messages sur leur mobile.
    • Ils comprennent que les messages publiés sur Facebook ne sont pas privés.
    • Être enlever comme ami par quelqu’un est un évènement social important.
  • Ils aiment les vidéos (YouTube) et la musique.
  • Ils lisent peu, (j’évite ici les commentaires sur la qualité du français dans les messages textes).
  • J’ai deux ados capables de monopoliser la ligne internet quand ils sont en ligne mais un autre qui arrive difficilement à accéder son compte à l’université.

Si les tendances se maintiennent, dans 20 ans :
  • L’information disponible sera de meilleure qualité et plus facile à retrouver : elle pourra être livrée en video ou en audio.
  • Les appareils mobiles, iPad, portable, télévisions, lecteurs DVD, radios, etc… ne seront plus qu’un seul appareil. (possible que ce soit ici plus un souhait qu’une tendance)
  • Ils pourront communiquer avec tous les équipements : aux rayons dans les magasins, au four, etc...

Et il y aura toujours des personnes plus techniques pour aider les moins techniques. J


_____________
Références:



Aucun commentaire:

Enregistrer un commentaire