10 Years Challenge
Même équipe, même produits, même code
10 Years Challenge
Même équipe, même produits, même code
Bouducon, 10 ans déjà!
... et maintenant?
Dev ⇨ Dev + 10
“Senior”
Même pas mal ^_^
Un parcours... riche en
rebondissements
A la rencontre de l’équipe
T O U L O U S E
Parité!
All around the World
une place à part!
une place à part!
Spécificités
L’orga générale
Agile à notre façon
Agile à notre façon
Definition of Done
Quand peut-on fermer un Backlog Item ?
La piqûre de rappel à Gilles
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Déclamation
Individus et
interactions
Au fil du temps
Scrum ? Kanban ? What else ?
Expérience du Daily Open Space
Estimate / No Estimate
Dashboard timing releases
Utilisé par le PO pour communiquer aux clients et au management
Pair / Mob programming
Responding to change ?
Au fil du temps
Un backlog en évolution permanente
Changing code
How can we evolve our systems towards clean architectures and designs in an incremental Agile way?
https://vimeo.com/68215570 Robert C. Martin: Clean Architecture and Design
Nos changements, pas leur changements
Oui aux changements voulus par (et discutés avec) notre PO ✅
Non aux changements des librairies tierce parties ❌
Architecture and Decisions
“the job of an architect is to build a structure that allows decisions to be delayed as long as possible.”
A good architect maximizes the number of decisions not made.
Bob C. Martin
Composants et composabilité
Toujours le même code
Contexte et évolutions techniques
Je n’aurai pas été jusque là si...
Branch(es) : an Anti Agile Pattern
Trunk Based Programing
shorturl.at/ekDRY
https://adtmag.com/articles/2017/03/14/agility-code-branching.aspx
Branching by Abstraction
Customer
collaboration ?
Au fil du temps
User Stories
Les plus petites possible
Conversation entre devs et PO
Doit apporter une valeur à l’utilisateur
🙅 Design Quality (paye ta dette)
Ubiquitous Language
En 1944, dans Poésie 44, (Sur une philosophie de l'expression), Albert Camus écrivait: " Mal nommer un objet, c'est ajouter au malheur de ce monde ".
DDD : the King of the Domain is the Model
du BI au BDD
Executable Specifications aka BDD
Gherkin / Cucumber ⇒ Specflow/ C# ⇒ NUnit
On écrit nos premiers steps naïvement
On se pose des questions sur la manière de formuler
On se pose la question de le ré-utilisabilité
De l’expression des concepts à l’écriture d’une forme abstraite dans le code
Au début on apprenait de 0
Seul au monde ?
Who should read BDD executable specifications?
Everyone ?
Developers !!!
Product Owner =>
I Write tests ....
Je n’aurai pas été jusque là si...
Prendre du temps pour en gagner
Working
software ?!
Au fil du temps
TDD
Design and Write Test first
Think how your code can be tested in isolation
How you can write a test only by re using existing steps
Writing tests
Tests should:
https://medium.com/@kentbeck_7670/programmer-test-principles-d01c064d7934
TDD efficace
Tests should:
https://medium.com/@kentbeck_7670/programmer-test-principles-d01c064d7934
Continuous Integration
Fait Maison = fait avec amour
Résistant à la mode
C’est à nous!
YAGNI (adapté à ce dont on a uniquement besoin)
Je n’aurai pas été jusque là si...
...WITH comprehensive documentation
Au fil du temps
Processus Qualité Mondial et Dérivations
Scriptable Generation of Documentation
Contexte: Minor Release Documentation (incremental)
Sources de données:
XML -> XSL -> XHTML -> PDF -> signed PDF
Je n’aurai pas été jusque là si...
Living Documentation
No comments!!!!
Fluent Code
Documented Abstractions & Design
Readable Tests
Executable Specifications with BDD
Résister au temps
Au fil du temps
Le temps est rarement un ami
Pourquoi / pour qui j’écris du code
https://compassionatecoding.com/
April Wensel
Global Ownership of Code
Conception émergente
... pas toujours!
Kill the routine
Y’a pas que le boulot dans la vie!!!
Having
Fun
Au fil du temps
Role-Game your Code!
Une idée du PO
On joue l'exécution du programme
Jeu de rôle
On dévoile l’architecture technique en s’amusant
Faire du code
Responsable
Au fil du temps
Compassionate coding
Le code et son impact
Agile
Crafter
Au fil du temps
Step by step
Not only working software,
but also well-crafted software
Not only responding to change,
but also steadily adding value
Not only individuals and interactions,
but also a community of professionals
Not only customer collaboration,
but also productive partnerships