Info2Geek

Réunions d’estimations et cartes Planning Poker

Il est important dans un projet d’estimer la complexité des fonctionnalités et leur coût. Pour cela, SCRUM dispose d’outils aussi ludiques qu’efficaces : réunions d’estimations et cartes Planning Poker.

Problématique

Estimer les charges de nos projets logiciels est indéniablement très difficile, et pourtant, nous sommes amenés à les fournir au plus tôt, et ce, en dépit de tous nos efforts pour rappeler à la DSI que ces estimations sont approximatives. Malheureusement, trop souvent nos évaluations initiales se transforment en engagements.
Pourquoi donc est-ce si difficile d’estimer les projets à l’avance et comment estimer votre Backlog à l’aide de la technique du planning poker.

Passer de l’incertitude à la certitude

Nous ne savons jamais précisément ce que nous allons développer car, le client ne sachant pas toujours ce qu’il veut, les exigences évoluent. Nous ne connaissons ou choisissons pas toujours les membres de l’équipe et donc forcement, nous ne pouvons pas estimer précisément la productivité. A cela il faut ajouter que nous ne maîtrisons pas toujours les technologies qui seront déployées et leur intégration dans le Système d’Information existant.
Adopter une attitude prédictive, en planifiant et estimant de façon cadrée et définitive, afin de figer le déroulement du projet, est improductif et conduit assez souvent à l’échec. Mais alors comment établir un planning fiable du projet? L’incertitude va donc développer l’impératif de réactivité!

Accepter l’incertitude, pour mieux la maîtriser, et non la combattre

Dans le développement logiciel, tout n’est pas prévisible, il faut donc accepter l’idée du changement pour s’adapter à ces imprévus, voire les anticiper en mettant en place une stratégie de gestion des risques, car c’est en capitalisant que l’on améliorera cette capacité d’anticipation.

Les outils que propose AGILE

Le Planning Poker est une technique d’estimation de coût d’exigences. Cette technique se pratique en équipe et permet de procéder à des estimations rapides et aussi précises que possible selon le niveau de précision du besoin disponible.
Elles est répandue et populaire au sein des équipes Agile car il s’agit d’une mesure objective qui ne fait pas participer que les experts. La clé du succès du planning poker réside dans sa participation. Chaque membre de l’équipe doit participer, tout le monde, les timides comme les introvertis, les experts techniques comme les fonctionnels.

Le choix de l’échelle

Une règle essentielle à bien respecter, est de ne pas modifier l’échelle durant le projet.

Peu importe la vitesse (vélocité) à laquelle l’équipe de développement accomplira ces tâches, nul besoin de réviser les estimations : c’est le rapport entre le temps réel et les points qui évoluera.

Les valeurs des cartes du planning poker sont : 0, 1/2, 1, 2, 3, 5, 8, 13, 20, 40 et 100. Cette échelle ne semble pas convenir à tout le monde. Pourquoi ne pas utiliser les cartes de planning poker? Un problème de granularité peut-être?

Certains sont convaincus que la suite de Fibonacci est la mesure la plus appropriée. Pour rappel, la suite de Fibonacci est la somme des deux nombres précédents (1/2/3/5/8/13/21/…).

D’autres utilise la taille T-Shirt :
XS : pour les tâches inférieures à 0,5 jour
S : de 0,5 à 1j (Small pour petit)
M : de 1j à 3j : (Medium pour moyen)
L : de 3j à 6j : (Large, lorsque cela commence à être gros)
XL : entre 6 et 12j : (une vague idée de la complexité)
XXL : + de 12j gros : (trop gros, il faut que l’on découpe)
L’avantage de la taille T-Shirt est qu’on n’évoque pas directement des jours.

Pour ma part, je pense que travailler avec la taille T-Shirt permet de se détacher des chiffres, et ainsi fournir, et surtout présenter une estimation et non une exactimation!!! C’est un Scrum Master de chez Microsoft, Richard Hundhausen (@rhundhausen) qui rappelait cela.  L’estimation doit rester une estimation, ça n’est pas un engagement.

Déroulement des réunions d’estimations

Réunions d’estimations et cartes Planning Poker, comment cela se passe-t-il? Au cours des séances d’estimation, le Product Owner soumet une à une à l’équipe de développement les exigences dont il souhaite connaître l’estimation de coût. Il est à la disposition des équipes de développement pour répondre à leurs questions, et dans le cas où ne peut apporter de réponse, il établira des hypothèses. Les estimations de coût alimenteront le Product Backlog et aideront le Product Owner à prioriser ses exigences. Chaque participant possède 11 cartes pour les nombres, plus une carte ? qu’ils utiliseront quand on ne sait pas estimer.

