DevOps, l’apogée de l’Agilité?

Article publié précédemment sur ExcellenceAgile.com

On parle beaucoup de DevOps ces temps-ci. Mais est-ce qu’on saisit bien toute sa définition et les impacts de son implantation au sein d’un organisme ou une entreprise? Commençons par bien définir le DevOps pour avoir une meilleure perspective que le simple « buzzword ».

Au premier abord, on peut penser que faire du DevOps, c’est tout simplement une histoire d’outils:

Devops_Outils

Euh, mais non. Bien que certains outils soient nécessaires pour automatiser les aspects de notre livraison en continu, il y a bien plus que cela en jeu. Le fait de choisir des outils, de les l’installer, de les configurer et de s’en servir ne veut pas nécessairement dire qu’on fait du DevOps. Donc:

Devops_pas_outils

Poursuivons notre analyse. Si les outils ne règlent pas tout, j’imagine qu’il faut y mettre un peu de collaboration. La collaboration usuelle à laquelle on pourrait facilement penser est bien sûr la suivante:

devops_dev_op

Tout à fait d’accord avec ceci! D’ailleurs, il faut faire attention si on travaille actuellement en silos (développement et opération) de ne pas répéter la même chose avec DevOps en la mettant elle aussi dans un silo. On n’a pas besoin d’une troisième équipe qui fonctionne ainsi, n’est-ce pas? On a besoin davantage d’unir les forces de l’équipe de développement et de celles des opérations (environnement, sécurité, livraisons, mise en production, etc) afin de plutôt en faire une équipe qui s’entraide mutuellement. Bref, on veut que tout le monde se préoccupe des livraisons en production.

Par contre, je vais être déplaisant et poser ma question de coach:

C’est bon, vous voulez livrer en continu, mais pourquoi? Cela donne de la valeur à qui en bout de compte?

Oups, il nous manque une partie importante dans notre équation! Donc:

devops_pas_dev_op

La partie affaires (utilisateurs, pilotage, PO, analyste d’affaires) doit aussi être incluse dans notre équation DevOps, ce qui équivaut à représenter le DevOps ainsi:

devops

Il manque ainsi une bonne partie de l’équation si on fait du DevOps sans se préoccuper du côté affaires, avec des éléments tels que:

Les affaires, le développement et les opérations ont tous à la base des objectifs différents:

  • Développement: livraison d’incrément du produit;
  • Opérations: stabilité, fiabilité et sécurité;
  • Affaires: exigences en constante évolution pour obtenir de meilleurs produits et des clients contents.

Le DevOps devrait donc permettre d’aligner ensemble les objectifs de ces trois aspects.

De plus, je vais être à nouveau déplaisant, mais sans l’aspect des tests automatisés, il est très difficile, voire impossible, de faire du DevOps convenablement.  Eh oui, il est temps de vous réveiller si vous ne faites actuellement aucuns tests automatisés sur vos systèmes ! Et idéalement, il faut les faire AVANT le code en mode TDD (Test-Driven Development).  Cela vous permettra de clarifier les intentions et diriger les efforts avant d’écrire le code de production.

Pour faire des tests automatisés correctement, des approches Agile et un paquet de pratiques d’ingénierie Agile sont aussi très utiles.

Et si on voyait le DevOps comme l’apogée de l’Agilité, soit la poursuite logique de notre transition vers l’Agilité par la maîtrise des approches Agile, qui sont sensés pour nous dans notre contexte, afin de pouvoir livrer en continu? Bref, voir le tout comme un rassemblement de forces (ou pratiques) Agile nous poussant vers le DevOps!

Eh oui, le DevOps est probablement l’objectif ultime à atteindre! Avec lui, on relève toutes sortes de points à améliorer, pas juste au niveau de l’équipe de développement. C’est comme de l’amélioration continue au niveau de l’entreprise ou organisme au complet.

Et la beauté dans tout cela, c’est qu’on a pas besoin de maîtriser toutes les nombreuses pratiques Agile, les valeurs, le Lean Software Development et le Lean Startup pour faire du DevOps. Pas non plus obligé de se développer comme les Amazon et Netflix de ce monde avec leurs méga infrastructures. On peut y aller à petits pas, comme mentionné par Kent Beck dans son XP Programming. Voici quelques exemples:

  • Passer de 2 à 4 livraisons par année est un objectif très louable;
  • Automatiser graduellement les trucs effectués manuellement pour gagner continuellement en productivité;
  • Se bâtir une suite de tests automatisés sur nos composants de logique d’affaires;
  • Etc.

