Showing posts with label Micosoft. Show all posts
Showing posts with label Micosoft. Show all posts

Sunday, June 1, 2025

Faire "Agile" de la bonne façon : les points et le contrat.

Au-delà des chiffres: Comprendre les Story Points comme un contrat tacite dans Azure DevOps: Adopter l'observabilité & SecDevOps

Introduction: Mise en contexte

Soyons honnêtes: l'idée des "story points" peut sembler un peu… eh bien, absurde au premier abord. C'est comme essayer de mesurer le ressenti d'une bonne tasse de café avec une règle. Mais les story points ne visent pas une mesure précise. Ils sont un outil de communication, de collaboration et, surtout, de compréhension de la complexité relative des tâches. Mais, si on les fait correctement, il ne s'agit pas de mesurer le temps ; il s'agit de tenir une promesse. Une promesse tacite, en fait, celle qu'on fait d'un coup d'œil complice et d'un haussement d'épaules un peu embarrassé. Il s'agit d'estimer l'effort, pas le temps. Utiliser les story points nous permet de prioriser efficacement et de suivre notre vélocité: en gros, à quelle vitesse nous avançons. C'est une approche étonnamment utile et c'est une pierre angulaire du DevSecOps.

L'écosystème interconnecté: Observabilité & SecDevOps

Imaginez un orchestre chaotique: où chacun joue un instrument différent, à n'importe quel cadence et où personne ne sait ce que font les autres. C'est à ça que ressemble le développement d'application sans un bon système. Azure DevOps, en revanche, ressemble à une symphonie magnifiquement orchestrée. Azure Boards (pour la planification), Azure Repos (pour le code), Azure Pipelines (pour les compilations et les déploiements) et Azure Artifacts (pour la gestion des packages): ils communiquent tous ensemble. Les changements dans le plan sont immédiatement reflétés dans le code, les compilations et les déploiements. Cela crée une boucle de rétroaction: un élément essentiel pour l'observabilité.

Voyez les choses de cette façon: un petit bug introduit pendant une compilation est immédiatement signalé, et l'équipe peut rapidement annuler les modifications. C'est un principe fondamental du SecDevOps: la sécurité proactive, la surveillance continue et la réponse rapide. Sans cette intégration, vous êtes essentiellement à l'aveugle. C'est comme essayer de réparer une fuite de canalisation, mais cette fois-ci avec une lampe de poche. La visibilité en temps réel est essentielle !

Observabilité et SecDevOps: Maintenir le contrat vivant

Sans observabilité, la capacité à comprendre ce qui se passe à l'intérieur de votre système, ce contrat tacite est fragile. Vous devez savoir pourquoi les choses se produisent. La surveillance, la journalisation et le traçage sont vos alliés. Les pratiques SecDevOps ne consistent pas seulement à ajouter de la sécurité ; elles visent à construire la résilience et la compréhension. C'est autant une question de manière de travailler que de ce que nous livrons !

