Contact

Situation professionnelle

Freelance
Indisponible

Présentation

Je suis développeur spécialisé dans les technologies Microsoft et les méthodologies Agile (avec une préférence pour le ScrumBan) et je suis toujours prêt à relever de nouveaux défis techniques et humains pour permettre à des passionnées de concrétiser leurs ambitions.

Mon parcours professionnel m’a mené à beaucoup travailler sur du client lourd (C# / WPF / Winform / SQL Server / Démons systèmes) mais je m’intéresse aussi très sérieusement la mise en œuvre d’applications web (ASP.NET MVC) ainsi qu’aux applications mobiles (XAMARIN)

Comme toute personne passionnée par son travail, je ne me sens satisfait que lorsque ce que je produis apporte une réelle valeur et provoque de l’enthousiasme chez les utilisateurs, c’est pourquoi j’apporte une grande importance aux méthodes éprouvées de qualités logiciels telles que le TDD, le BDD, les principes SOLID et les méthodologies Agile, qui pour moi sont les seuls moyens viables d’atteindre réellement ce résultat.


Visitez mon blog sur : http://aurelien.boudoux.fr

Aurélien BOUDOUX

Expériences

Lead développeur / chef de projet

Actibase
Novembre 2009 à mars 2016
Missions effectuées
  • Reprise du projet phare en difficulté.
  • Gestion d'équipe (jusqu’à 7 personnes) selon les principes du "Tribal Leadership"
  • Définition de l'architecture technique.
  • Formation des développeurs et experts métiers.
  • Définition et mise en oeuvre des méthodologies de travail
  • Recrutement de développeurs pour renforcer l'équipe
Détails de l'expérience
  • Redéfinir le périmètre du projet en faisant prendre conscience à toutes les parties prenantes de l'importance d'apporter le plus rapidement possible de la valeur aux utilisateurs plutôt que d'établir un plan dont les résultats ne seront visibles que dans plusieurs années.
    Fixer les repères en révisant l'organisation pour appliquer les principes "agile" au cœur du projet (scrum,kanban, SOLID, pair programming, ...), et mettre en place des indicateurs clairement définis et compréhensibles par tous. (Taux de focalisation, perturbations, vélocité, dette technique, évolution du moral de l'équipe ...)
    Mettre en place des outils permettant de détecter rapidement les dérives (gestion des bugs proactive avec www.bubblebugs.net, workflow TFS, NikoNiko, Wiki, sharepoint, intégration continue, ...)
    Rester attentif aux comportements des membres de l'équipe, aux signaux, au manque de relation, au manque de confiance apparent, au manque de feedback.
  • Faire comprendre et être capable d'expliquer à mon équipe l'importance des principes de la conception de logiciels et de développement afin que nous soyons en mesure de produire des logiciels de la meilleure qualité possible dans le temps le plus rapide possible et être en mesure de continuer à le faire dans le futur.
    Faire comprendre et être capable de parler de manière cohérente sur les pratiques que nous mettons en œuvre (tels que le refactoring, TDD, la programmation en binôme et le langage omniprésent) ainsi que leurs avantages afin que nous y travaillons tous ensemble, et d’expliquer pourquoi ils sont si précieux.
    M'assurer que les fonctionnalités développées par mon équipe sont produites avec la qualité la plus élevée possible dans le temps le plus rapide possible et non moins, de sorte que nous soyons en mesure de continuer à le faire à l'avenir.
    Montrer aux développeurs de mon équipe la meilleure façon de faire les choses et de les aider à améliorer leurs compétences afin que nous devenions tous ensemble meilleur dans notre travail.
    M'assurer que la santé du logiciel fait par mon équipe est saine et que son état de santé soit visible afin que nous puissions tous nous concentrer sur les points d'amélioration possible.
    Agir à titre d'exemple pour tous les développeurs de mon équipe en étant la personne qui suit de plus près les principes et les pratiques que nous avons établis de sorte à ce qu’ils se sentent plus confiants à le faire.
    Agir à titre d'exemple à tous les développeurs de mon équipe en prônant l'apprentissage et prendre le temps de le faire moi-même pour qu'ils se sentent à l'aise, et montrer ainsi qu’ils peuvent le faire eux même.
  • Basculer l'architecture N-LAYER à couplage fort vers une architecture OIGNON à couplage faible pour placer le métier au centre du projet, et ainsi appliquer un design applicatif orienté domaine (DDD - voir article sur mon blog).
    Définition des guidelines pour l'écriture du code, la création des tables et fonctions SQL, les bonnes pratiques de mise en œuvre des mécanismes asynchrones, binding WPF, optimisation réseau, ....
    Mise en place du socle technique permettant de faire du déploiement continu niveau client lourd et base de données (migration de schéma automatique)
    Faire les choix techniques pour sélectionner les SDK qui permettront aux développeurs de travailler conformément aux bonnes pratiques en vigueurs. (échanges téléphoniques et emails avec des fournisseurs de technologie en anglais)
    Création d'un framework Opensource appelé SystemHell pour que l'équipe puisse créer facilement et rapidement des services systèmes testables, configurables et scalables (voir sur mon Github)
  • Expliquer et mettre en œuvre le Behavior Driven Development pour que les équipes fonctionnelles puissent fournir des scénarios au format Guerkin et pour que les développeurs puissent les exploiter dans le but de créer des tests de recettes automatisés qui seront rejoués à chaque modification du code.
    Former les développeurs aux principes SOLID, aux design pattern MVVM et GOF, et les mettre en garde sur les pratiques STUPID (antipattern, mauvaises pratiques, ...)
    Aider les développeurs à surmonter les problèmes techniques auxquels ils doivent à faire face au quotidien, et leur permettre de progresser sur l'architecture du produit grâce à la programmation en binôme et la relecture de code.