En fin de compte, il vaut probablement mieux évoluer vers de petites livraisons avec peu de changement que de grosses livraisons avec beaucoup de modifications et de risques.  On peut donc y voir ici un très bon ROI potentiel si on investit dans le DevOps.

devops2

Quand on implante DevOps, il ne faut pas oublier de voir à pouvoir se remettre d’une mauvaise mise en production rapidement. Il faut ainsi permettre des erreurs dans un environnement sécuritaire pour apprendre et arrêter de faire tout le temps les mêmes choses à chaque mise en production sans se remettre en question.

Il est fort probable qu’un changement de culture soit également nécessaire dans votre entreprise. Mais rien n’est impossible, même chez vous, peu importe le contexte. On peut trouver plusieurs exemples d’entreprises qui ont mis des applications Legacy dans un mode DevOps, notamment afin de les revitaliser.

J’espère que cet article a su démystifier le « buzzword » DevOps qu’on entend régulièrement de nos jours.

Références:

Publicités

Outils de productivité partie 5: Les utilitaires

work tools

Voici le dernier billet de cette série, du moins pour l’instant, où nous allons discuter en guise de conclusion des outils, utilitaires et autres trucs aidant à la productivité.

Nous allons donc faire un résumé de tout ce que cela prend pour mettre en pratique les conseils des 4 premiers billets.

La plupart des logiciels mentionnés dans ce billet sont gratuits. Aussi, bien qu’ils fonctionnent tous principalement sur des systèmes Windows, plusieurs sont multiplateformes.

Prendre des notes

Noter immédiatement toute idée, projet ou nouvelle tâche à effectuer qui vous passe par la tête. C’est très important, car notre cerveau a tendance à oublier. Cela nous permet donc de décharger notre cerveau dans un autre médium dont la recherche et la consultation ultérieure est possibles. Il y a des avantages et inconvénients à chaque type de médium (digital ou sur papier). Ne négligez pas le bon vieux cahier de notes. Le fait d’exercer le crayon est bon aussi pour notre cerveau et permet d’être plus créatif.

black notebook with pencil Cahier de notes genre Moleskine: J’aime bien ces cahiers de notes de grande qualité. Il en existe de plusieurs formats et certains sont assez petits pour se mettre dans une poche de manteau. Vous pouvez donc les traîner n’importe où.
Evernote: J’ai un faible pour Evernote, c’est un de mes outils préférés. Disponible sur la plupart des plateformes y compris les appareils mobiles, il permet d’organiser nos notes et de synchroniser le tout. On y peut aussi y copier-coller des articles trouvés sur Internet. Vraiment un must.
OneNote: Venant de la suite Microsoft Office, il permet aussi de regrouper des notes selon un thème ou un projet. Il est bien fait dans son genre et la synchronisation est aussi possible avec Office Online. Ils ont aussi fait une version OneNote pour les iPhones. Donc, si vous utilisez la suite Microsoft Office, OneNote est une bonne option.

Les tâches

C’est indispensable, il faut avoir un outil pour gérer notre système de tâche à faire, que cela soit au travail, à la maison ou pour des trucs personnel. Bien que la fonctionnalité de tâches qui accompagne les logiciels de courriel (Outlook, Lotus Notes, Gmail, etc.) puisse être utile, je les trouve en général limitée. Je vous recommande plutôt d’en avoir un qui est disponible facilement un peu partout ou qui se synchronise sur vos différents appareils. L’idée est de transporter vos tâches avec vous le plus facilement possible. Voici quelques options :