Alors, qu'est-ce qu'une User Story ? (Et pourquoi c'est un accord secret)

Une user story, au fond, est un petit extrait de conversation. Ce n'est pas un document de spécification détaillé. Ce n'est pas un plan. C'est un point de départ. Une bonne user story ressemble à ceci: "En tant que [rôle utilisateur], je veux [objectif] afin que [bénéfice]." Exemple: "En tant que client, je veux pouvoir réinitialiser mon mot de passe afin de pouvoir accéder à mon compte si je l'oublie." Simple, non ?
Mais voilà le truc: ce ne sont pas seulement les mots. C'est l'accord implicite qui suit. C'est là que le côté "tacite" entre en jeu. C'est comme accepter de se voir pour un café: vous n'écrivez pas l'itinéraire exact, la température ou la marque de café préférée. Vous acceptez simplement de vous retrouver. Puis, vous vous débrouillez. Une user story bien rédigée est la base de cet accord.

L'art de moins de stress, plus de promesses

La documentation agile, et je ne parle pas d'un dossier de 100 pages, je parle de tout ce que l'on place simplement dans nos tableaux de travail, vise en réalité à réduire la pression sur l'équipe. Soyons réalistes, courir sans cesse après cette "spécification parfaite" ne fait qu'engendrer de l'anxiété. C'est un jeu de raffinement sans fin, et honnêtement, c'est épuisant. En adoptant une approche légère, on déplace l'accent de la documentation méticuleuse de chaque détail vers la simple capture d'assez d'informations pour que tout le monde reste aligné. Il s'agit d'une compréhension partagée, pas d'un contrat rigide.

Les éléments qui "verrouillent" la spécification (et pourquoi vous ne devriez pas les ignorer)

Décomposons ce qui fait réellement qu'une user story "tient". C'est plus que le format de base. Voici ce qui doit être présent pour que tout le monde soit sur la même longueur d'onde et pour créer cet accord puissant et silencieux :

  • Critères d'acceptation: Ce sont les règles de l'accord. Ce sont les éléments qui doivent être vrais pour que la story soit considérée comme "terminée". Ils ne sont pas optionnels. Exemple: "Étant donné que j'ai saisi une adresse e-mail valide, lorsque je clique sur ‘Réinitialiser le mot de passe', alors je devrais recevoir un e-mail avec un lien pour réinitialiser mon mot de passe."
  • Définition de Terminé (DoD): C'est la liste de contrôle plus large: scans de sécurité, revues de code, tests d'intégration, etc. C'est ce qui assure que la story est véritablement complète et fiable.
  • Valeur d'affaires": C'est la partie "… afin que …". C'est pourquoi nous faisons cela. C'est le lien avec l'objectif "business". Sans cela, vous construisez seulement des belles choses creuses sans but.
  • Considérations techniques: Parfois, l'équipe doit discuter des implications techniques. Ce n'est pas nécessairement une partie de la user story, mais il est important de le reconnaître.

Story Points: Engagements, pas échéances

Oubliez l'idée de mapper les story points aux heures. C'est une recette pour la frustration. Les story points sont des estimations relatives: parlons-nous d'une "petite modification" ou d'une "refonte majeure" ? Considérez-les comme un moyen de communiquer la complexité relative et le risque. Encore une fois, nous n'essayons pas de quantifier l'effort (c'est un piège !). Nous essayons d'établir une mesure relative de complexité et de risque. Une story estimée à environ 8 points est à peu près aussi complexe qu'une story à 13 points. L'important n'est pas le chiffre lui-même, mais la compréhension partagée qu'il représente.

La règle des 13 points: Quand décomposer

Voici un petit secret: tout ce qui est estimé à 13 ou plus devrait probablement être décomposé. Sérieusement. C'est un signal d'alarme rouge flamboyant qui vous dit que vous vous apprêtez à vous lancer dans quelque chose de potentiellement épineux. Les stories volumineuses sont souvent le symptôme d'un glissement de périmètre ou d'un manque de clarté.

Voyez les choses ainsi: si vous estimez une story à 13 points, vous dites essentiellement "Je ne suis pas tout à fait sûr de ce dans quoi je m'embarque." Et c'est tout à fait correct ! Mais cela doit être traité. Ne vous contentez pas de la confier à un développeur et d'espérer le meilleur.

La séquence de Fibonacci: Pourquoi une échelle relative ?

Vous avez probablement entendu l'histoire de Ron Jeffries et de la séquence de Fibonacci. Il essayait d'estimer l'effort sur un projet, et il s'est rendu compte que les tâches se répartissent souvent en catégories distinctes: certaines sont minuscules, d'autres énormes. La séquence (1, 2, 3, 5, 8, 13…) est une façon naturelle de représenter cela. C'est comme dire "D'accord, cette tâche est à peu près de la taille d'un petit chien, celle-ci est de la taille d'un Labrador…"

La valeur d'un point: Échelle, pas absolus

Ne tombez pas dans le piège de penser qu'un "3" signifie toujours la même chose. Lors du Sprint 1, un "3" peut être une entreprise énorme: réécrire une partie conséquente de l'application. Mais au Sprint 5, c'est probablement une tâche standard. La valeur d'un point se solidifie avec le temps à mesure que l'équipe acquiert de l'expérience et une compréhension partagée. Il s'agit de suivre la vélocité: la tendance de la rapidité avec laquelle vous avancez, pas d'un objectif rigide. Considérez cela ainsi: un marathonien expérimenté connaît mieux son rythme qu'un débutant.

Rigueur et flexibilité: Trouver l'équilibre

Bien qu'il soit important d'être réfléchi dans nos estimations, ne vous enfoncez pas dans les détails. La rigueur et la flexibilité doivent être équilibrées. Utilisez des techniques comme les rétrospectives de sprint et le planning poker pour affiner vos estimations au fil du temps. Adoptez l'auto-organisation et l'adaptation. N'oubliez pas que l'objectif est de communiquer efficacement et de délivrer de la valeur.

Azure Boards, Repos, Pipelines, Artifacts: Construire les "dents"

C'est là que la magie opère. Lorsque vous connectez vos Azure Boards, vos Git Repos, vos Pipelines et vos Artifacts, vous intégrez les dents dans ce contrat tacite.

  • Azure Boards: Fournit le cadre pour la story, le backlog et la planification du sprint.
  • Repos: La source de vérité pour le code.
  • Pipelines: Automatisent le processus de compilation, de test et de déploiement, garantissant une livraison cohérente.
  • Artifacts: Le livrable empaqueté, prêt à être déployé.

Cet écosystème intégré transforme une promesse vague en un résultat concret et vérifiable. Les pratiques de sécurité et DevOps (SecDevOps) sont cruciales ici. Pensez aux scans de sécurité automatisés dans vos pipelines, aux évaluations de vulnérabilité et à la surveillance continue.

Conclusion

En résumé: Les story points ne servent pas à mesurer le temps. Ils visent à instaurer la confiance, à favoriser la collaboration et à transformer des intentions vagues en résultats concrets. En connectant vos outils et en adoptant SecDevOps, vous pouvez transformer votre processus agile d'une série de suppositions en un pipeline de livraison fiable et reproductible.

Et en fin de compte, les story points sont un outil de communication et de collaboration, pas un système de mesure rigide. Adoptez l'approche du "contrat tacite": mettez l'accent sur la compréhension partagée et laissez les chiffres vous guider. Ne vous focalisez pas sur les chiffres ; concentrez-vous sur la livraison de la valeur.

Prêt à transformer vos pratiques DevSecOps ? Laissez-nous un commentaire ci-dessous pour planifier une consultation et découvrir comment nous pouvons vous aider à construire une équipe plus efficace et collaborative.

Prochainement: SecDevOps et Ingénierie de Plateforme.

Wednesday, May 21, 2025

Is Agentic SecDevOps for you?

What is it?

As usual. let's take a moment to look at the "bare essential constituant parts" of what Agentic DevOps is, and let's see how we align them to the SecDevOps mindset.

Microsoft’s "Agentic DevOps", Key Concepts:

  • "Agentic DevOps" positions AI agents (like GitHub Copilot) as active collaborators in the development and operations lifecycle, not just assistants, but participants.
  • These "agents" are embedded in developer workflows 
    • suggesting code
    • generating unit tests
    • assisting with CI/CD YAML configs
    • even watching platforms, helping triage incidents.
  • Azure/Devops and GitHub integration aims to create a seamless loop where AI connects dev, test, deployment, and observability pipelines.
  • The model encourages intent-driven automation, you describe what you want to achieve, and the agent helps scaffold or implement the solution.


Agentic DevOps: Is AI Ready to Be a Team Player?

We’ve all seen it by now: the demos where GitHub Copilot seems to finish your code before you even finish typing your thought. And now, with Microsoft’s Agentic DevOps vision, it’s not just about writing code faster, it’s about changing how we develop, test, deploy, and run software altogether.

I use it personally, all the time. It's quite stunning how it can "trim the fat" off writing code that would otherwise be obvious if not tedious. That is to say, some of the routines we write are simply "frequently used" and "well known" algorithms. Just different parameters or variables. 

You can ask LLMs to write whole applications too. And it sometimes does a reasonable job. That "sometimes" though...who knows when it will, or won't do things properly? The more code it is required to produce the more likely it's going to contain a major bug.

To be fair, the same can be said about the code we write ourselves. But what is predictable is our fallibility. We include this in our processes as a matter of fact. We might be tempted to trim this out of our processes if we involve an AI to do it.

So, the more reliable it is, the more we will rely on it. Now, is that an asset or a new risk?

Is it the revolution we need, or just another layer of complexity dressed up as automation?

As someone who’s worked at the intersection of security, operations, and DevOps culture for a while now, I’ve been watching this trend with both excitement and caution.

Let’s unpack it.


The Good: Why This Matters

  1. Acceleration of Repetitive Tasks
    Writing boilerplate YAML? Structuring that Bicep deployment script? Copilot is already shaving hours off those tasks. That’s not trivial, it frees teams to focus on actual design, risk, and user value.

  2. Incident Intelligence
    The integration of observability, logs, and incident data into Copilot's scope could mean AI agents can help identify root causes faster, maybe even qualify the issues for triggering automated remediations.

  3. Bridging Silos
    A shared platform where code, deployment, and monitoring are all AI-augmented could reduce friction between devs and ops, if adopted correctly. It could bring a consistent need for peer reviewing as a process, instead of having the process viewed as systematic criticism.

  4. Platform Engineering Synergy
    This vision aligns well with Internal Developer Platforms (IDPs), the AIs could help developers self-serve builds, infra, and pipelines more easily, if guardrails are properly enforced.


The Caveats (a few): From a SecDevOps Perspective

  1. Automation Without Understanding Is Dangerous
    If you don’t understand the YAML Copilot just wrote, you can’t secure it. Blind trust in agentic systems creates blind spots, especially in config, secrets handling, and permissions. Don't even get me started on Vibe coding. Understanding code is critical to maintain a Zero Trust ecosystem.

  2. Security by Suggestion != Secure by Design
    AI agents might suggest best practices, but it’s still up to humans to validate, enforce policies, and think critically. Shift-left becomes shallow if we just shift it onto Copilot’s shoulders. It may not cover all you bases either. So people must do better than fill in the gaps that AI might create, but instead, make the full list of requirements upfront.

  3. Agent Drift and Policy Compliance
    Who’s auditing what the agent changed? Is it versioned? Logged? Reviewed by humans? In a compliance-driven world, traceability and "explainability" are non-negotiable. Zero trust must and will still apply, and Copilot will be the first to be verified at every turn.

  4. Burnout via Pseudo-Acceleration
    There’s a real risk of perceived acceleration masking actual cognitive load. Teams might feel pressured to "keep up with the agent" without having time to understand, refactor, or breathe. The sheer volume of what the AI tools can output could be overwhelming, so lets keep using the sense of "best value" that DevOps always proposes.

  5. People are still the Platform
    Sustainability isn't just ecological, it's about building teams that last. If we offload too much thinking to tools, we risk alienating people from their craft. And vice-versa: if the tools are available and we simply forbid it's use, it can also cause alienation towards our progressive thinkers or enthusiasts.

  6. Governance with pattern recognition
    It may be tempting to have the AI look out for patterns that break our governance rules. But relying on it to do so, is at our own peril. As much as false positives could desensitize out teams as to real potential incidents, "needles in a haystack" outcomes, where AI does finally detect something pertinent, might require more effort to parse that it is worth. This approach must be carefully evaluated as far as the final value of "AI in governance".

  7. Agents are foreign entities
    So far, from the perspective of Microsoft's proposition, we can infer that we must entrust our code and agents and their specific instructions to their care. That's their business model so I don't blame them for it. Not only does the volume of use cases, reinforce their product and service offering, but it may also expose intellectual property and even security flaws. So you might want to consider "self hosting" part of or all of the components of your ALM, when integrating Agentic SecDevOps. After all, hosting AI models like phi4-reasoning is completely feasible at enterprise level. Theoretically, Microsoft doesn't have to figure in the loop, at all. Let's keep that in mind.


Where It Does Align with Our Values

The cultural DevOps model we’ve talked about, shared ownership, cross-functional empathy, sustainability, can work beautifully with Agentic DevOps if we:

  • Use AI to augment, not replace, team practices.
  • Insist on "explainability", traceability, and validation at every step.
  • Teach teams how to challenge Copilot’s output, not just accept it.
  • Preserve the social contract: automation serves the people, not the other way around.


So… Is This the Future?

Maybe. I for one, am looking forward to it. But only if we embed human-first principles into how we adopt it. AI and LLMs are great tools to generate ideas and test some of our own but critical thinking is still the realm of real people.

Yes, AI will shape how we build and run software. But whether it empowers or overshadows people, that’s still up to us. One thing is for certain, if is not working for us, we will be working for it. I don't mean this in the totally dystopian fashion of a bad sci-fi movie, but in the sense it may be more trouble adapting what we do, to it, if we don't design its caveats in our methods, from the get-go.

In my view, Agentic SecDevOps is using these tools like we have some very enthusiastic juniors that have a (quite a few) variety of opinions to share. But those opinions need critical scrutiny. And by the sheer volume of the propositions they can afford, they cannot be ignored: we must consider them.

Théâtre de la sécurité infonuagique: pourquoi les "meilleures pratiques" d'Azure ne vous sécurisent pas réellement (Avec blogueur invité Joshua Copeland)

Seule, une "checklist" ne vaut rien. Joshua Copeland et Jean-Paul Lizotte Image générée par l'IA. Tout le monde aime...