Les pièges à éviter

Des collègues étaient en réunion mercredi dernier… toute l’après-midi!!! Il faut savoir qu’au bout de 2 heures, la majorité du groupe a envie/besoin de s’aérer. Seul celui qui propose les US et les 2-3 personnes « porte » plus ou moins le projet reste toujours concentrés. Il vaut donc mieux arrêter les estimations quand le niveau d’énergie du groupe diminue, et comme toutes les réunions en général, éviter les créneaux « digestion » et « départ » !

 Conclusion

Planning Poker est un bon moyen de parvenir à un consensus sans dépenser trop de temps sur un sujet donné, et permet à tous de s’exprimer.

Réunions d'estimations et cartes Planning Poker
http://j.mp/poker-planning

Alerte defacement et CyberJihad

Il fallait s’y attendre… je viens de recevoir des mails de l’ANSSI. Depuis plusieurs jours, une vague d’attaques informatiques est en cours sur les serveurs de la zone « .fr », des defacements en masse. Le defacement consiste à prendre le contrôle d’un site internet et de modifier son contenu. Ce mouvement, la cyberjihad, devrait connaitre un pic aujourd’hui jeudi.

La CyberJihad s’appelle #OpFrance

En effet, suite aux attentats de la semaine dernière, la surveillance des différents canaux d’information formels ou informels  montrent une activité de préparation à des cyberattaques d’envergure. Plus d’un millier de sites internet français ont ainsi été piratés depuis l’attentat contre Charlie Hebdo, par des hackers se revendiquant comme islamistes. Il s’agit principalement de sites de petites tailles, comme des sites de mairies, conseils généraux, universités, offices du tourisme, sites d’élus, églises ou petites et moyennes entreprises qui subissent ces campagnes de défacement. On peut voir ainsi des messages tel que Il n’y a de Dieu qu’Allah, Death to France (Mort à la France) ou encore Death to Charlie (Mort à Charlie). Ces cyberjihadistes semblent être pour la plupart originaires du Maghreb ou de Mauritanie et signeraient assez souvent #OpFrance.
Rassurez-vous, ces attaques ne sont pas trop dur non plus à réaliser : la course aux faibles coûts fait que beaucoup utilise des CMS, ou système de gestion de contenu (contenant quelques failles encore exploitables) ou sous-traitent le développement de leur site en Tunisie ou au Maroc.

Anonymous

De leur côté, un certains nombre de hackers, se revendiquant du mouvement Anonymous, ont riposté, diffusant des comptes Twitter de jihadistes et mettant hors service des sites internet.  Ils ont a ainsi publié une liste de plus 120 comptes Twitter désignés comme islamistes, et une liste de d’un centaine de comptes Twitter dits terroristes. La plupart de ces comptes ont été suspendus mais un document collaboratif visant à tous les recenser et surtout les faire disparaitre de la toile existe auss isur la plateforme collaborative Piratepad.  Les Anonymous revendiquent déjà le defacement d’une trentaine de sites radicaux, dont Ansar-alhaqq, qui diffusait en français de la propagande jihadiste. Désormais, sa page d’accueil est redirigée vers DuckDuckGo, le moteur de recherche indépendant et favori de ceux qui veulent encore avoir droit à une vie privée.
Toutefois, cette cyber-mobilisation n’est pas du goût des forces de l’ordre. Ne perturbez pas le travail des policiers enquêteurs en diffusant de fausses informations ou rumeurs, a publié la Police Nationale sur son compte Twitter.

Recommandations

L’ANSSI (agence nationale de la sécurité des systèmes d’information) nous appelle à une vigilance accrue dès maintenant et nous informe que plusieurs messages ont été publiées pour inciter des groupes d’attaquants à s’en prendre massivement aux sites institutionnels français à partir de la journée du jeudi 15 janvier 2015.
Tous les administrateurs sont invités à contrôler les logs, et l’éventuelle présence des indicateurs ci-dessous :
– Fichier dh4.php (md5 : 988f74ab3755c9fed949182080e55cd2 ; sha1 : ec9ca26fddbfb2c0be72a30bf2cf362da06d33dd)
– Fichier prod!gy1.php (même condensat que précédent)
– Fichier riad.php
– IP 41.224.83.14
– IP 95.212.145.55
– IP 5.39.29.154 (robot)
– IP 185.52.24.181 (robot)
– IP 98.143.148.6 (robot)
– IP 192.185.83.142 (robot)
– Mot clef rummykhan
– Mot clef donnazmi

