Les qualités d’un bon chargé de projets TI.

Récemment, j’avais une discussion sur les qualités que devait avoir un bon chargé de projet TI, ou de manière plus large, qu’est-ce qu’un bon leader? Nous avons parlé de l’importance d’avoir une vision et des objectifs clairs, d’inspirer les membres de l’équipe à atteindre ces objectifs et de trouver le juste équilibre dans l’autonomie à donner dans l’exécution des tâches.
J’ai continué ma réflexion après coup pour essayer de trouver une image forte qui résumait notre pensée. Cette réflexion m’a amené du côté des jeux vidéos. Qu’est-ce qu’un jeu vidéo au fond?

  • Un petit groupe de tâches à exécuter en vue d’un objectif précis.
  • Une gratification immédiate une fois l’objectif atteint, soit une valorisation accompagnée d’une amélioration des habiletés.
  • L’accumulation de ces objectifs doit mener à la réussite d’une mission plus globale.
  • Et surtout, la réalisation de tout cela doit se faire dans un esprit de compétition à caractère ludique.

Donc, à mon avis, le défi d’un chargé de projet se résume à convertir son projet, à un niveau conceptuel, à un jeu vidéo.

  1. Bien transmettre à l’équipe comment compléter le jeu.
  2. Découper son projet en « tableaux ».
  3. Trouver le bon niveau de difficulté pour chaque tableau afin que l’employé puisse se dépasser.
  4. Le gratifier à la fin de chaque étape réussie et lui montrer les compétences acquises par ce tableau.
  5. Amener l’équipe à s’unir lorsqu’un tableau est trop complexe à compléter seul.
  6. S’assurer de garder une atmosphère de franche camaraderie tout au long du projet.

Qu’en pensez-vous?

 

SP2016 , Référentiel Unique pour les documents

Il va sans dire, SharePoint est une plateforme de gestion documentaire de référence dans le domaine de la documentation « Active ». Toutefois, depuis la version 2001 (Ça ne me rajeunit guère!), une grande lacune l’accablait ; le référentiel du document était son nom qui était contenu directement dans l’Hyperlien  plutôt qu’un GUID unique permettant d’identifier le document.

Voila chose possible !! Crions au Miracle !! 🙂 Bien que par défaut, SharePoint demeure identique a ses versions antérieures, il est maintenant possible d’activer une fonctionnalité de collection de Site « Document Id Service » qui assignera un guid Unique pour chaque document.

FonctDocID.png

En effet, la faiblesse de voir le nom du document dans l’hyperlien générait une problématique importante pour toutes les références vers ce document lorsque celui-ci était soit déplacé ou simplement renommé … Les références devenaient toutes invalides ..

Exemple problématique :
https://urlDeVotreSite/documents/NomDuFichier.pptx   est renommé  https://urlDeVotreSite/documents/NomDuFichier12345.pptx  –> Les liens vers le documents sont tous brisés

Grâce à l’activation de cette fonctionnalité, le document précédent est référencé de la façon suivante :

https://urlDeVotreSite/_layouts/15/docIdRedir?ID=GUIDDUDOCUMENT

Le fait de renommer le fichier ou de le déplacer à l’intérieur de la collection de sites n’aura aucune incidence quand à ses référencement.

Bravo Microsoft ! Bravo SharePoint 2016 !

 

 

 

 

SharePoint 2016 et la synchronisation des profils

La synchronisation des profils

Mon collègue Charles Gagnon vous présentait récemment les fonctionnalités disparues dans SharePoint 2016. Celles-ci  sont, pour la plupart, des éléments de SharePoint difficiles à configurer et problématiques que la communauté sera très heureuse de voir disparaître.

Rendu artistique des émotions d'un administrateur SharePoint par rapport à FIM

Rendu artistique des émotions d’un administrateur SharePoint par rapport à FIM Crédits photo: http://goo.gl/DzNff7

Une composante ayant certainement causé des maux de tête (voire des cauchemars) à la quasi-totalité des administrateurs SharePoint dans les versions 2010 et 2013 du produit est le «User profile synchronization service» basé sur l’outil Forefront Identity Manager (FIM) avec l’infâme message d’erreur «stuck at starting». Vous pouvez maintenant arrêter la thérapie; cette fonctionnalité est éliminée dans SharePoint 2016 et est remplacée par deux outils distincts interchangeables selon vos besoins et la complexité de votre installation.