Toodledo : C’est celui que j’utiliser depuis quelque temps. Il permet de classer ses tâches en contextes (comme le GTD le recommande), de mettre des dates et des notes. On peut aussi y créer des tâches répétitives, ce que j’aime beaucoup. De cette dernière fonctionnalité, j’ai toujours une tâche pour faire ma revue hebdomadaire qui apparaît et demande à être exécutée.  On peut voir nos tâches en ligne ou sur nos appareils mobiles. Il existe une version « Premium » avec davantage de fonctionnalité.
image Simple GTD: Version très épurée pour gérer nos tâches à la manière GTD. Simple et sans éclats, il est efficace. Disponible sur le web uniquement.
Remember The Milk Remember the Milk: Très bel outil aussi disponible en ligne et aussi sur vos appareils mobiles. Il permet aussi de synchroniser avec diverses autres applications (GMail, Outlook) et il est aussi disponible pour les appareils mobiles.
Wunderlist: Nouveau venu dans le monde des outils de productivité. Très beau et simple, il est disponible sous de multiples plateformes et on peut le synchroniser facilement. J’aime bien et j’en fais l’essai actuellement avec mes tâches au travail.

Agenda

Pour l’agenda, prenez celui de votre courriel et cela devrait faire l’affaire. Vous pouvez aussi en avoir un papier, mais quand on ne l’a pas sur soi… Il est aussi intéressant de noter des actions à des dates précises dans notre agenda à titre de rappel. Par exemple, appeler le 1er mars pour un rendez-vous chez le médecin.

 

Minuteur

Pour la technique Pomodoro, c’est assez indispensable d’en avoir un. Vous pouvez vous en procurer du genre minuteur de cuisine. Pour des versions « digitales » afin de ne pas déranger les collègues de travail, il en existe plusieurs, par exemple:

Pomodairo : Version intéressante qui en plus d’être un minuteur, fait le calcul de certaines statistiques comme le nombre de pomodori par jour et la différence entre le nombre estimé et le nombre réel.
FocusBooster: Si vous ne voulez qu’un minuteur, celui-ci est simple et efficace. À vous de faire votre liste ailleurs et de comptabiliser vos statistiques dans un autre format.

Espace de travail propre et libre

Indispensable pour se mettre dans le focus de notre tâche courante. De plus, cela donne du positivisme et un je ne sais quoi de zen. Mon bureau à la maison à la réputation d’être un peu bordel, mais j’arrive toujours à garder un coin propre et libre de toutes paperasses, livres et autres trucs. Exemple:

 

 

Synchronisez vos documents

Si vous être comme moi et vous travailler avec plusieurs ordinateurs (bureau, travail, netbook, iPad, cellulaire) et bien c’est important de toujours trouver la dernière version de nos documents rapidement. Il est donc intéressant de gagner de temps au lieu de recopier nos trucs d’un poste à l’autre avec une clef USB par exemple. Aussi, cela vous fait une sauvegarde au cas où. Voici mes suggestions de services pour la synchronisation de documents:

Dropbox: Multiplateforme, simple et facile à mettre en place. On peut aussi partager certains de nos répertoires au choix. La version gratuite nous procure 2 Go gratuitement.
image Windows Live Mesh : La version bêta était bien est fonctionnait sur différentes versions de Windows (XP, Vista et Windows 7). Par contre elle sera remplacée définitivement fin mars 2011 par Windows Live Mesh. Cette dernière par contre, ne fonctionne pas sur Windows XP. Mais avec Skydive, vous avez 5 Go gratuitement pour synchroniser vos fichiers.

Autres

Voici une dernière liste de petits outils que j’installe sur tous mes postes. Ils sont tous gratuits en passant.

WinSplit Revolution : permets de splitter son écran assez facilement. On évite alors le « resize » manuel des fenêtres.

Launchy: utile surtout sur Windows XP, permet de retrouver programmes et documents facilement.

Klok: Comptabiliser mes heures n’est pas une de mes activités préférées. Klok me permet de le faire en partie à ma place. Juste à lui dire sur quoi je travaille, quand je prends des pauses et quand j’arrête. À la fin, il fait un beau bilan des heures passées sur chacun de mes différents dossiers ou projets.

Comme vous voyez, il y a plusieurs manières et outils pour nous aider à améliorer notre productivité. Je vous en ai suggéré quelques-unes, à vous de les regarder et de choisir ceux qui conviennent le mieux. Aussi, si vous en avez d’autres à suggérer, n’hésitez pas à le faire dans les commentaires.  Si c’est intéressant, je les ajouterai au billet.

Références: