Gens des TI, soulevez-vous! (Première partie)

L’automne dernier j’ai voulu donner une conférence à mes collègues où je traiterais de l’impact des nouvelles technologies dans nos vies, ainsi que les tendances des prochaines années. M’adressant à une clientèle de développeurs et d’architectes informatiques, je ne pouvais me contenter de leur parler du dernier iPhone ou de l’arrivée des montres connectées.

Je cherchais un angle différent pour leur faire prendre conscience des changements dans lesquels ils baignent au quotidien et les faire réfléchir sur l’avenir des technologies de l’information et des communications. J’ai finalement opté de traiter des changements dans nos vies, selon trois sphères d’activité :

  • l’impact sur la réalisation de nos tâches quotidiennes;
  • l’impact sur la mondialisation;
  • l’impact dans la création de contenu.

En faisant mes recherches, j’en suis venu à un constat plutôt accablant. Si les téléphones intelligents et les tablettes ont eu beaucoup d’impact dans la réalisation de nos tâches quotidiennes, il y a eu très peu de gain pour la création des contenus. Par création de contenu, je réfère à la production de la connaissance dans une organisation, du rapport en format Word ou PDF, de la présentation avec PowerPoint en passant par les contenus Web et les applications. Cela inclut l’essentiel des cols blancs, appuyés par les équipes TI qui leur fournissent les outils technologiques.

Bien sûr que nos ordinateurs sont plus performants, mais fondamentalement, rien n’a vraiment changé. Nous avons simplement eu plusieurs itérations des outils que nous avions déjà depuis près de 20 ans : ordinateur, clavier, souris, moniteur, imprimante, tout cela connecté par un réseau filaire. En comparaison, les téléphones intelligents n’ont plus rien à voir à avec les premières générations de téléphones cellulaires. En fait, c’est presque devenu archaïque d’utiliser son téléphone pour parler. C’est vous dire!

Portable-ideesC’est tellement vrai, que je suis tombé sur une vidéo qui fait démarrer en même temps un ordinateur d’il y a 20 ans (un 486 ou un Pentium), roulant sur Windows 95, et un portable récent roulant Windows 7. Croyez-le ou non, mais la séquence de démarrage prend exactement le même temps! Donc nous avons des ordinateurs plus puissants certes, mais pas nécessairement plus performant.

Je ne sais pas pour vous, mais moi je trouve qu’en tant que professionnel en TI, on s’est négligé et qu’il est temps que l’on modernise nos façons de travailler mais surtout nos outils de travail, qui sont complètement dépassés!

Gens des TI, soulevez-vous!

Dans mon prochain billet, je vous ferai part de quelques suggestions.

Ma présentation est disponible sur le site de Prezi.

 

Advertisements

Coder proprement pour sauver du temps!

Le méthodologie du clean code, lancé par Robert Martin, aussi connu sous le nom de Uncle Bob, a pour but est de faire sauver du temps à tout le monde qui devra travailler sur votre projet ainsi qu’à vous-même. Que ce soit pour l’entretien de votre projet, la compréhension de votre code ou tout simplement pour vous faire aimer de vos collègues. De plus, vous augmenterez le rendement de votre équipe et si d’autres gens prennent le relais suite à votre passage, vous deviendrez une source de référence.

Vous codez pour les autres

Lorsque je suivais mes cours de conduite, le professeur disait toujours de conduire pour les autres parce qu’on ne sait jamais comment ils vont réagir. Cette théorie est aussi vrai pour un programmeur. Vous ne devriez jamais programmer en étant la seule personne à comprendre votre code. Encore pire, si vous devez changer ce que vous avez fait plusieurs mois après parce que votre client veut quelque chose de nouveau, vous ne devriez pas avoir à le passer en revue au grand complet pour vous comprendre. Codez plutôt dans l’optique que vous écrivez un livre, et comme dans un livre vous ne devriez pas avoir besoin de remonter dans votre code pour voir à quoi servent vos variables. Afin de réussir ce coup fumant, il faudra le faire sans aucun commentaire et simplement avec l’aide de vos variables et de vos méthodes!