Le mécanisme de synchronisation natif pour les profils usagers se nomme maintenant «Active Directory Import». Comme son nom l’indique, l’outil permet de synchroniser les données d’une source Active Directory et de rendre celles-ci disponibles dans les profils usagers (la couche sous-jacente au «My Site») SharePoint. Ce mécanisme est intégré à SharePoint et ne nécessite aucune configuration particulière mais il comporte plusieurs limitations décrites plus bas.

Le deuxième outil à votre disposition vous permet de mettre en place des scénarios de synchronisation beaucoup plus complexes. Celui-ci est basé sur le produit Microsoft Identity Manager (MIM) et est indépendant de SharePoint c’est à dire qu’il nécessite la mise en place et l’installation d’un serveur séparé de la ferme SharePoint (pas 100% obligatoire mais fortement recommandé). Un point avantageux de cette architecture est qu’elle permet à plusieurs batteries de serveurs d’utiliser la même installation de MIM dans une même organisation.

Le déploiement de MIM nécessite des efforts supplémentaires mais cette option permet de supporter des scénarios plus complexes, de se connecter à des sources de données autres que AD et de faire circuler l’information de façon bidirectionnelle entre SharePoint et les sources de données.

MIM server AD Import
Avantages 1.       Configuration flexible permet de personnaliser les importations.
2.       Permet de supporter les flux bidirectionnels.
3.       Permet d’importer les photos des usagers automatiquement.
4.       Support des sources de données autres qu’Active Directory LDAP.
5.       Supporte les scénarios «multi-forest».
1.       Très rapide et performant.
2.       Mécanisme fiable utilisé par Office 365.
3.       Complexité réduite et administration directement dans l’administration centrale de SharePoint.
Inconvénients 1.       Un serveur séparé pour MIM est recommandé pour l’utilisation avec une ferme SharePoint.
2.       L’architecture, la configuration et le déploiement sont plus complexes.
1.       Importation unidirectionnelle.
2.       Supporte uniquement les scénarios avec une seule forêt AD.
3.       Ne permet pas d’importer les photos des usagers.
4.       La seule source de données supportée est AD LDAP.

Pour plus d’informations sur la configuration et le déploiement de MIM, consultez l’article technet suivant : https://technet.microsoft.com/en-us/library/mt627723(v=office.16).aspx (l’article technet est en pre-release au moment d’écrire ce billet, son contenu est donc sujet à changer.)

Question ouverte: Croyez-vous que la capacité de MIM d’être utilisée par plusieurs fermes SharePoint est compatible avec des environnements autres que la production? Serait-il possible de configurer un seul MIM pour l’organisation (dans le cas d’un flux unidirectionnel des données) en production et de consommer celui-ci dans les environnement de DEV qui, la plupart du temps, se connectent déjà vers des AD en production? J’attends vos réponses dans la section commentaires ou sur linkedin!

SharePoint 2016 ! Les fonctionnalités disparues

SharePoint 16 RC est maintenant disponible pour le grand public ! HouuRRA!

9cfc1fc6-5a27-4608-9e6f-5b6cab5f7132.png

Mais qu’en est-il ? Offre t-il une valeur ajoutée immédiate justifiant le remplacement de SharePoint 2013 ?!

Au cours des prochains jours je vais publier une série de billets présentant mes différents essais et les constats que j’en aurai fait.

En premier lieu, les départs … voici un sommaire des éléments retirés de cette nouvelle version

  • Version StandAlone sur une instance SQL Express.  En effet, la version complète de SQL doit être maintenant installé  .
  • SharePoint Foundation n’existe plus.
  • Forefront Identity Manager (FIM) n’est plus utilisé pour la synchronisation de l’active Directory . Le processus par défaut est l’imporation de l’Active Directory (Unidirectionnel). Microsoft Identity Manager 2016 peut être configurer pour gérer la synchronisation entre SharePoint et AD .
  • Excel Services ne fait plus parti de SharePoint. Il a été migré vers Excel Services Online et les usagers de SharePoint pourront consommer le service depuis cet endroit.
  • SharePoint Designer 2016 ne verra jamais le jour ! Designer 2013 continuera d’être supporté.
  • InfoPath 2013 sera la dernière version de Microsoft, mais sera supportée jusqu’en 2026! InfoPath Forms Services sera supporté.

Je vous laisse le temps de faire votre deuil de ces fonctionnalités disparues, dès le prochain billet nous prenons un nouveau départ avec les innovations de la version 2016 !

 

 