Les fichiers correspondent à des webshells ont été retrouvés sur des CMS Drupal et Joomla. Pensez donc à mettre à jour vos versions, notamment de Drupal et à vous appuyez sur le guide de sécurisation des sites Web.
En cas d’attaque, reportez-vous à la note d’information sur les defacements de sites Web.

Tactique d’attaque sur Drupal

1.    Changement username et password de l’administrateur via l’URL /?q=node&destination=node (POST)
2.    Connexion en admin sur /user/login (POST)
3.    Ajout d’une page sur /node/add/page
4.    Utilisation de la nouvelle page pour uploader prod!gy1.php
5.    Renommage en dh4.php

Alors, cyberattaques, defacement et CyberJihad, bon courage à tous les admin.

la DSI, organe vital de l’entreprise

La DSI, Direction des Systèmes d’Information, est bien trop souvent présentée comme un centre de coût, alors qu’il est au contraire un actif clé du capital immatériel de l’entreprise. A ce titre, il doit être mesuré et valorisé en tant que tel.
Un SI, Système d’Information, bien géré et maîtrisé accroit d’autant plus la valeur de l’entreprise lorsque celle-ci fait l’objet d’un rachat. A l’inverse, un système d’information peu ou mal maîtrisé, présentant des problèmes de fonctionnement ou pire, présentant des risques important tels que  l’obsolescence des techno utilisées, la dépendance vis à vis d’un petit nombre de personnes, ou une direction faisant systématiquement les mauvais choix, peut diminuer la valeur de l’entreprise.
Je suis tombé par hasard sur un superbe article de Ludivine Loncle parlant de la cristallisation de la DSI.

La DSI, c’est un peu le banquier de la propriété intellectuelle de l’entreprise.
– En mode « run » (maintenance), elle organise et sécurise dans l’ombre toutes les données du business.
– En mode « build » (projet), elle transforme les outils de l’entreprise pour renforcer son positionnement.

Je vous invite à répondre au petit quizz en bas de son article.
DSI_cristallisation

Varnish et WordPress

Ces derniers jours, j’ai voulu faire un peu de perf sur le blog. J’en fait en journée au bureau, alors pourquoi ne pas en faire un peu le soir aussi?! Je me suis retrouvé face à un gros problème lors de l’utilisation de Varnish avec Apache2 sur une de mes machines.
J’ai installé EWWW Image Optimizer pour la compression à la volée de mes images. Mais depuis quelques jours, j’obtiens un message d’erreur lorsque j’importe mes images (Erreur HTTP, sans autre explication).
Après avoir cherché un peu dans les logs Apache2 je suis tombé sur des erreurs du type Script timed out before returning headers. En googlesizant, j’ai trouvé une solution de contournement en modifiant mon fichier de configuration /etc/varnish/default.vcl :

Depuis,  le souci a soudainement disparu. J’en conclue donc que le délai devrait être accru pour que certaines extensions WordPress fonctionnent correctement. A toutefois analyser un peu plus en détail car ma configuration n’est pas petite, donc c’est étrange.

Crontab pour les nuls

Cron est ce qu’on appelle un planificateur de tâches périodiques pour les systèmes de type Unix. Il permet aux utilisateurs de planifier des tâches pour une exécution périodique. Il est couramment utilisé pour automatiser les tâches de maintenance du système ou d’administration. Je vais faire un rapide tour pour que vous puissiez au moins avancer un peu.
Prenons comme exemple un petit script de sauvegarde qu’on appellera sync_home.sh Ensuite, il y a 2 solutions. Soit l’exécution est rattachée à un utilisateur, soit elle est rattachée au système. Dans le premier cas de figure, il faut se connecter avec cet utilisateur, et exécuter la commande crontab -e . Si ça n’est pas déjà fait, vous allez pouvoir choisir l’éditeur de votre choix.

Dans le second cas, il faudra éditer le fichier /etc/crontab
Les règles se construisent comme indiqué :
# m h dom mon dow command

m est pour minutes [0-59]
h est pour heure [0-23]
dom est pour journée du mois [1-31]
mon est pour mois, de janvier à décembre [1-12]
dow est pour journée du dimanche au samedi [0-6]
command est le chemin d’accès absolu de votre script