/* Pas de commentaire */

Vous ne devriez pas avoir besoin d’avoir recours aux commentaires et ce pour plusieurs raisons :

  • Attire l’attention sur autre chose que le code
  • Écrire des commentaires de qualités prend du temps
  • Si le code change, vous devez prendre le temps de modifier les commentaires
  • Il peuvent devenir désuet et semer la confusion s’ils sont mal maintenu

Voici deux exemples flagrant de commentaires inutiles qui nuisent à la lecture du code :

///summary
/// Méthode permettant de transformer le texte
///summary
/// <returns>Retourne le texte transformé</returns>
private string TransformerTexte(){
[…]
return monTexteTransforme;
}

private string TransformerTexte(){
[…]
//retourner mon texte transformé
return monTexteTransforme;
}

Dans le premier exemple, le nom de la méthode est suffisamment parlant pour ne pas avoir à expliquer son but et votre nom de variable est très claire également. Pour le deuxième, les commentaires viennent créer un doublons puisque vous dites exactement la même chose que la variable. Vous pouvez donc retirer commentaires sans nuire à la compréhension. N’oubliez pas que l’absence de commentaire est plus utile qu’un mauvais commentaire. Si toutefois vous sentez le besoin d’expliquer votre méthode ou vos variables, c’est probablement parce qu’elle est trop longue ou que les noms sont mal choisis.

C’est ici que vos noms de variables et les noms de vos classes CSS entrent en action!

Des noms de variables qui parlent!

Lorsqu’un autre programmeur lit votre code, vos noms de variables doivent lui indiquer ce que vous êtes en train de faire. Par exemple si vous déclarer un booléen, choisissez un autre nom que

bool estValable = false;

dites plutôt ce que vous vérifiez en nommant votre variable convenablement :

bool imageDeTailleCorrecte = false;

Vos noms de variables seront plus long la plupart du temps mais vous allez voir ce qui « est valable » au premier coup d’œil et vous n’aurez donc pas besoin d’une ligne de commentaire pour expliquer ce que vous validez.

N’oubliez pas de les déclarer juste avant de les utilisez pour facilité la lecture et de ne pas donner des noms stylisés du genre « int nombre = 1 ».

Vos noms de classes CSS vous servent de carte géographique

Tout comme vos variables, vos nom de classes doivent parler à la personne qui doit utilisez votre code et lui indiquer à quel endroit cette classe est utilisée.

Par exemple, la classe suivante pourrait facilement être renommée :

<div class="contenu">Vive le chocolat</div>

Au lieu de simplement dire que les styles de cette classe s’applique au contenu, dites plutôt à quelle endroit se trouve ce contenu.

<div class="contenu-page-accueil">Vive le chocolat</div>

De cette façon, si quelqu’un doit modifier ce que vous avez fait, il sera simple de savoir où cette classe est appliquée et vous sauverez du temps.

Autre point très important pour vos classes CSS, évitez de les faire avec des noms qui ressemblent à du « inline style » comme par exemple :

<div class="gras petit-padding titre-page-accueil">Vive le bacon</div>

.gras{
font-weight:bold;
}
.petit-padding{
padding:5px;
}

Dans cet exemple il serait beaucoup plus efficace de regrouper tout vos styles sur la classe « titre-page-accueil » pour ne pas créer de doublons dans votre CSS et grandement faciliter l’entretien de votre projet.

La longueur compte

Lors de l’élaboration d’une méthode, gardez celle-ci la plus courte possible. Une bonne façon de voir si elle est trop longue est si vous réalisez qu’elle est utilisée pour plusieurs choses à la fois.

Voici l’exemple d’une mauvaise méthode :

private void ObtenirItemListePrix (){
//Code pour obtenir les items de la liste nommée Prix
//Code qui ajoute des items dans la liste
}