Gens des TI, soulevez-vous! (2e partie) : rêvons un peu

Ce billet est la suite de Gens des TI, soulevez-vous!. Suite à mon constat sur le manque d’évolution des outils bureautiques, je me suis demandé quel serait mon environnement de travail idéal, en terme d’outils technologiques.

Voici ma liste de souhaits pour les prochaines années :

Plus de pixels!

Homme devant un schéma d'idées

Je dois souvent traiter des volumes importants de contenus. Ce n’est pas rare d’avoir à travailler avec un « mindmap » (pensez à un organigramme dans Visio) de plus de 1000 éléments!

Croyez-moi, même les écrans HD présentement sur le marché sont bien trop petits pour mes besoins.

Récemment, j’ai également eu à produire un fichier Excel qui, une fois imprimé, faisait environs 1×2 mètres! Comment voulez-vous travailler efficacement un fichier de cette taille sur un moniteur de 55x35cm? Je ne voyais qu’environ 20% du fichier à la fois.

Il faut repenser la manière de travailler à l’écran. Avec une surface, disons de 1 mètre carré, le modèle clavier / souris devra être repensé, et le tactile doit être intégré selon de nouveaux paradigmes.

L’intranet mobile

Je ne devrais jamais recevoir une convocation par courriel. Tous les événements de l’entreprise, comme les comités, les formations et les 5 à 7 devraient être accessible à partir de l’application de calendrier de mon téléphone intelligent.

De plus, ma liste de contacts devrait être synchronisé avec la liste des employés automatiquement. Quand j’ai besoin de joindre un collègue rapidement, je ne devrais pas avoir à tenter d’accéder à l’intranet corporatif, l’accès doit être transparent.

Tant qu’à y être, les rappels de la direction pour les feuilles de temps devraient être envoyés via une notification ou un texto dans mon téléphone. Finis les courriels qui ont une durée de vie de 15 secondes et qui encombre ma boîte de réception!

« Bring your own profile »

Une tablette lance une série d'idéesJe fais du service conseil et j’ai souvent à travailler avec les équipes internes. Or à chaque nouveau mandat, le client me crée une adresse de courriel, m’assigne un téléphone et une boîte vocale. Je n’en veux plus! J’ai déjà une adresse de courriel et un téléphone portable, cela devrait être transparent pour moi.

Il n’y a qu’à intégrer mes coordonnés dans le bottin d’entreprise. Encore une fois, l’idée est que mon téléphone portable est mon point de contact principal. Que ce soit par courriel, texto ou téléphone, tout devrait être centré sur un seul appareil.

Des données mobiles

Quand vous avez une présentation à faire, c’est l’enfer! Il faut emprunter un ordinateur portable et un projecteur, brancher le tout, incluant le fil réseau, en priant que personne ne va trébucher là-dedans pendant la réunion. Ensuite il faut se connecter sur un poste qui ne possède pas les mêmes applications que votre poste de travail, sinon il faut se connecter à une VM. Quel bordel!

Il est grand temps que les organisations mettent en place :

  • Des réseaux WiFi fiable qui donnent accès aux systèmes internes.
  • Quelque chose qui ressemble aux tableaux interactifs dans les écoles, avec des résolutions d’écran minimalement HD.

Moins de puissance, plus de vitesse

Metalogique me permet déjà d’accéder à l’intranet à distance et le WiFi est disponible au bureau. Quand j’ai à travailler au bureau, je travaille habituellement avec mon « vieux » iPad de 2012, accompagné du clavier Bluetooth d’un iMac. Je ne ferais pas de grands dossiers d’architecture avec cela mais je suis surpris de l’autonomie que j’ai réussi à avoir avec une si « modeste » machine.

Ça m’a fait réalisé que j’ai rarement besoin d’un processeur dernier cri, ni d’une tonne de RAM, sauf pour des besoins très spécifique. Le maillon faible présentement de la plupart des ordinateurs de bureau, c’est les disques durs rotatifs. En 2015, l’OS et les applications ne devraient plus jamais être sur des disques durs conventionnels. On perd plusieurs minutes de productivité par jour à attendre que ces applications ouvrent, ça devrait être instantané, un peu à l’image des tablettes.

En attendant

Cette vidéo de Corning fut très inspirante dans ma réflexion.


Ultimement, j’avoue que je serais bien heureux de travailler avec l’interface Jarvis de Tony Stark!

Partagez-moi votre vision d’un environnement de travail idéal, je suis curieux de vous lire.

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.

 

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.