Voici des exemples de règles cron :

Exécuter un script à tous les jours à minuit

Exécuter un script le lundi à 14h30

Exécuter un script à toutes les heures

Exécuter un script à toutes les 30 minutes

Enregistrer le fichier, et c’est fini. Ok, pour nous qui avons grandit avec ça, c’est évident, mais il faut aussi penser à ceux qui débutent. Have fun!

SCRUM, acteurs et outils

L’équipe a un rôle capital dans Scrum : elle est constituée dans le but d’optimiser la flexibilité et la productivité ; pour cela, elle s’organise elle-même et doit avoir toutes les compétences nécessaires au développement du produit. Elle est investie avec le pouvoir et l’autorité pour faire ce qu’elle a à faire.

Le Product Owner représente le client et les utilisateurs. Il a pour rôle de définir l’ordre dans lequel les fonctionnalités seront développées et qui prend les décisions importantes concernant l’orientation du projet.

Le Scrum Master est le garant de la méthodologie Scrum auprès de l’équipe fonctionnelle. Il devra être facilitateur, animateur, négociateur, etc…, afin de s’assurer que le travail progresse correctement.

L’équipe opérationnelle est quant à elle auto-gérée et n’a aucune notion de hiérarchie interne : toutes les décisions sont prises collégialement, et personne ne donne d’ordre à l’équipe sur sa façon de procéder. Elle est composée des développeurs, mais aussi des testeurs, divisés en 2 catégories :
testeurs MOE : ils mettent en place les scénarios de tests fonctionnels pour s’assurer que la couverture fonctionnelle est conforme aux engagements et que le niveau de qualité exigé est bien respecté.
–  testeurs MOA : ils effectuent la recette de la dernière itération.

Avoir des bons outils est indispensable, et la méthode Agile s’est dotée d’outils indispensables, les Artefacts.
Le Product Backlog est un outil de collecte des fonctionnalités attendues ou exigées par le client (User Story), et qui évolue à chaque Sprint.

Le Sprint Backlog reprend les macro-fonctionnalités définies dans le Product Backlog et les décompose en tâches à implémenter pour le sprint qui va démarrer. Chaque membre de l’équipe opérationnelle s’engage sur un temps de travail pour chaque tâches établies.

La Burndown Chart est un diagramme qui permet de visualiser l’avancement des sprints et du projet dans sa globalité, c’est l’indicateur temporelle de l’évolution des tâches en cours dans le Sprint.

Processus Scrum (source Mike Cohn et Florent Lothon)
source Mike Cohn et Florent Lothon

AWK par l’exemple

Dans cet article, je vous propose de découvrir l’utilisation de awk (en ligne de commande, et non en script) pour lire ou analyser des fichiers, texte ou CSV, contenant plusieurs délimiteurs ou séparateurs.
Prenons comme exemple ce fichier texte (Prénom, département, mois, jour de naissance, nombre de frères, nombre de sœurs) :

  1. Pour imprimer la 3ème colonne contenant la date de naissance :

En précisant -F’:’ nous précisons à awk que le délimiteur est le caractère ‘:‘ . La troisième colonne correspond donc à $3


2. Pour imprimer le mois de naissance, la 3ème colonne tout séparateur confondu :

En précisant -F'[:;]’ nous précisons à awk que les délimiteurs sont les caractère ‘:‘ et ‘;‘ .


3.  Ajouter des variables, savoir combien de frères et sœurs ont les personnes :

On demande à awk de faire l’addition entre frères et sœurs, et on affiche le résultat.


4. Grouper / Dégrouper des variables en affichant plusieurs lignes pour la même personne :

Nous avons donc pour chaque personne une ligne avec le mois, le jour et l’année de naissance.


5. Utiliser les variables spéciales :

Les variables prédéfinies :
ARGC Nombre d’arguments de la ligne de commande
ARGV tableau des arguments de la ligne de commande-
FILENAME nom du fichier sur lequel on applique les commandes
FNR Nombre d’enregistrements du fichier
FS separateur de champs en entrée
NF nombre de champs de l’enregistrement courant
NR nombre d’enregistrements deja lu
OFMT format de sortie des nombres
OFS separateur de champs pour la sortie
ORS separateur d’enregistrement pour la sortie
RLENGTH longueur de la chaine trouvée
RS separateur d’enregistrement en entrée
RSTART debut de la chaine trouvée
SUBSEP separateur de subscript

Amusez-vous bien!!