La méthode sert à deux choses, ce qui invalide son nom. Optez plutôt pour deux méthodes, une qui obtient les items de la liste et une autre qui va ajouter les items.

Pour une méthode la plus claire et simple possible, privilégiez celles de type « void », avec le moins de paramètre possible et sans validation booléenne (faites en deux à la place). Bien entendu il s’agit d’un idéal, il est normal de ne pas toujours y parvenir.

Par la suite, si vous avez des problèmes, il sera beaucoup plus rapide de trouver quelle partie de votre code est en erreur, vos fonctions seront plus courtes donc plus faciles à entretenir, comprendre et lire en plus de décrire véritablement ce qu’elles font, ce qui vous permet de ne pas mettre de commentaire.

Coder proprement, une mentalité

Pendant votre développement vous devrez constamment vous remettre en question et parfois renommer vos variables ou méthodes plus votre code évoluera. Cependant si votre équipe maîtrise bien le concept, vous sauverez un temps considérable pour l’entretien de vos projets et aussi stopper la perte de cheveux devant du code incompréhensible.

Internet ou internets?

La nouvelle n’est pas très fraîche, mais elle reste pertinente.

À mettre dans vos suggestions de lecture, le livre SMART, Enquête sur les internets de Frédéric Martel. Sa prémisse de  départ? C’est une erreur de parler d’Internet avec un « I » majuscule, comme s’il s’agissait d’une seule entité. Selon lui, c’est une utopie issue de la Silicon Valley.

Son hypothèse? L’internet est avant tout un phénomène local, chaque pays ou communauté s’étant approprié l’internet selon sa culture et ses contraintes économiques ou technologiques.

Pour vérifier son hypothèse, il a parcouru le monde et rencontré des intervenants de partout dans le monde, de propriétaires de café internet au Brésil aux responsables de la FCC (l’équivalent du CRTC) au États-Unis, en passant par les présidents des plus gros sites chinois.

Ses observations sont fascinantes et intéresseront quiconque désire avoir une vision globale de l’utilisation d’internet à travers le globe.

Son premier chapitre, consacré à l’écosystème de la Silicon Valley, vaut à lui seul le prix du livre. Son explication de l’interaction des milieux universitaire, entrepreneurial et financier est très éclairant. Vous en saurez également sur l’utilisation de la censure en Chine comme levier économique, ou sur l’impact d’internet dans les communautés les plus pauvres du Brésil ou d’Afrique du Sud.

Si ces anglicismes sont parfois agaçants, les expressions « smart » et « management » reviennent constamment, le propos est bien documenté et fort intéressant.

Bref, je vous recommande ce livre, disponible en papier ou en pixel.

Entrevue avec Frédéric Martel à propos de son ouvrage :

Vers une centralisation des services d’hébergement de projets de développement?

Je change la routine. Mes billets habituels sont informatifs, avec celui d’aujourd’hui j’espère créer une discussion afin de connaître de savoir ce que mes lecteurs en pensent.

website-647013_640Si vous êtes à l’affut des blogs techno, vous avez possiblement vu, la semaine dernière, l’annonce de Google qui a décidé de fermer son service Google Code à partir de janvier 2016. Si vous n’êtes pas au courant, voici un petit topo : il n’est déjà plus possible de créer de nouveaux projets, à partir du mois d’aout 2015, l’ensemble du site et des dépôts de code seront en lecture seule et, le 25 janvier 2016, le site sera complétement fermé.

La raison avancée par Google est honnête. En 2006, au moment de la mise en ligne de Google Code, il n’existait pas, sur le marché, de service de qualité pour l’hébergement de projet de développement. Aujourd’hui, le portrait est bien différent, il existe deux géants qui héberge la grande majorité des projets de développement sur le web : GitHub et Bitbucket. Ces deux services sont solides, abordables et extrêmement conviviaux donc pourquoi s’entêter à offrir un produit avec moins de fonctionnalités? Je crois que la décision de Google est la bonne.

