Archive
Les comités d’architectures, pour ou contre.
Les comités d’architectures, pour ou contre.
On dit en méthodologies Agiles qu’on doit prioriser le travail d’équipes. Mais, à quel prix ? Surtout quand et comment, on parle d’architecture logicielle.
Un architecte logiciel au sien d’une équipe traditionnelle est le maitre après Dieu. Il est surtout le maitre désign logiciel. C’est lui, éminence grise, sur ce domaine. Les autres membres de l’équipe n’ont qu’à appliquer ce que ce « Dieu » a décidé.
En plus, de son travail s’effectue en début de projets. Où il met les grandes lignes de l’architecture (L’ARCHITECTURE LGOCIEL) et puis s’en va du projet. Et dans de très rares cas, lorsqu’on est vraiment chanceux et que le projet est long (conséquemment très gros). Et parfois, il reviendra en cours de projet, pour faire une revue d’architecture.
Mais, disons que cette stratégie n’est pas vraiment « Agile ». Mais, certaines organisations pour aider (ou favoriser) le travail d’équipe. Mais aussi la compréhension des membres des équipes de développement. Elle forme de ce qu’on appelle des comités d’architecture.
Un comité où les membres, indépendamment de leurs niveaux de compétences, s’assoient ensemble pour construire l’architecture du logiciel et bien sûr la mettre en œuvre. Arriver à un consensus sur les différents choix d’architectures nécessaire aux projets.
J’avoue que dans certains contextes et lorsque l’équipe est restreinte, cela peut fonctionner. Par contre, si l’équipe est trop grande, que la disparité des compétences (surtout en architecture logiciel) ne s’égale pas. On peut tomber dans le piège de la réunitivite. La maladie des réunions qui s’étire pour n’arriver à aucun consensus.
Donc, c’est quoi le compromis qu’il faut faire. Je sais, vous voulez une solution toute faite. Mais, si vous êtes lecteurs réguliers de mon blogue, vous savez que je ne donne jamais de solutions toutes faites. Je propose généralement une approche plutôt qu’une solution.
Mais, c’est quoi le rôle de l’architecte logiciel au sein d’une équipe Agile. D’abord concevoir cette architecture logiciel, je sais c’est évident. Mais, c’est bien de se le rappeler. Mais, contrairement aux environnements traditionnels. Il n’est pas le « DIEU » de l’architecture. Mais, l’expert aux SERVICES, oui aux SERVICES des autres membres de l’équipe.
De plus, son intervention aux projets de ne doit pas se limiter à une p’tite vite en début de projet. Mais, tout au long du projet. Il est au service de l’équipe et de ses membres
Donc, l’approche que j’utilise (oui je suis aussi Architecte logiciel « Agile ») et qui fonctionne avec les équipes dans lesquelles je l’ai appliqué. C’est que je conçois seul une première version de l’Architecture. Une fois conçu, je la présente oui, à un comité d’architecte « RESTREINT ». Il est généralement composé de 2 à 3 autres personnes (membre de l’équipe bien sur), ceux qui sont les plus expérimentés ou qui peuvent apporter quelque chose aux discussions.
Je présente toujours le concept d’architecture, en disant que je leur présente ma vision pour leur faire valider. Je suis à leur service et non l’inverse. Le but de cette première rencontre, c’est d’établir les bases de « NOTRE » vision de l’architecture logicielle. Lorsqu’il est nécessaire, nous pouvons ensemble la raffiner.
Une fois que cette petite équipe est arrivée à un consensus. Je dis bien un consensus, peut-être pas à la véritable architecture. Mais, les premières bases qui doivent être mises en début de projet. Elles seront et devront être raffinées en cours de projet. J’utilise cette approche à chaque phase importante d’architecture.
Tout faire en équipe, c’est philosophiquement bien. Mais, impossible à appliquer correctement dans le monde réel. Si nous sommes trop nombreux à discuter ensemble pour des choses simples. Il risque fort qu’on consomme du temps inutilement. Prendre de faire la sélection d’un groupe de composantes ou des grandes lignes d’architectures. Nous n’avons pas besoin d’avoir l’opinion de chacun des membres. Au besoin, leur poser individuellement la question, pourra très bien suffire
Il faut prendre le temps d’évaluer la rentabilité des efforts et le temps consommé aux projets. N’oublions pas, notre « ULTIME » but c’est de produire un logiciel. Ne pas faire, des réunions justes pour faire réunion.
En résumé, faire des comités d’architectures logiciels, oui, seulement lorsque c’est nécessaire. Rappelez-vous de vous poser les questions suivantes.
Pourquoi je fais quelque chose ?
Pour qui je le fais ce quelque chose?
Et surtout comment on doit fait la chose ?
Quelle est le meilleur outil pour construire le Web ?
Quelle est le meilleur outil pour construire le Web ?
Lors du dernier #WEBCAMP #QC, cette question a été lancée. Il y a eu un débat intéressant !
Mais, j’aimerais si vous me permettez, d’y réponde en plus de 140 caractères.
Toujours lorsque me pose ce genre de question, je réponds à peu près la même réponse. « un petit calepin, un crayon, mes deux (2) oreilles et mon équipe ».
Car, avant toute de choses, l’origine de l’application web que nous voulons construire est un « CLIENT ». Sans lui, il n’y aurait pas de projet !
Mes 2 oreilles me permettent l’écouter, mon calepin et mon crayon prendre des notes sur son besoin. C’est seulement après pris conscience de son besoin que je puisse enfin choisir qu’elle sera le meilleur outil pour répondre à son besoin.
Peut-être parfois, je prendrai des plates-formes #OpenSource ! D’autres du .Net ou même du Java (J2EE). Mais, peu importe vers quoi se tournera mon choix, il devra absolument répondre à ces critères.
1-Techniquement et efficacement rentable pour mon Client ! Si pour arriver à construire l’application qui rempli son besoin ! Que parce que j’ai choisi le langage « X » dans l’environnement « Y », le projet me prend 6 mois de plus avec des « Gourous » qui seront seules à comprendre ce qu’ils font. À mes yeux, je me tire dans le pied.
2-Une fois le projet terminé ! Est-ce que le client ou encore une équipe réduire, sera capable de supporter et d’entretenir l’application et son environnement ! J’ai trop vu souvent ! De belles applications, qui faisait pour quelque chose de simple (informatiquement parlant) et qui demandait une armée pour la supporter. Et là, je ne parle pas d’une plate forme de gestion de grandes entreprises. !
3-Mes choix technologiques sont-ils compatibles avec l’environnement de mon Client. Exemple, si mon client est ORACLE-JAVA-LINUX-Progress mur à mur, et que je lui arrive avec une application construire en ASP.NET sur une base de données SQL SERVER. Comme on dit l’application a besoin d’être belle ..!
4-L’expertise, l’expertise (les ressources humaines) nécessaire pour la mettre en œuvre existe-t-elle sur le marché local ou régional de MON CLIENT. Si mon client est perdu dans le Grand Nord et les seuls programmeurs qui peuvent l’aider et qui habite sa région, ne connaît que le PHP. Je n’irais pas l’écrire en JSF parce que tout simplement moi j’aime ça. On attache nos clients par la qualité des services qu’on lui rend et non par notre expertise technique qu’on possède.
5-Le web existe depuis longtemps, il a vu passé plus d’un langage ! C Pour faire les CGI-BIN, de l’ASP standard, Java pour faire des applets et tout le reste. La question n’est pas de répondre qui est le meilleur ! Mais, qui est le meilleur aujourd’hui ! Si refaisons le projet dans un an, dans 2 ans nos choix seront peut-être différents.
Je fais du Web depuis presque ses débuts ..! Et malgré toutes ces années, je n’ai pas trouvé le LANGAGE DE PROGRAMMATION meilleur que tous les autres. J’en ai juste trouve certain mieux adapter pour répondre à un besoin ou à contexte donné.
Rappelez-vous, le langage de programmation est un outil et non un moyen. L’outil est remplaçable par un autre. Quant au moyen, c’est la seule manière de faire la chose.
En résumé, ayez un bon coffre à outils !
Le “Pair Programming” revu et visité !
- On dit qu’il y a plus dans 2 têtes que dans une.
- Qu’en travaillant à 2 sur un même ordinateur, la qualité intrinsèque du code et des algorithmes augmente
- Si une personne est absente, surtout lors d’une absence prolongée. L’autre personne peut continuer où l’équipe avait laissé.
- L’Augmentation du rendement, augmentation de l’efficacité.
- « On dit qu’il y a plus dans 2 têtes que dans une. » Par cette expression, on parle souvent du cumul de connaissance, du cumul d’expérience.
- Même si les gens ne travaillent pas en pair, il n’est pas interdit de faciliter le travail collectif.
- Il est recommandé de mettre en place une structure, ou des structures qui permettent l’échange d’information comme les Wikis, les forums à l’interne de votre organisation. Ne paniquez pas, il existe de bonnes solutions opens sources qui pourront vous aider à les mettre en place
- lorsqu’il y a un problème, qu’une personne ne réussis pas à résoudre toute seule, il n’est pas interdit (même recommander) de demander l’aider. Utiliser momentanément le travail par pair pour résoudre le problème.
- Après tout, nous n’avons pas besoin du « pair programming » pour travailler en équipe, ensemble !
- La qualité du code et des algorithmes.
- La qualité du code, et des algorithmes est souvent 2 choses qui sont problématiques dans le développement logiciel.
- Les programmeurs ont souvent le syndrome de « DIEU », en croyant que leur code et leurs algorithmes sont les meilleurs. Mais, c’est FAUX. Le code fait par une personne n’est pas la solution ultime. L’équipe de doit avoir une connaissance générale du travail de tous ces membres !
- Une autre technique que contient XP (Extrem Programming), c’est la revue de code. Elle permet en groupe ou par un autre membre de l’équipe une revue du code.
- Une bonne revue de code devrait compter au minimum ces critères.
- Ce que ce n’est pas une revue de code
- Les recommandations de corrections ou d’amélioration ne sont pas actes de Dieux. Elles doivent être considérées comme une « RECOMMANDATION », une « OBSERVATION » et surtout laisser la place à la discuter tant en équipe que dans la relation Révisé-Reviseur.
- L’absence ou l’indisponibilité d’une ressource. Le calvaire de tout chargé de projets. Le pair programming nous aide, dans la gestion de cette non-disponibilité d’une ressource. Mais, lorsqu’on ne peut pas avoir 2 personnes qui font le travail, surtout en simultanées. Il est difficile de trouver de la remplacer aux pieds levés.
- La fameuse augmentation de la capacité de travail. C’est plus que vrai, qu’il y a de possibilités d’un bon gain de performance. Mais, pour arriver au fameux gain tant attendu, il aura une transition, une adaptation. Car, il ne sera pas immédiat. Les 2 personnes devront apprendre à travailler ensemble. Donc, si on inclut ce délai dans le calcul du gain de productivité. Je ne suis sûr qu’une petite organisation soit capable d’absorber les coûts durant cette transition afin d’atteindre la productivité attendue.
Agile et la modélisation, une première réflexion !
Durant cet exercice classique, l’architecte ou le modalisateur effectuait la conception du logiciel et de sa base de données. Un travail qui pouvait prendre beaucoup de temps. Un beau travail qui n’apporte rien au client, et ce, tant que le travail de programmation n’était pas commencé.
Mais en Agile, comme nous livrons des petits morceaux d’applications fonctionnelles par cycles. Il est difficile de penser qu’on peut faire toute la modélisation en début de projet. D’autant plus que de cycle en cycle, le besoin peut changer. Donc, ce qu’on aura modélisé au début (selon les approches classiques) risque de plus correspondent au besoin ou tout simplement être invalidé en cours de route.
Cette réflexion, pourrait faire conclure plusieurs personnes qu’il n’est pas nécessaire d’effectuer la modélisation ou de créer une architecture logicielle. Pourtant, même si nous sommes en Agile, elle demeure aussi importante.
Maintenant que nous sommes d’accord avec ce principe. Vous me direz comment, il faut le faire ? Je n’ai pas de techniques infaillibles. Mais, quelques principes que j’utilise selon le besoin.
Il y a plusieurs façons de faire cette modélisation, cette architecture logicielle. Mais, ce qui est généralement reconnu est de le faire selon le principe du juste à temps. C’est donc de faire ce qui est nécessaire pour le cycle.
Pour ma part, je conseille la règle du 110-120% nécessaire pour le cycle. L’excédentaire est une prévision pour le cycle suivant. 100% du besoin de ce que nous devons construire et 10-20% de mise en place des pièces qui seront nécessaires pour l’interconnexion des cycles suivants.
Par exemple, si nous travaillons sur la facette de la fiche Client. Il serait intéressant de prévoir les orientations des facettes commandes et facturations. Sans pour autant compléter le travail de ces dernières facettes.
Il arrive parfois pour le besoin du projet, nous avons besoin de mettre en place les bases ou les orientations d’architecture. Dans ce cas, n’ayez pas peur de faire un premier cycle consacré qui couvrira ces orientations. Mais, surtout faire une modélisation qui pourra évoluer selon les besoins durant le déroulement du projet. Il sera toujours le temps de le faire dans le cycle qui touchera la facette concernée.
Construiriez-vous une application, s’en savoir où en aller ? S’en avoir une vision de l’architecture sur quoi baser votre développement. Bien sûr que non. Donc, faire de la modélisation va de soit. Pour ce faire, voici quelques techniques quipeuvent vous aidez à faire cette modélisation. J’aime bien utiliser la modélisation par domaine pour la partie plus organique et les « User Story » pour la partie plus fonctionnelle.
Une bonne référence qui vous permettra de mieux faire la lumière sur le comment de la modélisation en contexte Agile, je vous suggère cette référence en Anglais : Agile Modeling. Elle couvre beaucoup de techniques relatifs à cette approche.
Mais, surtout voyez cette référence, commune une autre boite d’outils, et non le moyen comment faire la modélisation. Être Agile, faire un projet en Agile, ce n’est pas d’abandonner vos bonnes pratiques. C’est simplement, parfois, de les utiliser différemment !
En autres mots, il ne faut pas chercher à tout réinventer toute la modélisation. Il suffit de restreinte sa pensée au besoin du cycle. Rappeler-le souvent à vos architectes classiques.
Rappelez-vous la règle du rhinocéros. Il est difficile de le manger d’une seule bouchée, mais en toutes petites bouchées, c’est plus facile.
Bonne lecture à tous. L’équipe de Génération Agile !
Agile et l’intégration de ressources dites « particulières ».
Les méthodologies agiles donnent une place importante aux différentes personnes impliquées dans un projet, qu’il soit client, pilote, membres de l’équipe de développement où autres participants.
Les méthodologies agiles, et bien sur votre humble serviteur, préconisent de mettre la bonne personne à la bonne place en exploitant ses forces et ses compétences plutôt que se s’acharné sur ses faiblesses.
Ce n’est pas vrai de dire qu’on est bon dans tout, qu’on peut tout faire. Chaque individu à des forces et des faiblesses. Qu’elle soit causée par un manque d’intérêts ou par une limitation quelconque.
Souvent, beaucoup d’organisations ont peur d’engager des ressources qui en apparence a une certaine limitation. Et j’entends parlas pas seulement les personnes « dites handicapés » mais toutes personnes qui a une limite fonctionnelle, physique ou mentale.
Pourtant, malgré leurs limitations « en apparence » certaines de ces personnes cachent des habilités extraordinaires. Donnons par exemple, M. Albert Einstein, l’un des plus grands physiciens du dernier siècle avec son fameux E=mc2. Qu’est-ce que serait la physique moderne sans son apport. Pourtant, il était dyslexique. Ce qui aux yeux de biens des gens serait encore aujourd’hui un handicap majeur.
Je pense aussi à un ami, du secondaire, qui était paraplégique. Mais, en l’absence de jambes fonctionnelles, avait développé une force exceptionnelle au niveau des bras. Il était imbattable aux bras de fer.
La comparaison que je donne souvent, c’est l’achat d’une voiture. Si on met un gros budget pour acheter le super moteur, des roues de courses. Il risque d’en maquer pour le reste. Mais, cela ne veut pas dire que notre voiture ne correspondra pas à nos besoins, quelle ne sera pas fonctionnelle.
L’apparence de limitation d’un individu, peut-être une force dans un autre contexte. L’autre jour en discutant avec une amie, elle me racontait qu’un des amis avait problème de rendement avec ses employés (construction). Elle lui a suggéré d’engager de hyperactif, ils ont tellement d’énergie. Qu’ils pourront travailler comme 2. Je trouvais l’image belle.
L’hyperactivité qui causait problème en classe, sur un chantier de construction pourrait être un avantage.
Si on regardait notre contexte, l’informatique. Certaines limitations aux yeux de certains pourraient causer des problèmes. Par le passé, j’ai eu un employé qui était du syndrome d’Asperger, limitation qui causait de problème dans interaction personne à personne, le point négatif.
Mais, l’autre côté positif, c’est qu’il avait une passion démesurée (à la limite de la folie) pour le développement Web (javascript, asp.net, XML et compagnie). Une vraie encyclopédie sur ces technologies. Bien entendu, on ne l’a pas mis aux services à la clientèle. Il était notre développeur pour tout ce qui touchait le javascript, le XML, XSLT, CSS et compagnie. Il avait aussi la responsabilité de tester tous les frameworks ou librairies touchant ces technologies. Dieu merci Google, ne l’avait pas découvert, je n’imagine pas, ce que Google sortirait comme technologie s’il avait accès à ces services.
Je ne vous cacherai pas la première fois, que je l’ai rencontré. Je n’étais pas sur de vouloir l’engagé. Mais, je remercie le ciel d’avoir eu la sagesse d’aller plus loin.
Une autre personne que je connais, il est dyslexique. Beaucoup de gens auraient peur de le mettre en dans un contexte, il devrait faire de la formation et de l’animation de groupes. Et pourtant, cette personne le fait de plus de 20 ans.
Bien sûr, pour y arriver, il fait corriger ses textes et ses présentations. Ou semblait un problème, sa dyslexie, il s’en est servi pour apporter une compréhension nouvelle de la formation. Il a du pour surmonter, surpasser sa dyslexie trouver des solutions à l’apprentissage que d’autre n’aurait pas trouvés. Il se sert de ces techniques qu’il a développées pour lui, pour enseigner, former les autres. Il utilise une forme d’enseignement qui utilise plusieurs axes simultanément. Donc, tous trouvent son compte, n’oublions pas que chacun apprend de manière différente.
Comme, il me faisait remarquer tout le monde n’est pas visuel ou auditif. Des gens pour apprendre, doivent faire des exercices à répétitions par exemple, et bien d’autre manière d’apprendre.
En utilisant, leurs forces que plutôt qu’en s’acharnant sur leur faiblesse. On arrive à produire des meilleurs travaux.
En agile et avec le gros bon sens, si on place la bonne personne, avec les bonnes compétences, aux bons endroits. Que plutôt s’acharner à leurs faires réussir des tâches que toute manière, ils seront incapables de réussir, on réussirera de miracles . Ne demandons pas à un aveugle de voir, mais ce qu’il peut faire pour nous aider. Nous saurions peut-être surpris de sa réponse.
Le classement d’individus, les préjugés et toutes actions négatives envers les personnes. Quand on croit qu’il y a un problème et qu’on le résoudre en appliquant des idées préconçues, on se trompe souvent. Il faut rester ouvert, rechercher des solutions. On ne peut pas tout connaître, parfois demander, se documenter sur des limitations en apparence, on pourrait être surpris du résultat. Ces quelques efforts nous aideront à intégrer aux mieux des ressources qu’on aurait délaissées sans ces efforts.
Il ne faut pas oublier, qu’on a tous à notre manière des limitations qui aux yeux des autres, sont des handicapes majeurs. Pour moi, quelqu’un avec l’esprit fermé est plus problématique que un aveugle, un Aperger ou un dyslexique.
Il faut aussi trouver de nouvelles façons d’intégrer ses ressources, et ils pourront nous apporter des lumières dans notre nuit.
Restons ouverts d’esprit, restons agiles.. ! Même avec ces ressources qu’on éliminait par simples préjugés.
Les méthodologies agiles, au gouvernement est-ce possible?
Les méthodologies agiles au gouvernement est ce possible, je réponds à cette question Oui, avec beaucoup de travail par contre.
L’informatique évoluée, les expertises changes, le manque de ressource, la spécialisation des ressources, et encore bien d’autre élément vos finir à faire changer l’approche que nos gouvernements.
Je ne sais pas s’ils iront vers les méthodologies agiles ou autres choses, mais le modèle, dois, et va changer, j’en suis sûr.
En me fiant à mon expérience, à ce que j’ai vu jusqu’ici, le gouvernement va prendre la tendance la plus forte. À titre d’exemple, la technologie qui a pris émergence pour faire du web dans les ministères de la région de Québec, c’est du .net de Microsoft.
En plus, une nouvelle génération (« Y » et ses suivantes) arrive à grands pas, ils ne veulent plus les anciennes méthodes. Mon ami Nicolas Roberge a bien décrit la problématique dans son billet : Le choc des générations dans les technologies de l’information».
On vit, le gouvernement vit un changement majeur dans la manière qu’il doit faire et l’informatique. Récemment, on pouvait apprendre que de grands chantiers avaient défoncé les temps et les budgets, pour le pas dire qu’ils avaient perdu le contrôle.
C’est peut-être en ne faisant plus ces grands chantiers qui sont presque impossibles à contrôler.
On ne peut pas manger un rhinocéros en une seule bouché, mais si on le découpe en petit morceau, c’est plus facile à manger.
C’est la même chose pour un projet informatique. Il faut le prendre en plus partie, c’est beaucoup plus facile à gérer, et ce, dans le contexte du manque de ressources et de changement technologies.
Mais, pour les méthodologies agiles soient abordés dans nos ministères, il y a plus d’un changement à faire. Je ne veux pas couvrir tous les éléments dans ce billet. Je vais essayer d’explorer chacune des problématiques dans les billets suivants.
L’agilité au gouvernement, c’est possible. Mais on va avoir besoin de bon cuisinier pour aider à manger notre rhinocéros. Moi, je suis partant pour trouver la bonne sauce et vous.. ?
Seul, je n’y arriverais pas .. Je vais faire mon petit bout de chemin, aider certain à le faire.. Mais, tous nous devront en faire un aussi.
Là, et seulement là, les méthodologies agiles pourront être adoptées aux gouvernements.
Plan de travail, Les méthodoloties agiles et le gouvernement du québec
Mon ami Nicolas Roberge, m’a suggéré sur les méthodologies Agile et le gouvernement québécois.
Comme je crois, que je ne peux pas, qu’il est plus simple d’écrire une série de billets qu’un seul. Je vous propose donc un premier plan de travail.
1. Les méthodologies agile, au gouvernement est-ce possible ?
2. Les appels d’offres et les méthodologies agiles.
3. La motivation des ressources, une part importante du travail en méthodologies Agiles.
4. La gestion d’équipe mixte, consultant et fonctionnaire, est-ce possible ?
5. La gestion des demandes de changements dans le contexte gouvernemental.
6. La gestion de la livraison et de la facturation en contexte agile
7. Y-a-t-il une meilleure méthode, qui serait plus facile à adapter pour le gouvernement ?
Avez-vous d’autres suggestions et laissez-moi un commentaire.
Agile plus qu’un Buzzword et comment faire des affaires en agiles
On attendant parler partout des méthodologies agiles, comme étant le nouveau buzzword à la mode.
Et quand, quelque chose devient la saveur du mois, beaucoup de gens, très souvent avec les meilleures intensions du monde (et je le dis sans ironie), voie surgie des occasions d’affaires.
L’occasion d’offrir de nouveaux services à leurs clients. Car, beaucoup de gens, veulent se lancer à cette nouvelle approche, mais ne savent pas trop comment. Donc, le premier réflexe qu’ils ont, c’est engager un consultant.
Pour faire carrière en consultation, je sais que nous sommes vites à dire présent. Même si on n’a pas toujours la compétence. Ce billet n’est pas une critique sur le travail de consultant, étant moi-même consultant et propriétaire d’une petite firme de consultant, se serait me tirer dans le pied avec un fusil à lunette.
Mais, il faut avoir la sagesse de se former, et aussi d’intervenir dans notre spécialité et au besoin de faire partenariat. Je dirais même parfois, réinventer ou créer un nouveau modèle d’affaires.
Car, tant dans le contexte des méthodologies agiles, que d’autres secteurs de l’industrie, il est impossible de tout connaître.
A titre, d’exemple, j’effectue du conseil en méthodologies agiles depuis plusieurs années, depuis 2002, et je pratique régulièrement. Et, il m’arrive encore d’apprendre de nouvelles choses à ce sujet.
Je sais qu’il existe d’excellente formation théorique, par exemple la certification Scrum Master, certaines formations Lean et surement du côté Crystal Clear. Tout comme, il existe de nombreux livres aussi excellents, les uns que les autres.
Mais, dans beaucoup de choses, la pratique et l’expérience de terrain valent de l’or. En suivant la formation, Certification Scrum master, vous apprendrez à animer le « Scrum matinal ». Je l’espère, que votre formateur vous donnera des exemples, et surtout comment s’en sortir, quand le Scrum n’atteint pas son objectif.
Je me souviens de professeurs de base de données à l’université, qui disait vous allez comprendre aujourd’hui, ou dans 10 ans, la modélisation de données. J’avais compris à lors, la modélisation de données. Mais, ça m’a pris 10 ans (manière de parler) pour comprendre ce voulait dire son expression. Si tu as le cerveau, les habilités, un bon professeur, etc. Tu pourras apprendre facilement la théorie. Mais, il faut plus que la théorie pour la mettre en pratique.
15 Ans, plus tard, la différence maintenant en modélisation de données, je pense que je suis meilleur. Mais, surtout je peux trouver plus rapidement une solution aux cas nos théoriques.
C’est la même, vous pourriez lire, des tonnes de livres sur le « pair programming », seule l’expérience pourra vous dire qu’en mettant 2 individus ensemble, pourquoi ça fonctionne tout suite. Et en changeant, l’un des partenaires l’efficacité du pair sera réduite à zéro.
Quand on veut se lancer dans les méthodologies agiles. Il faut aller chercher les formations, lire les livres, les blogues comme celui-ci. Mais, ce qu’il ne faut jamais oublié. Que malgré parfois, un grand nombre d’années d’expériences en informatiques. Que lorsqu’on commence, dans une nouvelle technologie, comme les méthodologies agiles, nous redevenons des juniors pour un temps. Le temps, que l’expérience rentre. C’est d’une question de temps et d’effort.
Rappelons-nous, quand nous avons commencé, quand nous étions juniors, la plus grosse erreur qu’on a tous faite. C’était de ne demander de l’aide, que souvent trop tard. Et maintenant, que l’expérience de la vie, que l’expérience professionnelle a rentrée, oui, dans d’autres secteurs. Il serait sage de demander cette aide dès le départ.
Et pourquoi, en utilisant le bon vieux principe qui a fait sait preuve. Le bon vieux compagnonnage. Faire du compagnonnage, c’est d’être agile avec les méthodologies agiles.
Il y a de la place pour tout le monde, pour faire de la consultation en méthodologies agiles, Mais S.V.P. arrêtons d’improviser, arrêtons de vendre de l’air. Revenons aux 4 principes agiles, au manifeste, afin d’offrir une véritable offre agile.
Macroscope versus Agiles, combat à finir
Pour beaucoup de gens, dont les puristes des 2 côtés, affirme haut et fort que ces 2 méthodologies s’opposent.
Mais, est-ce vraiment le cas ?
D’abord, posons un regard sur Macroscope de DMR.
Voici le texte d’introduction trouver le site de DMR. http://tinyurl.com/Macrosope
« Grâce à ses méthodes, processus et outils, Macroscope aide les entreprises à planifier, à mettre en œuvre et à gérer leur transformation organisationnelle par des initiatives clés :
• planification stratégique
• architecture de l’entreprise et de ses technologies de l’information
• développement, déploiement et maintenance de systèmes d’information et d’autres solutions technologiques
• gestion de projet
• gestion de la valeur et de la réalisation des bénéfices
À la manière d’une feuille de route, Macroscope guide les acteurs dans la réalisation de leurs activités, et ce, à toutes les étapes d’un changement organisationnel. »
Regardons de l’autre côté, maintenant, le manifeste agile : http://tinyurl.com/AgileManifesto
• Les individus et les interactions doivent primer sur les processus et les outils
• Le développement logiciel doit primer sur la documentation exhaustive
• La collaboration avec le client doit primer sur la négociation contractuelle
• L’ouverture au changement doit primer sur le suivi d’un plan rigide
Allez affirmer que Macroscope implémente les méthodologies agiles. Quand même, affirmer ceci serait une stupidité.
À la lumière de ces 2 courts textes, je crois que je peux, me permet de dire par contre qu’il ne s’oppose pas. Macroscope est une méthodologie qui décrit et définit les processus qu’on devrait faire pour le changement organisationnel, y compris ceux qui touchent le développement d’applications. Pour se faire, il fournit une série de gabarits qui permette de documenter les processus de développement logiciel et en plus, il donne beaucoup d’excellents exemples de références comme base pour les construire.
Vous pensez sans doute que je vais citer, le 2e principe, celui de la documentation exhaustive pour m’attaquer de front à Macroscope. Eh bien non, détromper vous trompez, c’est tout le contraire.
Oui, je m’en sers de ce principe. Mais, je ne m’en sers pas pour partir en guerre rangée contre DMR et sa méthodologie. Je reconnais certaines applications de son approche de gestion et surtout quand les gens en font une application en produisant sur documente ce n’est pas très agile. En produisant une documentation, exhaustive sans comprendre le sens de la méthode ou de la visé par Macroscope.
Ce n’est pas une grande nouvelle. Mais, je pense qu’on devrait réfléchir sur le problème différemment. Tout le monde qui me connaisse, et encore plus, ceux qui ont lu mes articles précédents savent que je prône la documentation, lorsque nécessaire bien sûr.
Il faut documenter ce qui doit être documenté. C’est ce que dit ce principe. Et de l’autre côté, Macroscope nous explique comment le faire cette documentation, comment documenter les différentes choses avec l’aide de ses gabarits. Donc, dans les faits, il ne s’oppose pas.
Donc, si nous voulons être agiles tout en utilisant Macroscope. C’est possible. Il suffit de gérer le projet en utilisant une approche agile. Et pourquoi pas SCRUM. SCRUM était une méthode du coté agile aussi structurée et structurante que peut-être Macroscope. Elle est très rassurante pour les clients.
C’est peut-être le compris que vous ou vos clients. Macroscope donne le cadre de comment faire le livrable et Scrum (ou autres méthodologies Agiles), vous donnera le déroulement de la livraison et surtout la responsabilisation de l’équipe tant recherché par les méthodes agiles.
Ce n’est pas un vrai passage aux méthodologies Agile diront certain. Mais, une belle transition qui pourra aider à mieux faire l’informatique. Et surtout, aider à démocratiser l’utilisation des méthodologies agiles dans notre belle région de Québec. En fin compte, les méthodologies Agiles ne cherchent pas à inventer rien. Mais, à utiliser la meilleure méthode pour atteindre l’objectif de livrer un logiciel fonctionnel et qui correspond au besoin du client.
S.V.P. par contre, ARRÊTEZ S.V.P. de sur documenter et de faire du copier-coller de chose qui est déjà documentée. Combien de fois, j’ai vu qu’on a répété le texte, parfois écrit différemment, pour expliquer la même chose dans une même série de documents. Je sais que Macroscope propose plusieurs livrables pour le même sujet et qui sont destiné à divers clients finaux. Faites seulement, ceux que vous avez besoin. C’est aussi déjà inscrit dans Macroscope.
Il n’est pas nécessaire de réécrire un algorithme de validation générique dans tous les dossiers fonctionnels qui l’utilise. Documentez-la dans un seul document et fais-y référence, dans les autres. Trouvez des moyens pour alléger la documentation.
Un document utilisant des références qui aurait dû faire de 20-25 pages. Mais, parce qu’on n’avait pas recopié le texte, la fameuse algorithme générique. Il contenait plus de 100 pages sinon. Qui aime lire des documents de 100 pages. Pas moi en tout cas.
Et en plus, pensons eu un peu à l’environnement.. ! Utilisons une documentation électronique, wiki, blogue et compagnie.
En utilisant, les bons côtés de chacune de ces méthodologies, nous serons agiles dans notre gestion de projets.
Et si vous croyez que cela ne peut pas fonctionner. Oui, j’en suis sur ça fonctionne. C’est d’ailleurs la technique que j’ai suggérée à une amie, une spécialiste Macroscope, et ancienne membre de l’équipe de rédaction de Québec. Car, elle voulait passer à agile, mais sans pour autant délaisser ses bases.
A ce que j’en sais et selon que j’en ai discuté avec elle, la dernière fois qu’on s’est vue. Elle l’a appliqué avec succès dans un de ses mandats dans un ministère.
Être agile, ce n’est pas tout changé, c’est aussi savoir manier l’ancien avec le nouveau. C’est de réfléchir le problème différemment, c’est de trouver ou de retrouver des solutions. C’est aussi ce service qui fonctionne pour arriver au mieux votre développement dans nos organisations.
Et ceux, qui ne me croient pas .. Communiquer avec moi, on le fera ensemble, cette implémentation d’Agile et Macroscope dans votre organisation. Info@generationagile.net
Bonne lecture à tous. L’équipe de Génération Agile !