Quelle est la suite des choses sur le marché? On remarque une tendance similaire chez Microsoft. Au cours des derniers mois, Microsoft a diffusé sous licence open source plusieurs éléments majeurs de son stack technologique : .NET Core 5, ASP.Net 5, Roslyn, EF, etc. Tous ces produits et biens d’autres projets importants pour Microsoft (Pattern and practices pour SharePoint par exemple) ont été publiés CodePlex (le site d’hébergement de projets de Microsoft)? Non, la compagnie de Redmond a plutôt optée pour utiliser GitHub. Dans cette optique, je crois sincèrement que les jours de CodePlex sont comptés et qu’une annonce de Microsoft à ce sujet viendra dans les prochains mois.

Qu’en est-il pour le futur de Team Foundation Server? Il serait nettement exagéré de croire que TFS sera abandonné par Microsoft et que le produit sera remplacé par GitHub. Le produit est trop important et offre un éventail de fonctionnalités trop large pour qu’une solution aussi drastique soit envisagée. On note cependant une intégration de plus en plus forte entre Visual Studio et les «repository» Git depuis la version 2012. Est-ce que, sans faire disparaître TFS, on pourrait voir un rapprochement avec la technologie Git au cours des prochaines années? Je n’ai pas la réponse mais n’hésitez pas à laisser vos commentaires ou vos prédictions sur le sujet.

Intranet – de la connaissance à l’expertise

Les intranets ont beaucoup évolué dans les 15 dernières années. Souvent laissé à l’initiative des différentes unités d’affaire, les organisations ont profité des applications de gestion de contenus (CMS) pour mieux encadrer l’utilisation des intranets.

Le volume d’information ainsi centralisée a amenée des préoccupations en terme de gestion documentaire et de gestion de la connaissance. De grands pas ont été accomplis en ce sens.

Parallèlement à ces changements, le web public a subit une transformation majeure. Les médias sociaux, combinés à l’arrivée des téléphones intelligents, ont changé profondément la manière d’utiliser internet.

Plusieurs organisations tardent à prendre le virage par crainte de dérapages. D’une part, ils empêchent l’accès aux employés de sites comme Facebook et Twitter. D’autres part, peu d’espaces collaboratifs sont disponibles dans les organisations, de peur de perdre le contrôle de la connaissance qui y est déposé.

La connaissance n’est pas seulement dans les documents

Les intranets sont encore trop souvent perçus comme un mélange de journal interne et de bibliothèque officielle de l’organisation.

Or aux yeux des employés, l’intranet doit être une extension de leur environnement de travail, soit un endroit de partage de connaissance. Bien souvent, l’employé ne cherche pas un document, mais une expertise. Les bottins d’employés sont encore bien trop orientés sur le titre des employés, plutôt que sur leurs expertises.

Il ne faut plus voir l’intranet comme une bibliothèque, où tout le monde fouille en silence afin de trouver le bon bouquin. L’intranet doit plutôt être à l’image d’un café, avec son coin lecture mais surtout un lieu d’échange et de partage des idées et des expertises.

Votre organisation est un média social

Le Web 2.0, popularisé par les médias sociaux, inspire les employés et suscite la crainte des gestionnaires, qui redoutent une baisse de performance des employés. Or, de tout temps, une organisation est par définition un réseau social. Le téléphone et les salles de réunion ont lentement été remplacés par le courriel au début des années 2000. Les employés réclament désormais des espaces virtuels de création de contenus et une centralisation de la connaissance. La messagerie instantanée remplace le courriel pour les discussions informelles, les espaces collaboratifs complémentent les réunions et remplacent graduellement les échanges de documents par courriel.

Bref, les employés souhaitent être plus performants, en restant plus longtemps devant leur écran tout en étant connecté avec le reste de l’organisation.

Un palmarès des meilleurs intranets : 2015 Intranet Design Annual

Bonjour fidèles lectrices et lecteurs du blogue TI Évolutive. Je suis le petit nouveau du groupe, ayant joint l’équipe de Métalogique en décembre 2014. Je suis heureux d’apporter ma modeste contribution à ce blogue.

Dans le cadre des 10 dernières années, j’ai principalement travaillé sur des projets d’intranets, souvent en lien avec l’implantation de gestionnaire de contenu tel que SharePoint dans de grandes organisations.

Dans mes prochains billets je partagerai mes réflexions sur l’évolution des intranets.

Avant de commencer, je veux vous partager un outil indispensable pour ceux qui se spécialisent dans les intranets. Vous le savez, le problème avec les intranets, c’est qu’il est difficile d’aller comparer avec ce qui se fait ailleurs, de par la nature privée de ces sites.

Dans ce contexte, un palmarès des meilleurs intranets devient un outil précieux. Le Nielsen Norman Group produit chaque année son palmarès des 10 meilleurs intranets, basés sur des candidatures reçues de par le monde.

Le Nielsen Norman Group est reconnu comme une sommité dans le domaine de l’ergonomie Web, et chaque projet gagnant est décrit dans une étude de cas très bien documenté. C’est malheureusement offert qu’en anglais mais pour ceux qui se débrouillent dans la langue de Shakespeare, je vous recommande vivement ce rapport.

Le rapport est disponible sur le site du groupe.

SharePoint 2016 : un investissement vers les solutions hybrides

Au début février, Julia White (gestionnaire principale du Office Product Management team de Microsoft) a annoncé officiellement la venue de la prochaine version de SharePoint qui portera le nom, dans une suite convenue d’appellations, de SharePoint 2016. Cette annonce met fin à beaucoup de spéculations (non fondées, vous pouvez lire mon billet à ce sujet) sur la fin de l’édition On premise de la plateforme SharePoint.

En effet, Microsoft sait très bien que plusieurs clients utilisant déjà la plateforme SharePoint ne sont pas prêts ou ne peuvent tout simplement pas migrer vers l’infonuagique pour tous les scénarios d’utilisation du produit. À travers SharePoint 2016, Microsoft vise à offrir la version la plus sécurisée, stable et fiable en tirant profit des innovations qui étaient jusqu’à maintenant limitées à la version en infonuagique, soit Office 365. Ces innovations seront soit intégrées directement au produit SharePoint On premise, soit accessibles à travers une implémentation hybride entre la version en infonuagique et la version On premise.

Quelques nouveautés sont annoncées (certaines d’entre elles sont déjà disponibles pour les clients d’Office 365). Parmi celles-ci:

  • Delve, une nouvelle façon d’exploiter les capacités de recherche de SharePoint afin de présenter l’information pertinente et d’établir des relations entre les divers contenus utiles pour un usager.
  • Une nouvelle génération de portails ready-to-go permettant aux usagers d’avoir accès à des sites riches et dynamiques qui auraient traditionnellement nécessités des efforts considérables de développement. Un exemple de ces portails est la venue des Office 365 Video qui permettent l’échange de vidéos (similaire à Youtube) dans un contexte d’entreprise.
  • L’intégration d’applications et d’outils tels que Yammer et PowerBI qui rendent l’application beaucoup plus conviviale, tant pour les usagers que pour les administrateurs.

Du côté du développement, Microsoft réaffirme son engagement envers la plateforme des Apps SharePoint, comme étant la façon de faire pour personnaliser et étendre SharePoint. Ceci rejoint l’information qui circule depuis quelque temps au niveau des Patterns and practices de Microsoft pour SharePoint.

Malgré le peu d’information disponible pour le moment, il est très intéressant – rassurant diront certains – de voir que la version 2016 de SharePoint s’en vient et d’avoir une idée de l’orientation prise par Microsoft pour son développement.

La conférence Microsoft Ignite, qui aura lieu du 4 au 8 mai 2015 à Chicago, devrait nous permettre d’en apprendre davantage sur SharePoint 2016. Comptez sur l’équipe de Metalogique pour suivre attentivement cet événement et vous en partagez les faits saillants à travers nos prochains billets.