How To Fix Bad Agile By Discussing Baby Steps
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
Poker Planning is a collaborative game… that developers often lose! Here are the original fair rules that will provide developers time for technical work.
Is “Business Value” the only thing that matters for sprint plannings? Here are 3 Scrum practices that will buy developers some time for technical work!.
This infographic presents the perils of Scrum with component teams. It pushes organizations back in Waterfall Agile, late deliveries and non-sustainable work.
Software is mostly built according to experts opinions. These 7 data driven software engineering books show us another way to a productive and sustainable pa...
Pair programming is not just sitting together in front of an IDE. Here are battle tested answers to common questions that will make pairing work for you.
Skip studying queuing theory! Play this 1h15 serious game for learning why building-in quality at the source leads to a productive and sustainable pace.
In the previous posts, I presented how to use the Mikado Method to large organization changes. Drawn from the programming world, this technique keeps a low t...
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
Large scale agile transformations are often painful, stressful and … failed ! Mixing the Improvement Kata and the Mikado Method can make them more successful.
This is the fourth and last post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the third post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the second post in a series about making large organizations more agile. I encourage you to start with the beginning.
In Aesop’s famous tale, a farmer kills his goose that lays a golden egg every day to get all the eggs at once. He finds no eggs, lost his goose, and remains ...
eXtreme programming will not improve your short term productivity. But it will drastically improve your long term productivity.
During the last 15 years, I’ve worked in many different teams. Every team has its own way of working. I’ve been at places where everyone seemed busy all the ...
In Far From the mobbing crowd the Cucumber guys explain how they combined mob programming and remote work. Matt and Steve also explain that a mob is both res...
More than ever, the cheapest way to build a framework is to refactor it out of a specific app.
The improvement kata can solve problems that typical retrospectives fail to address. Although there is a halo of mystery around it, it’s actually not that di...
During the past few weeks, I blogged the story of our first improvement kata.
This is the fifth (and last) post of a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from par...
This is the fourth post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
This is the third post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
In my previous post, I described the productivity issue our team was facing. How retrospectives did not work, and how I started looking at the improvement ka...
If you are serious about continuous improvement, you should learn the improvement kata.
What would XP look like if it was invented today ?
Do you remember how people who are not used to the phone tend to shout in it, for the message to get far ? Read on and I’ll explain how this silly habit will...
As long as you are writing your tests before your code and doing regular refactoring, you are doing TDD !
Being agile is about adapting to change and continuously improving. I’ve seen (and been) in too many teams blindly following Scrum (Scrum Zombies) without fi...
How come the “agile scaling” landscape seems so daunting and bloated ?
Back in 2001, when I started to code for a living, fresh out of school, I was mainly doing a form of cowboy coding. After a few months of maintaining my own ...
From Wikipedia : Overclocking is configuration of computer hardware components to operate faster than certified by the original manufacturer …
As I already wrote about before, my colleague Ahmad from Beirut gave a talk at Agile Tour Beirut about how we adopted XP to a distributed team at work. I was...
First of all, what is that ? Usually, Scrum zombies go in groups, and quite often, you’ll find a full team of them :
My colleague Ahmad from Beirut gave a talk at Agile Tour Beirut on Saturday about how we adopted XP to a distributed team at work. I gave him a hand and play...
How do you get your kids to participate with housekeeping ? I guess that’s the dream of all parents. As so, we’ve tried quite a lot of tactics throughout the...
Have you read valve’s Handbook for new employees ?
If you are a developer and you are not shipping, you’re in the danger zone. I believe it’s mostly your fault, and it’s time to act.
We’re doing pair programming almost all the the time in our team. A few weeks ago, we went to Devoxx Paris, and 2 team mates used pair programming at a hands...
Maybe your company too has a development program you can use to track and organize your training path. That’s already great ! It is often not perfect though....
We don’t have an official scrum master in our team anymore. We now have 7 ! A different team member assumes the full scrum master role at every sprint.
Most companies don’t have unlimited vacations. Most likely, if you are an employee, your days off need to be validated by your boss. If you are like me, this...
A few weeks ago, as I was looking the internet for Lean principles to improve our way of working, I fell upon this book Petit guide de management lean a l’us...
Nowadays, start-ups and tech companies seem to be competing for the most beautiful offices in order to attract top talents.
Remaining a competent developer is a career long effort, if you stop programming, you’ll loose it ! As time goes, we are regularly offered pushed into manage...
Manual testing is important. Here is how we got to love exploratory testing.
If you’re having difficulties writing good performance related stories for your project, that’s no surprise ! We’ve been through the same troubles and we fou...
Madoff would have been better off managing software projects than investing on Wall Street !
At work, we are using as we all have Android phones, we are using the Scrum Poker Cards app to do our planning poker.
If you remove your job, you are promoted. (a classic lean quote)
The sad truth :
A slow build costs money. I mean it costs a whole lot of money all the time !
We just discovered a hack to spread agile (BDD by the way) through an organization. It works provided :
As a distributed team working from Paris and Beirut, after pair programming, it was time for our retrospectives to get remote !
At work, we are building a risk aggregation system. As it’s dealing with a large bunch of numbers, it’s a huge heap of optimizations. Once that its most stan...
Lately at work, we’ve unexpectedly been asked by other teams if they could use our product for something that we had not forseen. As we are not sure whether ...
In my team at Murex, we’ve been doing Pair programming 75% of our time for the past 9 months now.
Making commitments to deliver software is always difficult. Whatever the margin you might take, it invariably seems wrong afterward …
Now that is a widespread title for blog articles ! Just search Google, and you’ll find “Performance is a feature” in Coding Horror and others.
There is a french idiom that basicaly is
I’ve been programming for quite some time now, in different teams, using various methodologies. I also had the luck to do XP for at least 3 different project...
A few weeks ago, I read The principles of product development flow from Donald G. Reinertsen.
Everybody knows about the agile software development promise “Regularly and continuously deliver value”. This is how it is supposed to work :
I already wrote a lot about test proxies (here, here and here).
6 months ago, our team started to run systematic iteration retrospectives. Within these 6 months, our team became more agile than ever. Running efficient ret...
I love writing automated tests … or rather, I hate having to work in untested code. I find it makes my life unnecessarily stressful. On the other hand, the c...
I really don’t know why Scrum Sprints are called sprints ! From my experience, the number one mistake made by team starting with Scrum is to work as quickly ...
As agile and lean methodologies are gaining some place inside the workplace, especially in large corporations, I heard and saw quite a few teams struggling w...
I have worked in small agile teams, and it does indeed work a lot better than the classical waterfall & hierarchic environment. When speaking with other ...
There is a huge difference between reading about agile software developpment, and being an agile developper or team. There are a lot of practical best practi...
Teams often disagree about what is a good test strategy! So here is an all-in workshop to capture practices, define testing terms and agree on improvements.
Legacy code is where TDD is the trickiest. Start practicing the gilded rose kata with your team today! Your teammates will soon feel safe to apply TDD for le...
When testing legacy code, combine the test data builder pattern with the mikado method. This snowballs into more and more objects that are easy to set up in ...
There are many opportunities for Machine Learning in Software Engineering: testing, product management, processes… It might even set a sustainable pace!
A Machine Learning in Software Engineering intern identified critical tests to run. He also confirmed the open-closed principle, modular code, and small-comm...
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Custom assertions are a handy compromise alternative to mocks when we don’t have the time to refactor to a functional style.
We are sometimes tempted to use mocks to shortcut test data initialization. Unfortunately, excessive mocking makes tests difficult to maintain. As Uncle Bob ...
In my previous post I explained how Immutable Value Objects help us to avoid mocks. In this post, I’ll illustrate this in practice with real code.
Excessive use of mocks makes tests very painful to maintain. If we stick painful mocks for too long, we’ll end up abandoning unit testing. Eventually, the sy...
💡 Mock hell : when excessive use of test mocks makes refactoring extremely slow or difficult.
More than ever, the cheapest way to build a framework is to refactor it out of a specific app.
During the past few weeks, I blogged the story of our first improvement kata.
This is the fifth (and last) post of a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from par...
Don’t worry if your unit tests go to the DB, that might not be so bad.
As long as you are writing your tests before your code and doing regular refactoring, you are doing TDD !
There is a rather widespread TDD practice to have a single assertion per test. The goal is to have faster feedback loop while coding. When a test fails, it c...
I guess we always find excuses to keep on with our bad habits, don’t we? Stephen King
I started to learn Test Driven Development a long time ago. Since then, even though I’m still not a master, it’s been my most useful programming skill, by fa...
Last week, I’ve been working at adding a distributed countdown to my Online Planning Poker App. As our team works from Paris and Beirut, I wanted to unit tes...
Here is the story : you have a Rails 5 app that uses RSpec, but your RSpec suite is getting slower and slower to run. You’ve already considered some solution...
During the years doing some coding dojos with the same circle of people, I came up with my own style of practicing TDD. Lately, I had the chance to do a pair...
As I already wrote about, mocks can be trecherous … I gave a talk about how to avoid them last tuesday at Paris.rb meetup. Here are the slides.
Manual testing is important. Here is how we got to love exploratory testing.
We just discovered a hack to spread agile (BDD by the way) through an organization. It works provided :
Now that is a widespread title for blog articles ! Just search Google, and you’ll find “Performance is a feature” in Coding Horror and others.
Everybody knows about the agile software development promise “Regularly and continuously deliver value”. This is how it is supposed to work :
I just compiled my Gherkin and Cucumber goodies into a gem. It’s called cucumber_tricks and the source code can be found on github. It’s also tested on travi...
I already wrote a lot about test proxies (here, here and here).
I love writing automated tests … or rather, I hate having to work in untested code. I find it makes my life unnecessarily stressful. On the other hand, the c...
Lately, I have been introducing javascript and coffeescript in www.mes-courses.fr (with structural architecture issues as a side effect, but that’s another s...
I already wrote about my RSpec Matchers Combinators, I decided to extract them into the spec_combos gem.
Rspec matchers are a lot like predicates. Predicates that can talk … The good thing about predicates, as anybody who has done a bit of functional programming...
Version 1.3.0 of Cucumber droped spork support, so I had to find something else. I am using Guard setup with rspec and Cucumber for my Rails app.
There are already a lot of articles explaining how to setup an in memory SQLite database to speed up Rails specs or unit tests. Most of them explain how to c...
As I started to write more javascript code in my rails app, it became obvious that I should be testing it ! I wanted to use jasmine and coffeescript. I searc...
I have been using autotest for 2 years, and it’s been great ! The first time I ran it I thought “This rocks !” and I have always been using it since …
For testing purpose, I added FakeWeb to my app. Later, I deployed it to a staging env on heroku to find out that my scrapper started to fail with some strang...
As I updated my bundle, some capybara have_selector(…) matches started to fail. Here was the message :
From Martin Fowler’s point of view, I must have been a mockist. With using mocks extensively comes quite a few advantages :
I use rspec a lot. I thinks it’s a great testing framework.
Update 06/12/2014: I created a gem for this and other things
After reading The cucumber book I decided to add clever cucumber transforms but steps started to fail all over the place … Even completly unrelated scenarios...
Update 05/23/2014: I created a gem for this, read an introduction here
While working on www.mes-courses.fr, a background scheduled task that was running fine on heroku started to fail with out of memory errors. After searching a...
In Growing object-oriented software guided by tests they use a java library called Window Licker to pilot a gui running in test thread. Next time I started a...
I decided to stop using stub_model and mock_model. I do not use them enough to get fluent with them. Every time I have to deal with them, something breaks in...
Suppose you have some duplicated code in the Foo & Bar classes. You managed to extracted this code in a helper class. Fine, the helper class can now be t...
When working with legacy code, writing tests requires to exploit seams to -hack- inject custom behaviour. In Working Effectively with Legacy Code, Michael Fe...
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Custom assertions are a handy compromise alternative to mocks when we don’t have the time to refactor to a functional style.
We are sometimes tempted to use mocks to shortcut test data initialization. Unfortunately, excessive mocking makes tests difficult to maintain. As Uncle Bob ...
In my previous post I explained how Immutable Value Objects help us to avoid mocks. In this post, I’ll illustrate this in practice with real code.
Here is the story : you have a Rails 5 app that uses RSpec, but your RSpec suite is getting slower and slower to run. You’ve already considered some solution...
It might be possible to discover performance regressions before running your long and large scale benchmarks !
As I already wrote about, mocks can be trecherous … I gave a talk about how to avoid them last tuesday at Paris.rb meetup. Here are the slides.
One or two weeks ago, I registered to the Paris Ruby Workshop Meetup and needed a Ruby env. I have been using Vagrant quite a lot to isolate my different dev...
Algorithms are hard, and making them fast is even harder … But there are shortcuts that work quite often !
In search of an experienced software engineer
I recently got hands on an abandonned laptop that was better than the one I was currently using for my personnal hackings, so I decided to switch to this one...
I just compiled my Gherkin and Cucumber goodies into a gem. It’s called cucumber_tricks and the source code can be found on github. It’s also tested on travi...
I already wrote a lot about test proxies (here, here and here).
When testing html views, either from RSpec or from Cucumber, XPath can be really helpful to quickly find expected elements.
Every brands should provide an API for developpers … unfortunately, it far from the truth right now. A few years ago, when I started my mes-courses.fr side p...
Since I decided to stop Mes Courses to focus on AgileAvatars, I have been extracting open source gems from the code base. The last one is Storexplore : a dec...
I already wrote about my RSpec Matchers Combinators, I decided to extract them into the spec_combos gem.
Rspec matchers are a lot like predicates. Predicates that can talk … The good thing about predicates, as anybody who has done a bit of functional programming...
Surely this post is nothing new for experienced ruby developpers, but I found it so handy, that I thought it deserved a post of its own though. The problem i...
Version 1.3.0 of Cucumber droped spork support, so I had to find something else. I am using Guard setup with rspec and Cucumber for my Rails app.
There are already a lot of articles explaining how to setup an in memory SQLite database to speed up Rails specs or unit tests. Most of them explain how to c...
As I started to write more javascript code in my rails app, it became obvious that I should be testing it ! I wanted to use jasmine and coffeescript. I searc...
I have been using autotest for 2 years, and it’s been great ! The first time I ran it I thought “This rocks !” and I have always been using it since …
For testing purpose, I added FakeWeb to my app. Later, I deployed it to a staging env on heroku to find out that my scrapper started to fail with some strang...
As I updated my bundle, some capybara have_selector(…) matches started to fail. Here was the message :
From Martin Fowler’s point of view, I must have been a mockist. With using mocks extensively comes quite a few advantages :
I use rspec a lot. I thinks it’s a great testing framework.
Update 06/12/2014: I created a gem for this and other things
After reading The cucumber book I decided to add clever cucumber transforms but steps started to fail all over the place … Even completly unrelated scenarios...
Working with regular expressions is always a try and fail and retry … experience. It really helps to have an interactive tool with which to tune up your expr...
Update 05/23/2014: I created a gem for this, read an introduction here
While working on www.mes-courses.fr, a background scheduled task that was running fine on heroku started to fail with out of memory errors. After searching a...
While I was trying to enforce no ssl on a page of www.mes-courses.fr with Rack::SslEnforcer, I lost a few hours trying to fix a TOO_MANY_REDIRECTS error … Th...
A background scheduled task I am trying to run on heroku is failing because it gets out of memory. I needed to use a ruby memory profiler to understand exact...
There is no doc about this, but it turns out to be very simple, just copy the version directory :
I started using rails autoload to load files in my lib folder of http://www.mes-courses.fr. Before that, I had been using hand written require statements, an...
I just tried to integrate the blogit rails engine directly inside www.mes-courses.fr. Up till now, I was using a separated radiant app to deal with the blog ...
I am using rails to build www.mes-courses.fr. I use ubuntu for my development os, and heroku for deployment. As heroku enforces the usage of Postgre, I chose...
I am just finishing migrating www.mes-courses.fr from rails 2 to rails 3, and I can assure that I learnt these lessons the hard way …
I decided to stop using stub_model and mock_model. I do not use them enough to get fluent with them. Every time I have to deal with them, something breaks in...
When I migrated from rails 2.0 to rails 3.0, I had to change inclusion of ActionController::UrlWriter to Rails.application.routes.url_helpers. I started to g...
While migrating to ruby 1.9, I started using rbenv. I was wondering how it would handle my stock ubuntu ruby 1.8. It works out of the box with the rbenv “sys...
I discovered that before blocks in RSpec’s examples are executed in the order they are declared. There is no great deal about it, but it can be useful when u...
When trying to use devise 1.0.11 with rails 2.3.8 and bundler 1.0.10, I got the error could not find generator ... when running bundle exec script/generate d...
Don’t waste your time as I did !
Here is an example showing the issue :
Heroku is great, you can have a rails app running live in a few minutes ! There are still a few tricky points you’ve got to sort out a little differently. On...
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
You can now run the Slow Code Retreat by following the facilitation guide. By doing so, you’ll also learn 6 Liberating Structures for your future workshops.
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
Applying willpower to have a “wider than team” impact on an organization is a recipe for burnout! Check the “Local Actions, Global Impact” strategy instead.
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Teams often disagree about what is a good test strategy! So here is an all-in workshop to capture practices, define testing terms and agree on improvements.
Getting participants in a TCR code kata exercise seems complicated! Yet, given what TCR is, these sessions can radiate genuine fun and direct applicability!
Evolutionary Design might be the most valuable yet impenetrable XP practice. Use TCR to practice baby-steps coding, the cornerstone of Evolutionary Design.
A dysfunctional mob makes coaching impossible! So here is a workshop for team members to try and find the mob programming rules that work for them.
Doing code katas to learn real-life TDD can at first look like a scam to many developers. So here are three techniques to maintain a constructive mood.
Poker Planning is a collaborative game… that developers often lose! Here are the original fair rules that will provide developers time for technical work.
Is “Business Value” the only thing that matters for sprint plannings? Here are 3 Scrum practices that will buy developers some time for technical work!.
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Let’s give up trying to measure technical agile coaching! Instead, use these 3 liberating questions to self-assess how well you are doing at any moment.
Technical agile coaching is complex. Many organizations would track our work with inadequate measures. Here is how hypothesis-driven goals can keep us safe.
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
Trying to coach laggards will exhaust you. Here are 5 tips to deal with them, sustain you, and make you spend your energy where it matters.
Once exposed to bad TDD, teams are a challenge for any technical agile coach. Instead of trying to sell them TDD, XP, or whatever, fix their pains!
Too often, teams revert to their old habits when the technical agile coach leaves. Training part-time coaches is a powerful way to make the change stick.
Getting these crucial chats with product experts is often a brain-teaser! Let’s show devs how to trigger short, practical, immediate Example-Mapping sessions.
Prolonged remote-only work can be depressing. Here are 7 remote-pairing collaboration ideas to inject fun into the teams we are coaching!
Keeping our skills up to date is challenging. Remote work is a perfect excuse to run group learning sessions and to demo growth mindset to our coachees.
Remote work is an extra challenge for technical agile coaching. Here are 5 opportunistic remote pair-programming tips and tricks to show a better way of work...
Emily Bache wrote an accessible guide for technical agile coaches. Here is my review, plus my bonus section: How to sell your technical coaching services int...
There are many ways to manage team resistance. Here are some of the technical agile coach’s tricks that influence: testimonies, experiments, and more!
Randori-in-pairs code-katas maximize learning thanks to code and interaction. With git-handover and breakout rooms, it becomes a practical remote training.
Legacy code is where TDD is the trickiest. Start practicing the gilded rose kata with your team today! Your teammates will soon feel safe to apply TDD for le...
Writing team coding standards and conventions is hard but critical. Brainstorming doesn’t work, so let’s use asynchronous decision making or mob programming!
You will not find an Agile Technical Coach Job Description. This job is more invented than found. Here is the story of how we came to practice it at Murex.
Open-space technology un-conference is a powerful self-organized workshop. Here is a guide to making it remote-first, and even more inclusive!
Open-space technology un-conference is a powerful self-organized workshop. Here is the story of how we made it remote-first to grow a community of practice.
In the previous posts, I presented how to use the Mikado Method to large organization changes. Drawn from the programming world, this technique keeps a low t...
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
Large scale agile transformations are often painful, stressful and … failed ! Mixing the Improvement Kata and the Mikado Method can make them more successful.
This is the fourth and last post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the third post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the second post in a series about making large organizations more agile. I encourage you to start with the beginning.
In Aesop’s famous tale, a farmer kills his goose that lays a golden egg every day to get all the eggs at once. He finds no eggs, lost his goose, and remains ...
Last week, my colleague Ahmad Atwi and I went to the London SPA Conference to give our Remote eXtreme Practice talk.
First of all, what is that ? Usually, Scrum zombies go in groups, and quite often, you’ll find a full team of them :
We’re doing pair programming almost all the the time in our team. A few weeks ago, we went to Devoxx Paris, and 2 team mates used pair programming at a hands...
We just discovered a hack to spread agile (BDD by the way) through an organization. It works provided :
In The Serverless Mindset, I blogged about Event Storming and Example Mapping for agile architecture. How do you coach teams to adopt these workshops?
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Even more Event Storming tips! 3 will help you to avoid the mistakes we did. The last 2 are the recipe to learn more tips by yourself!
More Event Storming tips! 4 tips to delight attendees with fantastic facilitation. 3 tips about animating an Event Storming when there is existing code.
You’ve just invited 10 people to join your 8h Event Storming. Here are 9 Event Storming tips to maximize knowledge sharing and the use of everyone’s time.
DDD jargon is a domain expert repellent! Let’s not talk about DDD, but instead, start engaging domain experts in doing DDD workshops!
The key to successful DDD and Event Storming injection is to wait for the perfect challenge. Otherwise, we’ll have no choice but to hack the organization!
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
Where should we start? It’s easy to fall into priority paralysis as you envision an ambitious product. Let’s use DDD Event Storming to scope your next step!
Event Storming builds collective intelligence. We can keep it alive if we continue to work closely together and regularly repeat Event Storming.
What should we do after a DDD Design-Level Event Storming? How do we capture shared knowledge? How do we make the workshop more effective? Find answers here!
The most valuable activities in a DDD Design-Level Event Storming are UX and Aggregates explorations. Here is a step by step agenda that will lead us there.
Running a DDD Design-Level Event Storming is not rocket science! It’s still crucial to start the right way: with domain events and the Picture that explains ...
Design Level Event Storming is a collaborative design workshop. Use it to build and share the design of critical parts of systems using Event Sourcing and DDD.
In this podcast, you’ll learn about eXtreme Programming. Where did it come from? What are its differences between XP and Scrum or Kanban? How things like DDD...
We discovered that DDD concepts like Event Storming, Bounded Contexts, Ubiquitous Language, Entities and Values are useful in machine learning projects.
Recording the full Event Storming board is a waste of time. Here are examples of quick, focused, and digestible views that capture the board’s knowledge.
Event Storming builds ‘shared understanding’. This is often not enough to bring key action-oriented people in! Here are concrete techniques to convince them.
After going through why Event Storming uses post-its, we’ll go over alternatives. We’ll then see how to use these techniques to improve Event Storming!
Although incredibly effective, DDD is overlooked by developers because of its abstractness. Event Storming is a great way to introduce DDD without naming it!
DDD Big Picture Event Storming is a prelude and catalyst to other workshops. Ex: Design Level Event Storming, Example Mapping, Story Mapping & Impact Map...
Team organization is tough. Event Storming builds enough shared knowledge and architecture for successful team re-organization workshops.
With legacy code, rewrite vs refactor is a valuable but tricky question. Here is an Event Storming activity that shows how far we are from the target.
With Event Storming and DDD, we can draft services boundaries and NFR prototypes. In this post sequel, we’ll see that microservices are no silver bullet.
DDD Big Picture Event Storming is a great support to draft (micro)services boundaries and NFR prototypes. Let’s see how to with this workshop activity.
Big Picture Event Storming and DDD let us share an architecture vision. Here is a way to realize it through evolutionary architecture and emergent design.
The advanced DDD Domain Relationships shine as they keep the core upstream. Here is the end of an Event Storming activity to pick the best relationships.
Bounded Contexts are a key aspect of DDD. Here is a DDD and Event Storming activity to find what kind of domain relationships will ensure focus on core conte...
Event Storming and DDD can identify bounded contexts. In a bounded contexts relationship, one side will have the upper hand (be upstream). Core contexts shou...
Event Storming and DDD are great at identifying bounded contexts. It’s even more valuable to identify the core contexts to focus on, and the generic ones to ...
We did the 1st phase of DDD Big Picture Event Storming. It’s time to build on the shared knowledge to draft a functional architecture vision. All in just a f...
Although not rocket science, running a DDD Big Picture Event Storming can be tricky. Here are 4 hard won tips that will make your first workshop successful.
Thanks to massive knowledge sharing, a DDD Big Picture Event Storming is the 1st step to collaboratively draft a Rough Design Up Front. Here are its last ste...
The DDD Big Picture Event Storming is a creative game. It sticks to the classic open-explore-close flow. Here is the second part of its detailed agenda.
Kick starting a project with a DDD Big Picture Event Storming can be chaotic. Here is a detailed agenda and a sample briefing to set it on the right track.
Running a DDD Big Picture Event Storming is a great way to kick start a project. Fortunately, it only requires common supplies. Here is a detailed checklist.
The massive domain knowledge sharing of a Big Picture Event Storming unlocks DDD. Good preparation makes running one easy. Here’s the 1st of a 4 posts step b...
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
Evolutionary Design might be the most valuable yet impenetrable XP practice. Use TCR to practice baby-steps coding, the cornerstone of Evolutionary Design.
In The Serverless Mindset, I blogged about Event Storming and Example Mapping for agile architecture. How do you coach teams to adopt these workshops?
In this guest post, serverless expert Marco Troisi highlights 3 key skills to go serverless, and how, as coaches, we can help a team to learn them.
Where should we start? It’s easy to fall into priority paralysis as you envision an ambitious product. Let’s use DDD Event Storming to scope your next step!
Event Storming builds collective intelligence. We can keep it alive if we continue to work closely together and regularly repeat Event Storming.
What should we do after a DDD Design-Level Event Storming? How do we capture shared knowledge? How do we make the workshop more effective? Find answers here!
The most valuable activities in a DDD Design-Level Event Storming are UX and Aggregates explorations. Here is a step by step agenda that will lead us there.
Running a DDD Design-Level Event Storming is not rocket science! It’s still crucial to start the right way: with domain events and the Picture that explains ...
Design Level Event Storming is a collaborative design workshop. Use it to build and share the design of critical parts of systems using Event Sourcing and DDD.
After going through why Event Storming uses post-its, we’ll go over alternatives. We’ll then see how to use these techniques to improve Event Storming!
Although incredibly effective, DDD is overlooked by developers because of its abstractness. Event Storming is a great way to introduce DDD without naming it!
DDD Big Picture Event Storming is a prelude and catalyst to other workshops. Ex: Design Level Event Storming, Example Mapping, Story Mapping & Impact Map...
Team organization is tough. Event Storming builds enough shared knowledge and architecture for successful team re-organization workshops.
With legacy code, rewrite vs refactor is a valuable but tricky question. Here is an Event Storming activity that shows how far we are from the target.
With Event Storming and DDD, we can draft services boundaries and NFR prototypes. In this post sequel, we’ll see that microservices are no silver bullet.
DDD Big Picture Event Storming is a great support to draft (micro)services boundaries and NFR prototypes. Let’s see how to with this workshop activity.
Big Picture Event Storming and DDD let us share an architecture vision. Here is a way to realize it through evolutionary architecture and emergent design.
The advanced DDD Domain Relationships shine as they keep the core upstream. Here is the end of an Event Storming activity to pick the best relationships.
Bounded Contexts are a key aspect of DDD. Here is a DDD and Event Storming activity to find what kind of domain relationships will ensure focus on core conte...
Event Storming and DDD can identify bounded contexts. In a bounded contexts relationship, one side will have the upper hand (be upstream). Core contexts shou...
Event Storming and DDD are great at identifying bounded contexts. It’s even more valuable to identify the core contexts to focus on, and the generic ones to ...
We did the 1st phase of DDD Big Picture Event Storming. It’s time to build on the shared knowledge to draft a functional architecture vision. All in just a f...
Although not rocket science, running a DDD Big Picture Event Storming can be tricky. Here are 4 hard won tips that will make your first workshop successful.
Thanks to massive knowledge sharing, a DDD Big Picture Event Storming is the 1st step to collaboratively draft a Rough Design Up Front. Here are its last ste...
The DDD Big Picture Event Storming is a creative game. It sticks to the classic open-explore-close flow. Here is the second part of its detailed agenda.
Kick starting a project with a DDD Big Picture Event Storming can be chaotic. Here is a detailed agenda and a sample briefing to set it on the right track.
Running a DDD Big Picture Event Storming is a great way to kick start a project. Fortunately, it only requires common supplies. Here is a detailed checklist.
The massive domain knowledge sharing of a Big Picture Event Storming unlocks DDD. Good preparation makes running one easy. Here’s the 1st of a 4 posts step b...
The combination of Incremental Design and Event Storming is a better alternative to Big Design Up Front. It’s faster, safer and creates natural buy-in.
Although a nice idea in theory, Big Design Up Front has many problems that I learned the hard way. We should avoid BDUF most of the time.
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
More than ever, the cheapest way to build a framework is to refactor it out of a specific app.
Back in 2001, when I started to code for a living, fresh out of school, I was mainly doing a form of cowboy coding. After a few months of maintaining my own ...
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
You can now run the Slow Code Retreat by following the facilitation guide. By doing so, you’ll also learn 6 Liberating Structures for your future workshops.
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
A dysfunctional mob makes coaching impossible! So here is a workshop for team members to try and find the mob programming rules that work for them.
Is “Business Value” the only thing that matters for sprint plannings? Here are 3 Scrum practices that will buy developers some time for technical work!.
Mob programming requires time to get used to it. With practice, though, you’ll discover unexpected and compounding long-term benefits of mob programming.
Open-space technology un-conference is a powerful self-organized workshop. Here is a guide to making it remote-first, and even more inclusive!
Open-space technology un-conference is a powerful self-organized workshop. Here is the story of how we made it remote-first to grow a community of practice.
There are many opportunities for Machine Learning in Software Engineering: testing, product management, processes… It might even set a sustainable pace!
A Machine Learning in Software Engineering intern identified critical tests to run. He also confirmed the open-closed principle, modular code, and small-comm...
It’s the opinions of experts that drive Software Engineering! Models, like Big O, would lead to more fact-based discussions and better decisions.
Getting all the team to code review can be a real challenge. Here is the story of how a simple random review assigning tool nudged everyone to code review.
As software people, we live in a complex-system world. To leverage on its non-linear effects, we need to multiply weird experiments.
I had the chance to attend Devoxx France this year in Paris. Here is the most important lesson I learned :
This is the forth and last post of a series about the #ZeroBugs policy. In the previous posts, I detailed how we applied it in our team, what were the conseq...
This is the third post of a series about the #ZeroBugs policy. In the first 2 posts, I detailed how we applied it in our team, and what were the consequences.
This is the second post of a series about the #ZeroBugs policy. In the previous post, I detailed what a #ZeroBugs policy is and how we tried to apply it. I e...
Some teams spend 95% of their development time fixing bugs … An entrepreneur I worked with reported an even scarier story. He went bankrupt because bugs were...
The improvement kata can solve problems that typical retrospectives fail to address. Although there is a halo of mystery around it, it’s actually not that di...
During the past few weeks, I blogged the story of our first improvement kata.
This is the fifth (and last) post of a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from par...
This is the fourth post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
This is the third post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
In my previous post, I described the productivity issue our team was facing. How retrospectives did not work, and how I started looking at the improvement ka...
If you are serious about continuous improvement, you should learn the improvement kata.
Being agile is about adapting to change and continuously improving. I’ve seen (and been) in too many teams blindly following Scrum (Scrum Zombies) without fi...
As software developers, we very always often get to work in code bases that are not perfect. In this situation we have 3 choices : leave, grumble, or make so...
I already wrote how we started to use Trello to do our remote retrospectives. A while ago, my team mate Bilal Tayara started to collect our activities into t...
A few weeks ago, as I was looking the internet for Lean principles to improve our way of working, I fell upon this book Petit guide de management lean a l’us...
As a distributed team working from Paris and Beirut, after pair programming, it was time for our retrospectives to get remote !
6 months ago, our team started to run systematic iteration retrospectives. Within these 6 months, our team became more agile than ever. Running efficient ret...
At MegaCorp where I am currently working, there is a small team that is dedicated to find solutions to software bugs that regularly happen in production. The...
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Understanding is key to building quality software. Here are 3 levels of understanding we should go through before we start coding.
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Custom assertions are a handy compromise alternative to mocks when we don’t have the time to refactor to a functional style.
We are sometimes tempted to use mocks to shortcut test data initialization. Unfortunately, excessive mocking makes tests difficult to maintain. As Uncle Bob ...
In my previous post I explained how Immutable Value Objects help us to avoid mocks. In this post, I’ll illustrate this in practice with real code.
Excessive use of mocks makes tests very painful to maintain. If we stick painful mocks for too long, we’ll end up abandoning unit testing. Eventually, the sy...
💡 Mock hell : when excessive use of test mocks makes refactoring extremely slow or difficult.
We write tons of legacy code everyday. Experienced developers understand that legacy code is not something special. Legacy code is our daily bread and butter.
In my last post, I explained why incremental refactoring techniques will make you both more productive and relaxed.
This post is a bold promise. Mastering incremental refactoring techniques makes our lives as software engineers more enjoyable.
As software developers, we very always often get to work in code bases that are not perfect. In this situation we have 3 choices : leave, grumble, or make so...
I eventually stumbled upon a way to keep track of technical debt in source code that is both straightforward and already built-in most tools : simple TODO co...
I first read about Design By Contract in 2002, in Object Oriented Software Construction 2. As soon as I read it, I was convinced, today, I still believe it’s...
A rat race is an endless, self-defeating, or pointless pursuit. It conjures up the image of the futile efforts of a lab rat trying to escape while running...
A few months ago, after receiving good feedback from my regular readers, I posted my latest article Is There Any Room for the Not-Passionate Developer ? on H...
After the top 5 talks I attended at JavaOne here are more !
This is my second post relating the talks I attended at JavaOne 2016. Here is the beginning of the story. Here we go.
With a few other colleagues, I had the chance to be sent to San Francisco last week to attend the JavaOne 2016 conferences by my company.
During the years doing some coding dojos with the same circle of people, I came up with my own style of practicing TDD. Lately, I had the chance to do a pair...
The CFO’s debt is visible in his balance sheet. The CTO’s technical debt is invisible. What about making it visible ?
I think I found a way to fix the dirty code problem once and for all …
Since I started to program professionally 15 years ago, a lot of things have changes. A lot of technologies appeared and became mainstream while others fell ...
In search of an experienced software engineer
EDIT 2017-03-03 : This article is old, I am now using an improved Jira Personnal Kanban.
After finishing my concurrency-kata, one of the things that most surprised me, is how simple it was to prototype the Actor Model in Java using Green Threads.
EDIT 2017-03-03 : This article is old, I am now using an improved Jira Personnal Kanban.
In 1991, John F. Woods wrote :
As said Tom Cargill
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Evolutionary Design might be the most valuable yet impenetrable XP practice. Use TCR to practice baby-steps coding, the cornerstone of Evolutionary Design.
Doing code katas to learn real-life TDD can at first look like a scam to many developers. So here are three techniques to maintain a constructive mood.
Once exposed to bad TDD, teams are a challenge for any technical agile coach. Instead of trying to sell them TDD, XP, or whatever, fix their pains!
There are many ways to manage team resistance. Here are some of the technical agile coach’s tricks that influence: testimonies, experiments, and more!
Legacy code is where TDD is the trickiest. Start practicing the gilded rose kata with your team today! Your teammates will soon feel safe to apply TDD for le...
This infographics presents how TCR increases the share of refactoring in TDD. But Refactoring is already most of our daily work! We’d better learn it serious...
By focusing on small increments and collaboration, XP practices like CI, Pair or Mob programming, TDD, continuous refactoring and TCR make remote work easier.
My current job at work is technical coach. I’m available for teams that need help to adopt incremental coding practices.
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Custom assertions are a handy compromise alternative to mocks when we don’t have the time to refactor to a functional style.
We are sometimes tempted to use mocks to shortcut test data initialization. Unfortunately, excessive mocking makes tests difficult to maintain. As Uncle Bob ...
In my previous post I explained how Immutable Value Objects help us to avoid mocks. In this post, I’ll illustrate this in practice with real code.
Excessive use of mocks makes tests very painful to maintain. If we stick painful mocks for too long, we’ll end up abandoning unit testing. Eventually, the sy...
💡 Mock hell : when excessive use of test mocks makes refactoring extremely slow or difficult.
In my previous posts, I explained how to use the 20 hours of Code Katas technique to learn new languages. If you did not read these yet, start by the beginni...
In my previous post, I described how I’ve been using 20 hours of Code Katas to learn new languages. If you did not read it yet, have a look at it first. Let’...
We should not panic when asked to work with a new language. We should be bold enough to answer to job openings requiring technologies we are not used to. In ...
If you’ve read my previous posts about Team Randori Coding Dojos, you should know why and how to run a successful one.
In my last 2 blog posts, I’ve detailed why and how to start a team Randori Coding Dojo. That’s the easy part. As soon as you start your first dojo, you’ll fa...
In my previous post, I explained why you should start a team coding dojo Randori as soon as you can. Here is a step by step guide to set one up today.
Coding Dojos are easy to start and have a high return on investment. They will improve everyone’s technical skills. That’s only the start though. Practiced a...
Here is the main feedback I got about my previous post eXtreme eXtreme Programming.
Don’t worry if your unit tests go to the DB, that might not be so bad.
As long as you are writing your tests before your code and doing regular refactoring, you are doing TDD !
There is a rather widespread TDD practice to have a single assertion per test. The goal is to have faster feedback loop while coding. When a test fails, it c...
I started to learn Test Driven Development a long time ago. Since then, even though I’m still not a master, it’s been my most useful programming skill, by fa...
During the years doing some coding dojos with the same circle of people, I came up with my own style of practicing TDD. Lately, I had the chance to do a pair...
I already wrote a lot about test proxies (here, here and here).
I love writing automated tests … or rather, I hate having to work in untested code. I find it makes my life unnecessarily stressful. On the other hand, the c...
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
Poker Planning is a collaborative game… that developers often lose! Here are the original fair rules that will provide developers time for technical work.
Is “Business Value” the only thing that matters for sprint plannings? Here are 3 Scrum practices that will buy developers some time for technical work!.
Legacy code is where TDD is the trickiest. Start practicing the gilded rose kata with your team today! Your teammates will soon feel safe to apply TDD for le...
When testing legacy code, combine the test data builder pattern with the mikado method. This snowballs into more and more objects that are easy to set up in ...
More Event Storming tips! 4 tips to delight attendees with fantastic facilitation. 3 tips about animating an Event Storming when there is existing code.
This infographics presents how TCR increases the share of refactoring in TDD. But Refactoring is already most of our daily work! We’d better learn it serious...
In this podcast, you’ll learn about eXtreme Programming. Where did it come from? What are its differences between XP and Scrum or Kanban? How things like DDD...
Becoming business partners grants us freedom to refactor. Careful though, we must not over-abuse this trust if we want to maintain this partnership.
When we, developers, earn enough trust from business people, we become their business partners. As such we enjoy a lot more freedom to refactor.
How to improve a factual business case for a refactoring to make it even more compelling to business people.
With a bit of discipline, we can make a factual business case for a large-scale refactoring that business people won’t resist.
In 2005, professors Bizer and Petty showed something interesting about human behavior. People make more efforts to avoid what they don’t want, than to get wh...
Have you ever tried to talk about refactoring with business people ? Most of the time, the matter is pushed aside or received with rolling eyes … A few weeks...
It can sometimes be a real challenge to integrate, let alone deploy, a refactoring step by step ! Here are some patterns that make this easier.
Refactoring step by step generate a ton of small tasks here and there. Here are some organization best practices to keep track of them.
How can we exploit short time slots here and there to perform large scale refactoring?
Here’s everything you need to find the time for constant merciless refactoring … without asking for the permission!
In the end, incremental software development techniques are almost always the safest way to refactor. Here is why.
There are some simple attitude principles that badass developers follow to gain the business people trust.
Here is a one sentence summary of my previous post.
My last post was about the challenge for dev teams to get sponsorship for large scale refactorings. I listed two main reasons :
Whenever I present or suggest a good practice to dev teams, I often get the same remark. Here is how it goes :
Here is the main feedback I got about my previous post eXtreme eXtreme Programming.
We write tons of legacy code everyday. Experienced developers understand that legacy code is not something special. Legacy code is our daily bread and butter.
In my last post, I explained why incremental refactoring techniques will make you both more productive and relaxed.
This post is a bold promise. Mastering incremental refactoring techniques makes our lives as software engineers more enjoyable.
Last week, my colleague Ahmad Atwi and I went to the London SPA Conference to give our Remote eXtreme Practice talk.
Last week at work, we decided that we needed an Anticorruption Layer between our code and another team’s. They have been using our internal data structures a...
This infographic presents how the lack of prioritization triggers a vicious circle of bloated organizations, late deliveries, and a non-sustainable pace
Software is mostly built according to experts opinions. These 7 data driven software engineering books show us another way to a productive and sustainable pa...
Skip studying queuing theory! Play this 1h15 serious game for learning why building-in quality at the source leads to a productive and sustainable pace.
In the previous posts, I presented how to use the Mikado Method to large organization changes. Drawn from the programming world, this technique keeps a low t...
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
Large scale agile transformations are often painful, stressful and … failed ! Mixing the Improvement Kata and the Mikado Method can make them more successful.
eXtreme programming will not improve your short term productivity. But it will drastically improve your long term productivity.
During the last 15 years, I’ve worked in many different teams. Every team has its own way of working. I’ve been at places where everyone seemed busy all the ...
The improvement kata can solve problems that typical retrospectives fail to address. Although there is a halo of mystery around it, it’s actually not that di...
During the past few weeks, I blogged the story of our first improvement kata.
This is the fifth (and last) post of a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from par...
This is the fourth post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
This is the third post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
In my previous post, I described the productivity issue our team was facing. How retrospectives did not work, and how I started looking at the improvement ka...
If you are serious about continuous improvement, you should learn the improvement kata.
I eventually stumbled upon a way to keep track of technical debt in source code that is both straightforward and already built-in most tools : simple TODO co...
A few weeks ago, as I was looking the internet for Lean principles to improve our way of working, I fell upon this book Petit guide de management lean a l’us...
Nowadays, start-ups and tech companies seem to be competing for the most beautiful offices in order to attract top talents.
Current software project tracking tools suck !
There must be a way to know the real money value of Lean Startup ‘knowledge’.
I just invented the word, I found it funny :
The sad truth :
A slow build costs money. I mean it costs a whole lot of money all the time !
At work, we are building a risk aggregation system. As it’s dealing with a large bunch of numbers, it’s a huge heap of optimizations. Once that its most stan...
Lately at work, we’ve unexpectedly been asked by other teams if they could use our product for something that we had not forseen. As we are not sure whether ...
There is a french idiom that basicaly is
I’ve been programming for quite some time now, in different teams, using various methodologies. I also had the luck to do XP for at least 3 different project...
A few weeks ago, I read The principles of product development flow from Donald G. Reinertsen.
I have worked in small agile teams, and it does indeed work a lot better than the classical waterfall & hierarchic environment. When speaking with other ...
A dysfunctional mob makes coaching impossible! So here is a workshop for team members to try and find the mob programming rules that work for them.
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
Prolonged remote-only work can be depressing. Here are 7 remote-pairing collaboration ideas to inject fun into the teams we are coaching!
Keeping our skills up to date is challenging. Remote work is a perfect excuse to run group learning sessions and to demo growth mindset to our coachees.
Remote work is an extra challenge for technical agile coaching. Here are 5 opportunistic remote pair-programming tips and tricks to show a better way of work...
Randori-in-pairs code-katas maximize learning thanks to code and interaction. With git-handover and breakout rooms, it becomes a practical remote training.
COVID-19 has thrown us into remote work. Here are 3 world-class open-source tools for remote pair programming that you can set up today.
Writing team coding standards and conventions is hard but critical. Brainstorming doesn’t work, so let’s use asynchronous decision making or mob programming!
Even more Event Storming tips! 3 will help you to avoid the mistakes we did. The last 2 are the recipe to learn more tips by yourself!
Open-space technology un-conference is a powerful self-organized workshop. Here is a guide to making it remote-first, and even more inclusive!
Open-space technology un-conference is a powerful self-organized workshop. Here is the story of how we made it remote-first to grow a community of practice.
Maintaining a TO DO list or a Mind Map for programming task has many benefits. It improves collaboration, our decisions and our vision of what’s left to do.
By focusing on small increments and collaboration, XP practices like CI, Pair or Mob programming, TDD, continuous refactoring and TCR make remote work easier.
Full-time pair programming burns introverts out. Regular mob programming sessions yield the same benefits but are more sustainable.
5 more best practices about remote pair programming. Let’s deal with a painful headphone, a todo list, time difference, eye contact and continuous improvement
Remote pair programming brings surprising benefits to a team! Daunting at first, it is quite manageable with the good practices. Here are the first 2 of 7!
Pair programming is not just sitting together in front of an IDE. Here are battle tested answers to common questions that will make pairing work for you.
I had the chance to attend Devoxx France this year in Paris. Here is the most important lesson I learned :
In Far From the mobbing crowd the Cucumber guys explain how they combined mob programming and remote work. Matt and Steve also explain that a mob is both res...
Here is the main feedback I got about my previous post eXtreme eXtreme Programming.
What would XP look like if it was invented today ?
Do you remember how people who are not used to the phone tend to shout in it, for the message to get far ? Read on and I’ll explain how this silly habit will...
As I already wrote about before, my colleague Ahmad from Beirut gave a talk at Agile Tour Beirut about how we adopted XP to a distributed team at work. I was...
My colleague Ahmad from Beirut gave a talk at Agile Tour Beirut on Saturday about how we adopted XP to a distributed team at work. I gave him a hand and play...
I already wrote how we started to use Trello to do our remote retrospectives. A while ago, my team mate Bilal Tayara started to collect our activities into t...
As a distributed team working from Paris and Beirut, after pair programming, it was time for our retrospectives to get remote !
In my team at Murex, we’ve been doing Pair programming 75% of our time for the past 9 months now.
Don’t worry if your unit tests go to the DB, that might not be so bad.
As long as you are writing your tests before your code and doing regular refactoring, you are doing TDD !
As I said last week, I released the v0.1 of Philou’s Planning Poker, my latest side project. Although I have a day job, a wife, a family and a mortgage to pa...
As a manager, you could benefit a lot from helping your developers with their side projects.
There is a rather widespread TDD practice to have a single assertion per test. The goal is to have faster feedback loop while coding. When a test fails, it c...
I guess we always find excuses to keep on with our bad habits, don’t we? Stephen King
I started to learn Test Driven Development a long time ago. Since then, even though I’m still not a master, it’s been my most useful programming skill, by fa...
Back in 2001, when I started to code for a living, fresh out of school, I was mainly doing a form of cowboy coding. After a few months of maintaining my own ...
A rat race is an endless, self-defeating, or pointless pursuit. It conjures up the image of the futile efforts of a lab rat trying to escape while running...
A few weeks ago, I had to have a look at the distributed consensus protocol Paxos. Even though I know its purpose and I’ve built and used distributed systems...
A few months ago, after receiving good feedback from my regular readers, I posted my latest article Is There Any Room for the Not-Passionate Developer ? on H...
I’m currently wrapping up an alpha of a unit testing ruby gem that allows to assert the complexity of a piece of code. It’s the result of an experiment to le...
From Wikipedia : Overclocking is configuration of computer hardware components to operate faster than certified by the original manufacturer …
A few weeks ago, I posted my latest article Is There Any Room for the Not-Passionate Developer ? on Hackernews and Reddit Programming. The post stayed on the...
One or two weeks ago, I registered to the Paris Ruby Workshop Meetup and needed a Ruby env. I have been using Vagrant quite a lot to isolate my different dev...
5 years ago, I started blogging. I started really casually, my posts were personal reminders and notes rather than real well thought of articles. Nevertheles...
With time, I discovered a way of explaining the subtleties of my developer job to my uninformed relatives and friends.
Last time I tried to insert a code snippet in my Octopress blog, I was hurt by the following error :
If you are a developer and you are not shipping, you’re in the danger zone. I believe it’s mostly your fault, and it’s time to act.
Any software project (job, startup or side project) will require some time before one can get real feedback from real users.
For many reasons. But mostly because they are key to efficiently growing a software organization.
Current software project tracking tools suck !
There must be a way to know the real money value of Lean Startup ‘knowledge’.
Madoff would have been better off managing software projects than investing on Wall Street !
The sad truth :
In The Serverless Mindset, I blogged about Event Storming and Example Mapping for agile architecture. How do you coach teams to adopt these workshops?
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Getting these crucial chats with product experts is often a brain-teaser! Let’s show devs how to trigger short, practical, immediate Example-Mapping sessions.
Even more Event Storming tips! 3 will help you to avoid the mistakes we did. The last 2 are the recipe to learn more tips by yourself!
More Event Storming tips! 4 tips to delight attendees with fantastic facilitation. 3 tips about animating an Event Storming when there is existing code.
You’ve just invited 10 people to join your 8h Event Storming. Here are 9 Event Storming tips to maximize knowledge sharing and the use of everyone’s time.
DDD jargon is a domain expert repellent! Let’s not talk about DDD, but instead, start engaging domain experts in doing DDD workshops!
The key to successful DDD and Event Storming injection is to wait for the perfect challenge. Otherwise, we’ll have no choice but to hack the organization!
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
Where should we start? It’s easy to fall into priority paralysis as you envision an ambitious product. Let’s use DDD Event Storming to scope your next step!
Event Storming builds collective intelligence. We can keep it alive if we continue to work closely together and regularly repeat Event Storming.
What should we do after a DDD Design-Level Event Storming? How do we capture shared knowledge? How do we make the workshop more effective? Find answers here!
The most valuable activities in a DDD Design-Level Event Storming are UX and Aggregates explorations. Here is a step by step agenda that will lead us there.
Running a DDD Design-Level Event Storming is not rocket science! It’s still crucial to start the right way: with domain events and the Picture that explains ...
Design Level Event Storming is a collaborative design workshop. Use it to build and share the design of critical parts of systems using Event Sourcing and DDD.
In this podcast, you’ll learn about eXtreme Programming. Where did it come from? What are its differences between XP and Scrum or Kanban? How things like DDD...
We discovered that DDD concepts like Event Storming, Bounded Contexts, Ubiquitous Language, Entities and Values are useful in machine learning projects.
Recording the full Event Storming board is a waste of time. Here are examples of quick, focused, and digestible views that capture the board’s knowledge.
Event Storming builds ‘shared understanding’. This is often not enough to bring key action-oriented people in! Here are concrete techniques to convince them.
After going through why Event Storming uses post-its, we’ll go over alternatives. We’ll then see how to use these techniques to improve Event Storming!
Although incredibly effective, DDD is overlooked by developers because of its abstractness. Event Storming is a great way to introduce DDD without naming it!
It can sometimes be a real challenge to integrate, let alone deploy, a refactoring step by step ! Here are some patterns that make this easier.
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Excessive use of mocks makes tests very painful to maintain. If we stick painful mocks for too long, we’ll end up abandoning unit testing. Eventually, the sy...
I first read about Design By Contract in 2002, in Object Oriented Software Construction 2. As soon as I read it, I was convinced, today, I still believe it’s...
Doing code katas to learn real-life TDD can at first look like a scam to many developers. So here are three techniques to maintain a constructive mood.
COVID-19 has thrown us into remote work. Here are 3 world-class open-source tools for remote pair programming that you can set up today.
By focusing on small increments and collaboration, XP practices like CI, Pair or Mob programming, TDD, continuous refactoring and TCR make remote work easier.
In this podcast, you’ll learn about eXtreme Programming. Where did it come from? What are its differences between XP and Scrum or Kanban? How things like DDD...
Pair programming is not just sitting together in front of an IDE. Here are battle tested answers to common questions that will make pairing work for you.
eXtreme programming will not improve your short term productivity. But it will drastically improve your long term productivity.
In Far From the mobbing crowd the Cucumber guys explain how they combined mob programming and remote work. Matt and Steve also explain that a mob is both res...
Here is the main feedback I got about my previous post eXtreme eXtreme Programming.
What would XP look like if it was invented today ?
In my last post, I explained why incremental refactoring techniques will make you both more productive and relaxed.
This post is a bold promise. Mastering incremental refactoring techniques makes our lives as software engineers more enjoyable.
Last week, my colleague Ahmad Atwi and I went to the London SPA Conference to give our Remote eXtreme Practice talk.
Back in 2001, when I started to code for a living, fresh out of school, I was mainly doing a form of cowboy coding. After a few months of maintaining my own ...
As I already wrote about before, my colleague Ahmad from Beirut gave a talk at Agile Tour Beirut about how we adopted XP to a distributed team at work. I was...
My colleague Ahmad from Beirut gave a talk at Agile Tour Beirut on Saturday about how we adopted XP to a distributed team at work. I gave him a hand and play...
At work, we are building a risk aggregation system. As it’s dealing with a large bunch of numbers, it’s a huge heap of optimizations. Once that its most stan...
Lately at work, we’ve unexpectedly been asked by other teams if they could use our product for something that we had not forseen. As we are not sure whether ...
I’ve been programming for quite some time now, in different teams, using various methodologies. I also had the luck to do XP for at least 3 different project...
I have worked in small agile teams, and it does indeed work a lot better than the classical waterfall & hierarchic environment. When speaking with other ...
There is a huge difference between reading about agile software developpment, and being an agile developper or team. There are a lot of practical best practi...
DDD Big Picture Event Storming is a prelude and catalyst to other workshops. Ex: Design Level Event Storming, Example Mapping, Story Mapping & Impact Map...
Team organization is tough. Event Storming builds enough shared knowledge and architecture for successful team re-organization workshops.
With legacy code, rewrite vs refactor is a valuable but tricky question. Here is an Event Storming activity that shows how far we are from the target.
With Event Storming and DDD, we can draft services boundaries and NFR prototypes. In this post sequel, we’ll see that microservices are no silver bullet.
DDD Big Picture Event Storming is a great support to draft (micro)services boundaries and NFR prototypes. Let’s see how to with this workshop activity.
Big Picture Event Storming and DDD let us share an architecture vision. Here is a way to realize it through evolutionary architecture and emergent design.
The advanced DDD Domain Relationships shine as they keep the core upstream. Here is the end of an Event Storming activity to pick the best relationships.
Bounded Contexts are a key aspect of DDD. Here is a DDD and Event Storming activity to find what kind of domain relationships will ensure focus on core conte...
Event Storming and DDD can identify bounded contexts. In a bounded contexts relationship, one side will have the upper hand (be upstream). Core contexts shou...
Event Storming and DDD are great at identifying bounded contexts. It’s even more valuable to identify the core contexts to focus on, and the generic ones to ...
We did the 1st phase of DDD Big Picture Event Storming. It’s time to build on the shared knowledge to draft a functional architecture vision. All in just a f...
Although not rocket science, running a DDD Big Picture Event Storming can be tricky. Here are 4 hard won tips that will make your first workshop successful.
Thanks to massive knowledge sharing, a DDD Big Picture Event Storming is the 1st step to collaboratively draft a Rough Design Up Front. Here are its last ste...
The DDD Big Picture Event Storming is a creative game. It sticks to the classic open-explore-close flow. Here is the second part of its detailed agenda.
Kick starting a project with a DDD Big Picture Event Storming can be chaotic. Here is a detailed agenda and a sample briefing to set it on the right track.
Running a DDD Big Picture Event Storming is a great way to kick start a project. Fortunately, it only requires common supplies. Here is a detailed checklist.
The massive domain knowledge sharing of a Big Picture Event Storming unlocks DDD. Good preparation makes running one easy. Here’s the 1st of a 4 posts step b...
The combination of Incremental Design and Event Storming is a better alternative to Big Design Up Front. It’s faster, safer and creates natural buy-in.
Although a nice idea in theory, Big Design Up Front has many problems that I learned the hard way. We should avoid BDUF most of the time.
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Prolonged remote-only work can be depressing. Here are 7 remote-pairing collaboration ideas to inject fun into the teams we are coaching!
Remote work is an extra challenge for technical agile coaching. Here are 5 opportunistic remote pair-programming tips and tricks to show a better way of work...
Part of the tech lead role is to be available for help. Setting up office hours and pair programming is vital to avoid the mental load of task switching.
COVID-19 has thrown us into remote work. Here are 3 world-class open-source tools for remote pair programming that you can set up today.
Maintaining a TO DO list or a Mind Map for programming task has many benefits. It improves collaboration, our decisions and our vision of what’s left to do.
By focusing on small increments and collaboration, XP practices like CI, Pair or Mob programming, TDD, continuous refactoring and TCR make remote work easier.
Full-time pair programming burns introverts out. Regular mob programming sessions yield the same benefits but are more sustainable.
5 more best practices about remote pair programming. Let’s deal with a painful headphone, a todo list, time difference, eye contact and continuous improvement
Remote pair programming brings surprising benefits to a team! Daunting at first, it is quite manageable with the good practices. Here are the first 2 of 7!
Getting all the team to code review can be a real challenge. Here is the story of how a simple random review assigning tool nudged everyone to code review.
Pair programming is not just sitting together in front of an IDE. Here are battle tested answers to common questions that will make pairing work for you.
In Far From the mobbing crowd the Cucumber guys explain how they combined mob programming and remote work. Matt and Steve also explain that a mob is both res...
What would XP look like if it was invented today ?
Last week, my colleague Ahmad Atwi and I went to the London SPA Conference to give our Remote eXtreme Practice talk.
My colleague Ahmad from Beirut gave a talk at Agile Tour Beirut on Saturday about how we adopted XP to a distributed team at work. I gave him a hand and play...
We’re doing pair programming almost all the the time in our team. A few weeks ago, we went to Devoxx Paris, and 2 team mates used pair programming at a hands...
In my team at Murex, we’ve been doing Pair programming 75% of our time for the past 9 months now.
More than ever, the cheapest way to build a framework is to refactor it out of a specific app.
In my spare time, I’m writing a Planning Poker App. As a reminder, planning poker is a group estimation technique designed to eliminate influence bias. Parti...
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
Here is the story : you have a Rails 5 app that uses RSpec, but your RSpec suite is getting slower and slower to run. You’ve already considered some solution...
I decided to use my latest side project as an occasion to learn Docker. I first used Heroku as a platform for deployment (see previous post). It works fine b...
My current side project is an online tool to do remote planning pokers. I followed my previous tutorial to setup Rails, Docker and Heroku.
A few years ago, I used Heroku to deploy my side-project. It provides great service, but I remember that updates to the Heroku Stack was a nightmare … Versio...
Lately, I have been introducing javascript and coffeescript in www.mes-courses.fr (with structural architecture issues as a side effect, but that’s another s...
There are already a lot of articles explaining how to setup an in memory SQLite database to speed up Rails specs or unit tests. Most of them explain how to c...
As I started to write more javascript code in my rails app, it became obvious that I should be testing it ! I wanted to use jasmine and coffeescript. I searc...
I started using rails autoload to load files in my lib folder of http://www.mes-courses.fr. Before that, I had been using hand written require statements, an...
I just tried to integrate the blogit rails engine directly inside www.mes-courses.fr. Up till now, I was using a separated radiant app to deal with the blog ...
I am using rails to build www.mes-courses.fr. I use ubuntu for my development os, and heroku for deployment. As heroku enforces the usage of Postgre, I chose...
When I migrated from rails 2.0 to rails 3.0, I had to change inclusion of ActionController::UrlWriter to Rails.application.routes.url_helpers. I started to g...
I am using rails 2.3.8, devise 1.0.11 and ssl_requirements 0.1.0. I am having strange behaviour when mixing devise with ssl_requirements. When a form posts t...
When trying to use devise 1.0.11 with rails 2.3.8 and bundler 1.0.10, I got the error could not find generator ... when running bundle exec script/generate d...
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
Teams often disagree about what is a good test strategy! So here is an all-in workshop to capture practices, define testing terms and agree on improvements.
A dysfunctional mob makes coaching impossible! So here is a workshop for team members to try and find the mob programming rules that work for them.
Prolonged remote-only work can be depressing. Here are 7 remote-pairing collaboration ideas to inject fun into the teams we are coaching!
Mob programming requires time to get used to it. With practice, though, you’ll discover unexpected and compounding long-term benefits of mob programming.
Writing team coding standards and conventions is hard but critical. Brainstorming doesn’t work, so let’s use asynchronous decision making or mob programming!
Getting all the team to code review can be a real challenge. Here is the story of how a simple random review assigning tool nudged everyone to code review.
Skip studying queuing theory! Play this 1h15 serious game for learning why building-in quality at the source leads to a productive and sustainable pace.
If you’ve read my previous posts about Team Randori Coding Dojos, you should know why and how to run a successful one.
In my last 2 blog posts, I’ve detailed why and how to start a team Randori Coding Dojo. That’s the easy part. As soon as you start your first dojo, you’ll fa...
In my previous post, I explained why you should start a team coding dojo Randori as soon as you can. Here is a step by step guide to set one up today.
Coding Dojos are easy to start and have a high return on investment. They will improve everyone’s technical skills. That’s only the start though. Practiced a...
Nowadays, start-ups and tech companies seem to be competing for the most beautiful offices in order to attract top talents.
For many reasons. But mostly because they are key to efficiently growing a software organization.
Let’s give up trying to measure technical agile coaching! Instead, use these 3 liberating questions to self-assess how well you are doing at any moment.
Technical agile coaching is complex. Many organizations would track our work with inadequate measures. Here is how hypothesis-driven goals can keep us safe.
Keeping our skills up to date is challenging. Remote work is a perfect excuse to run group learning sessions and to demo growth mindset to our coachees.
Part of the tech lead role is to be available for help. Setting up office hours and pair programming is vital to avoid the mental load of task switching.
Maintaining a TO DO list or a Mind Map for programming task has many benefits. It improves collaboration, our decisions and our vision of what’s left to do.
Turning Kanban boards vertically fits western cultures better. Improving UX of our process tools would eventually lead to a more effective and sustainable pa...
Flipping your Kanban board columns is a cheap way to reduce multitasking and stress. Eventually, it contributes to a more sustainable pace.
I had the chance to attend Devoxx France this year in Paris. Here is the most important lesson I learned :
In my previous posts, I explained how to use the 20 hours of Code Katas technique to learn new languages. If you did not read these yet, start by the beginni...
In my previous post, I described how I’ve been using 20 hours of Code Katas to learn new languages. If you did not read it yet, have a look at it first. Let’...
We should not panic when asked to work with a new language. We should be bold enough to answer to job openings requiring technologies we are not used to. In ...
As I said last week, I released the v0.1 of Philou’s Planning Poker, my latest side project. Although I have a day job, a wife, a family and a mortgage to pa...
A few years ago, I wrote about how I started to use Jira as my personal Kanban board at work. A lot of things have changed since then, which brought me to up...
Remaining a competent developer is a career long effort, if you stop programming, you’ll loose it ! As time goes, we are regularly offered pushed into manage...
EDIT 2017-03-03 : This article is old, I am now using an improved Jira Personnal Kanban.
EDIT 2017-03-03 : This article is old, I am now using an improved Jira Personnal Kanban.
Poker Planning is a collaborative game… that developers often lose! Here are the original fair rules that will provide developers time for technical work.
Is “Business Value” the only thing that matters for sprint plannings? Here are 3 Scrum practices that will buy developers some time for technical work!.
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Mob programming requires time to get used to it. With practice, though, you’ll discover unexpected and compounding long-term benefits of mob programming.
How to improve a factual business case for a refactoring to make it even more compelling to business people.
With a bit of discipline, we can make a factual business case for a large-scale refactoring that business people won’t resist.
In 2005, professors Bizer and Petty showed something interesting about human behavior. People make more efforts to avoid what they don’t want, than to get wh...
My current job at work is technical coach. I’m available for teams that need help to adopt incremental coding practices.
We write tons of legacy code everyday. Experienced developers understand that legacy code is not something special. Legacy code is our daily bread and butter.
I eventually stumbled upon a way to keep track of technical debt in source code that is both straightforward and already built-in most tools : simple TODO co...
The CFO’s debt is visible in his balance sheet. The CTO’s technical debt is invisible. What about making it visible ?
I think I found a way to fix the dirty code problem once and for all …
Madoff would have been better off managing software projects than investing on Wall Street !
The sad truth :
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Getting participants in a TCR code kata exercise seems complicated! Yet, given what TCR is, these sessions can radiate genuine fun and direct applicability!
Evolutionary Design might be the most valuable yet impenetrable XP practice. Use TCR to practice baby-steps coding, the cornerstone of Evolutionary Design.
Doing code katas to learn real-life TDD can at first look like a scam to many developers. So here are three techniques to maintain a constructive mood.
Once exposed to bad TDD, teams are a challenge for any technical agile coach. Instead of trying to sell them TDD, XP, or whatever, fix their pains!
Randori-in-pairs code-katas maximize learning thanks to code and interaction. With git-handover and breakout rooms, it becomes a practical remote training.
You will not find an Agile Technical Coach Job Description. This job is more invented than found. Here is the story of how we came to practice it at Murex.
How can we exploit short time slots here and there to perform large scale refactoring?
My current job at work is technical coach. I’m available for teams that need help to adopt incremental coding practices.
In my previous posts, I explained how to use the 20 hours of Code Katas technique to learn new languages. If you did not read these yet, start by the beginni...
In my previous post, I described how I’ve been using 20 hours of Code Katas to learn new languages. If you did not read it yet, have a look at it first. Let’...
We should not panic when asked to work with a new language. We should be bold enough to answer to job openings requiring technologies we are not used to. In ...
If you’ve read my previous posts about Team Randori Coding Dojos, you should know why and how to run a successful one.
In my last 2 blog posts, I’ve detailed why and how to start a team Randori Coding Dojo. That’s the easy part. As soon as you start your first dojo, you’ll fa...
In my previous post, I explained why you should start a team coding dojo Randori as soon as you can. Here is a step by step guide to set one up today.
Coding Dojos are easy to start and have a high return on investment. They will improve everyone’s technical skills. That’s only the start though. Practiced a...
Here is the story : you have a Rails 5 app that uses RSpec, but your RSpec suite is getting slower and slower to run. You’ve already considered some solution...
It might be possible to discover performance regressions before running your long and large scale benchmarks !
I already wrote a lot about test proxies (here, here and here).
When testing html views, either from RSpec or from Cucumber, XPath can be really helpful to quickly find expected elements.
I already wrote about my RSpec Matchers Combinators, I decided to extract them into the spec_combos gem.
Rspec matchers are a lot like predicates. Predicates that can talk … The good thing about predicates, as anybody who has done a bit of functional programming...
Version 1.3.0 of Cucumber droped spork support, so I had to find something else. I am using Guard setup with rspec and Cucumber for my Rails app.
There are already a lot of articles explaining how to setup an in memory SQLite database to speed up Rails specs or unit tests. Most of them explain how to c...
From Martin Fowler’s point of view, I must have been a mockist. With using mocks extensively comes quite a few advantages :
I use rspec a lot. I thinks it’s a great testing framework.
Update 05/23/2014: I created a gem for this, read an introduction here
I decided to stop using stub_model and mock_model. I do not use them enough to get fluent with them. Every time I have to deal with them, something breaks in...
I discovered that before blocks in RSpec’s examples are executed in the order they are declared. There is no great deal about it, but it can be useful when u...
Here is an example showing the issue :
When testing legacy code, combine the test data builder pattern with the mikado method. This snowballs into more and more objects that are easy to set up in ...
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Custom assertions are a handy compromise alternative to mocks when we don’t have the time to refactor to a functional style.
We are sometimes tempted to use mocks to shortcut test data initialization. Unfortunately, excessive mocking makes tests difficult to maintain. As Uncle Bob ...
In my previous post I explained how Immutable Value Objects help us to avoid mocks. In this post, I’ll illustrate this in practice with real code.
Excessive use of mocks makes tests very painful to maintain. If we stick painful mocks for too long, we’ll end up abandoning unit testing. Eventually, the sy...
💡 Mock hell : when excessive use of test mocks makes refactoring extremely slow or difficult.
As I already wrote about, mocks can be trecherous … I gave a talk about how to avoid them last tuesday at Paris.rb meetup. Here are the slides.
I already wrote a lot about test proxies (here, here and here).
From Martin Fowler’s point of view, I must have been a mockist. With using mocks extensively comes quite a few advantages :
I decided to stop using stub_model and mock_model. I do not use them enough to get fluent with them. Every time I have to deal with them, something breaks in...
I am currently working to replace a legacy command line front end on a COM out of process server.
Becoming business partners grants us freedom to refactor. Careful though, we must not over-abuse this trust if we want to maintain this partnership.
When we, developers, earn enough trust from business people, we become their business partners. As such we enjoy a lot more freedom to refactor.
How to improve a factual business case for a refactoring to make it even more compelling to business people.
With a bit of discipline, we can make a factual business case for a large-scale refactoring that business people won’t resist.
In 2005, professors Bizer and Petty showed something interesting about human behavior. People make more efforts to avoid what they don’t want, than to get wh...
Have you ever tried to talk about refactoring with business people ? Most of the time, the matter is pushed aside or received with rolling eyes … A few weeks...
It can sometimes be a real challenge to integrate, let alone deploy, a refactoring step by step ! Here are some patterns that make this easier.
Refactoring step by step generate a ton of small tasks here and there. Here are some organization best practices to keep track of them.
How can we exploit short time slots here and there to perform large scale refactoring?
Here’s everything you need to find the time for constant merciless refactoring … without asking for the permission!
In the end, incremental software development techniques are almost always the safest way to refactor. Here is why.
There are some simple attitude principles that badass developers follow to gain the business people trust.
Here is a one sentence summary of my previous post.
My last post was about the challenge for dev teams to get sponsorship for large scale refactorings. I listed two main reasons :
Whenever I present or suggest a good practice to dev teams, I often get the same remark. Here is how it goes :
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
Applying willpower to have a “wider than team” impact on an organization is a recipe for burnout! Check the “Local Actions, Global Impact” strategy instead.
Getting participants in a TCR code kata exercise seems complicated! Yet, given what TCR is, these sessions can radiate genuine fun and direct applicability!
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
Trying to coach laggards will exhaust you. Here are 5 tips to deal with them, sustain you, and make you spend your energy where it matters.
Once exposed to bad TDD, teams are a challenge for any technical agile coach. Instead of trying to sell them TDD, XP, or whatever, fix their pains!
Too often, teams revert to their old habits when the technical agile coach leaves. Training part-time coaches is a powerful way to make the change stick.
Remote work is an extra challenge for technical agile coaching. Here are 5 opportunistic remote pair-programming tips and tricks to show a better way of work...
Emily Bache wrote an accessible guide for technical agile coaches. Here is my review, plus my bonus section: How to sell your technical coaching services int...
There are many ways to manage team resistance. Here are some of the technical agile coach’s tricks that influence: testimonies, experiments, and more!
DDD jargon is a domain expert repellent! Let’s not talk about DDD, but instead, start engaging domain experts in doing DDD workshops!
The key to successful DDD and Event Storming injection is to wait for the perfect challenge. Otherwise, we’ll have no choice but to hack the organization!
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
Getting all the team to code review can be a real challenge. Here is the story of how a simple random review assigning tool nudged everyone to code review.
Although incredibly effective, DDD is overlooked by developers because of its abstractness. Event Storming is a great way to introduce DDD without naming it!
Poker Planning is a collaborative game… that developers often lose! Here are the original fair rules that will provide developers time for technical work.
Where should we start? It’s easy to fall into priority paralysis as you envision an ambitious product. Let’s use DDD Event Storming to scope your next step!
Planning poker and story points often turn into a power struggle where everyone loses. Here are 2 winning strategies for how to play planning poker as dev te...
Becoming business partners grants us freedom to refactor. Careful though, we must not over-abuse this trust if we want to maintain this partnership.
When we, developers, earn enough trust from business people, we become their business partners. As such we enjoy a lot more freedom to refactor.
How to improve a factual business case for a refactoring to make it even more compelling to business people.
With a bit of discipline, we can make a factual business case for a large-scale refactoring that business people won’t resist.
Here’s everything you need to find the time for constant merciless refactoring … without asking for the permission!
Whenever I present or suggest a good practice to dev teams, I often get the same remark. Here is how it goes :
Current software project tracking tools suck !
There must be a way to know the real money value of Lean Startup ‘knowledge’.
The sad truth :
Making commitments to deliver software is always difficult. Whatever the margin you might take, it invariably seems wrong afterward …
Open-space technology un-conference is a powerful self-organized workshop. Here is a guide to making it remote-first, and even more inclusive!
Open-space technology un-conference is a powerful self-organized workshop. Here is the story of how we made it remote-first to grow a community of practice.
Refactoring step by step generate a ton of small tasks here and there. Here are some organization best practices to keep track of them.
Have you read valve’s Handbook for new employees ?
Rome wasn’t built in a day, neither will be your Lego Office … This week is Devoxx in Paris, for the occasion, we decided to stream a Lego office experiment ...
Maybe your company too has a development program you can use to track and organize your training path. That’s already great ! It is often not perfect though....
For an organization, there’s something schizophrenic about valuing team work, wanting agility but sticking to individual objectives and assessments.
Let me tell you a typical hiring story. A bit more than 10 years ago, I was contractor at a bank on a C++ front office application. The system had initially ...
We don’t have an official scrum master in our team anymore. We now have 7 ! A different team member assumes the full scrum master role at every sprint.
Most companies don’t have unlimited vacations. Most likely, if you are an employee, your days off need to be validated by your boss. If you are like me, this...
Nowadays, start-ups and tech companies seem to be competing for the most beautiful offices in order to attract top talents.
Remaining a competent developer is a career long effort, if you stop programming, you’ll loose it ! As time goes, we are regularly offered pushed into manage...
For many reasons. But mostly because they are key to efficiently growing a software organization.
Evolutionary Design might be the most valuable yet impenetrable XP practice. Use TCR to practice baby-steps coding, the cornerstone of Evolutionary Design.
In The Serverless Mindset, I blogged about Event Storming and Example Mapping for agile architecture. How do you coach teams to adopt these workshops?
Once exposed to bad TDD, teams are a challenge for any technical agile coach. Instead of trying to sell them TDD, XP, or whatever, fix their pains!
Keeping our skills up to date is challenging. Remote work is a perfect excuse to run group learning sessions and to demo growth mindset to our coachees.
There are many ways to manage team resistance. Here are some of the technical agile coach’s tricks that influence: testimonies, experiments, and more!
Randori-in-pairs code-katas maximize learning thanks to code and interaction. With git-handover and breakout rooms, it becomes a practical remote training.
In my previous posts, I explained how to use the 20 hours of Code Katas technique to learn new languages. If you did not read these yet, start by the beginni...
In my previous post, I described how I’ve been using 20 hours of Code Katas to learn new languages. If you did not read it yet, have a look at it first. Let’...
We should not panic when asked to work with a new language. We should be bold enough to answer to job openings requiring technologies we are not used to. In ...
We write tons of legacy code everyday. Experienced developers understand that legacy code is not something special. Legacy code is our daily bread and butter.
In my last post, I explained why incremental refactoring techniques will make you both more productive and relaxed.
I started to learn Test Driven Development a long time ago. Since then, even though I’m still not a master, it’s been my most useful programming skill, by fa...
I’m currently wrapping up an alpha of a unit testing ruby gem that allows to assert the complexity of a piece of code. It’s the result of an experiment to le...
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
A dysfunctional mob makes coaching impossible! So here is a workshop for team members to try and find the mob programming rules that work for them.
Doing code katas to learn real-life TDD can at first look like a scam to many developers. So here are three techniques to maintain a constructive mood.
Once exposed to bad TDD, teams are a challenge for any technical agile coach. Instead of trying to sell them TDD, XP, or whatever, fix their pains!
Emily Bache wrote an accessible guide for technical agile coaches. Here is my review, plus my bonus section: How to sell your technical coaching services int...
Mob programming requires time to get used to it. With practice, though, you’ll discover unexpected and compounding long-term benefits of mob programming.
COVID-19 has thrown us into remote work. Here are 3 world-class open-source tools for remote pair programming that you can set up today.
Writing team coding standards and conventions is hard but critical. Brainstorming doesn’t work, so let’s use asynchronous decision making or mob programming!
You will not find an Agile Technical Coach Job Description. This job is more invented than found. Here is the story of how we came to practice it at Murex.
Maintaining a TO DO list or a Mind Map for programming task has many benefits. It improves collaboration, our decisions and our vision of what’s left to do.
By focusing on small increments and collaboration, XP practices like CI, Pair or Mob programming, TDD, continuous refactoring and TCR make remote work easier.
Full-time pair programming burns introverts out. Regular mob programming sessions yield the same benefits but are more sustainable.
Getting all the team to code review can be a real challenge. Here is the story of how a simple random review assigning tool nudged everyone to code review.
When testing legacy code, combine the test data builder pattern with the mikado method. This snowballs into more and more objects that are easy to set up in ...
Maintaining a TO DO list or a Mind Map for programming task has many benefits. It improves collaboration, our decisions and our vision of what’s left to do.
Refactoring step by step generate a ton of small tasks here and there. Here are some organization best practices to keep track of them.
How can we exploit short time slots here and there to perform large scale refactoring?
In the previous posts, I presented how to use the Mikado Method to large organization changes. Drawn from the programming world, this technique keeps a low t...
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
Large scale agile transformations are often painful, stressful and … failed ! Mixing the Improvement Kata and the Mikado Method can make them more successful.
We write tons of legacy code everyday. Experienced developers understand that legacy code is not something special. Legacy code is our daily bread and butter.
Being agile is about adapting to change and continuously improving. I’ve seen (and been) in too many teams blindly following Scrum (Scrum Zombies) without fi...
The sad truth :
Last week at work, we decided that we needed an Anticorruption Layer between our code and another team’s. They have been using our internal data structures a...
This is the fourth and last post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the third post in a series about making large organizations more agile. I encourage you to start with the beginning.
How do you get your kids to participate with housekeeping ? I guess that’s the dream of all parents. As so, we’ve tried quite a lot of tactics throughout the...
Have you read valve’s Handbook for new employees ?
Maybe your company too has a development program you can use to track and organize your training path. That’s already great ! It is often not perfect though....
For an organization, there’s something schizophrenic about valuing team work, wanting agility but sticking to individual objectives and assessments.
Let me tell you a typical hiring story. A bit more than 10 years ago, I was contractor at a bank on a C++ front office application. The system had initially ...
We don’t have an official scrum master in our team anymore. We now have 7 ! A different team member assumes the full scrum master role at every sprint.
Most companies don’t have unlimited vacations. Most likely, if you are an employee, your days off need to be validated by your boss. If you are like me, this...
Remaining a competent developer is a career long effort, if you stop programming, you’ll loose it ! As time goes, we are regularly offered pushed into manage...
If you remove your job, you are promoted. (a classic lean quote)
In 2005, professors Bizer and Petty showed something interesting about human behavior. People make more efforts to avoid what they don’t want, than to get wh...
I guess we always find excuses to keep on with our bad habits, don’t we? Stephen King
The CFO’s debt is visible in his balance sheet. The CTO’s technical debt is invisible. What about making it visible ?
I think I found a way to fix the dirty code problem once and for all …
Madoff would have been better off managing software projects than investing on Wall Street !
At work, we are using as we all have Android phones, we are using the Scrum Poker Cards app to do our planning poker.
I just invented the word, I found it funny :
In 1991, John F. Woods wrote :
Part of the tech lead role is to be available for help. Setting up office hours and pair programming is vital to avoid the mental load of task switching.
Last week, my colleague Ahmad Atwi and I went to the London SPA Conference to give our Remote eXtreme Practice talk.
As a manager, you could benefit a lot from helping your developers with their side projects.
First of all, what is that ? Usually, Scrum zombies go in groups, and quite often, you’ll find a full team of them :
Have you read valve’s Handbook for new employees ?
Maybe your company too has a development program you can use to track and organize your training path. That’s already great ! It is often not perfect though....
We don’t have an official scrum master in our team anymore. We now have 7 ! A different team member assumes the full scrum master role at every sprint.
Most companies don’t have unlimited vacations. Most likely, if you are an employee, your days off need to be validated by your boss. If you are like me, this...
Remaining a competent developer is a career long effort, if you stop programming, you’ll loose it ! As time goes, we are regularly offered pushed into manage...
As I’ve encountered this situation in different disguise in different companies, I now assume it’s a widely applied antipattern.
Teams often disagree about what is a good test strategy! So here is an all-in workshop to capture practices, define testing terms and agree on improvements.
As software people, we live in a complex-system world. To leverage on its non-linear effects, we need to multiply weird experiments.
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
The improvement kata can solve problems that typical retrospectives fail to address. Although there is a halo of mystery around it, it’s actually not that di...
During the past few weeks, I blogged the story of our first improvement kata.
This is the fifth (and last) post of a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from par...
This is the fourth post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
This is the third post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
In my previous post, I described the productivity issue our team was facing. How retrospectives did not work, and how I started looking at the improvement ka...
If you are serious about continuous improvement, you should learn the improvement kata.
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
My current side project is an online tool to do remote planning pokers. I followed my previous tutorial to setup Rails, Docker and Heroku.
A few years ago, I used Heroku to deploy my side-project. It provides great service, but I remember that updates to the Heroku Stack was a nightmare … Versio...
I have recently been playing with Docker and Docker Compose while starting my new side project. I’ve fallen into a situation where my production container us...
As I just released auchandirect-scrAPI, and that it relies on scrapping, I needed a daily build.
For mes-courses.fr, I am using another heroku app as “integration” app, where I can do late verifications before deploying to my production app. If you don’t...
This can be quite time consuming if it is the first time you set up an ssl endpoint. Here is how I did it :
Don’t waste your time as I did !
Heroku is great, you can have a rails app running live in a few minutes ! There are still a few tricky points you’ve got to sort out a little differently. On...
Poker Planning is a collaborative game… that developers often lose! Here are the original fair rules that will provide developers time for technical work.
Is “Business Value” the only thing that matters for sprint plannings? Here are 3 Scrum practices that will buy developers some time for technical work!.
This infographic presents the perils of Scrum with component teams. It pushes organizations back in Waterfall Agile, late deliveries and non-sustainable work.
Flipping your Kanban board columns is a cheap way to reduce multitasking and stress. Eventually, it contributes to a more sustainable pace.
Being agile is about adapting to change and continuously improving. I’ve seen (and been) in too many teams blindly following Scrum (Scrum Zombies) without fi...
How come the “agile scaling” landscape seems so daunting and bloated ?
6 months ago, our team started to run systematic iteration retrospectives. Within these 6 months, our team became more agile than ever. Running efficient ret...
I really don’t know why Scrum Sprints are called sprints ! From my experience, the number one mistake made by team starting with Scrum is to work as quickly ...
I have worked in small agile teams, and it does indeed work a lot better than the classical waterfall & hierarchic environment. When speaking with other ...
In The Serverless Mindset, I blogged about Event Storming and Example Mapping for agile architecture. How do you coach teams to adopt these workshops?
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Getting these crucial chats with product experts is often a brain-teaser! Let’s show devs how to trigger short, practical, immediate Example-Mapping sessions.
DDD jargon is a domain expert repellent! Let’s not talk about DDD, but instead, start engaging domain experts in doing DDD workshops!
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
What should we do after a DDD Design-Level Event Storming? How do we capture shared knowledge? How do we make the workshop more effective? Find answers here!
Recording the full Event Storming board is a waste of time. Here are examples of quick, focused, and digestible views that capture the board’s knowledge.
After going through why Event Storming uses post-its, we’ll go over alternatives. We’ll then see how to use these techniques to improve Event Storming!
DDD Big Picture Event Storming is a prelude and catalyst to other workshops. Ex: Design Level Event Storming, Example Mapping, Story Mapping & Impact Map...
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
Teams often disagree about what is a good test strategy! So here is an all-in workshop to capture practices, define testing terms and agree on improvements.
Open-space technology un-conference is a powerful self-organized workshop. Here is a guide to making it remote-first, and even more inclusive!
Open-space technology un-conference is a powerful self-organized workshop. Here is the story of how we made it remote-first to grow a community of practice.
Recording the full Event Storming board is a waste of time. Here are examples of quick, focused, and digestible views that capture the board’s knowledge.
Event Storming builds ‘shared understanding’. This is often not enough to bring key action-oriented people in! Here are concrete techniques to convince them.
After going through why Event Storming uses post-its, we’ll go over alternatives. We’ll then see how to use these techniques to improve Event Storming!
Although incredibly effective, DDD is overlooked by developers because of its abstractness. Event Storming is a great way to introduce DDD without naming it!
During the past few weeks, I blogged the story of our first improvement kata.
If you are serious about continuous improvement, you should learn the improvement kata.
Do you remember how people who are not used to the phone tend to shout in it, for the message to get far ? Read on and I’ll explain how this silly habit will...
Being agile is about adapting to change and continuously improving. I’ve seen (and been) in too many teams blindly following Scrum (Scrum Zombies) without fi...
My colleague Ahmad from Beirut gave a talk at Agile Tour Beirut on Saturday about how we adopted XP to a distributed team at work. I gave him a hand and play...
I already wrote how we started to use Trello to do our remote retrospectives. A while ago, my team mate Bilal Tayara started to collect our activities into t...
As a distributed team working from Paris and Beirut, after pair programming, it was time for our retrospectives to get remote !
6 months ago, our team started to run systematic iteration retrospectives. Within these 6 months, our team became more agile than ever. Running efficient ret...
Mob programming requires time to get used to it. With practice, though, you’ll discover unexpected and compounding long-term benefits of mob programming.
This infographic presents how the lack of prioritization triggers a vicious circle of bloated organizations, late deliveries, and a non-sustainable pace
Software is mostly built according to experts opinions. These 7 data driven software engineering books show us another way to a productive and sustainable pa...
How to improve a factual business case for a refactoring to make it even more compelling to business people.
With a bit of discipline, we can make a factual business case for a large-scale refactoring that business people won’t resist.
Current software project tracking tools suck !
There must be a way to know the real money value of Lean Startup ‘knowledge’.
There is a french idiom that basicaly is
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
A few months ago, I started continuously deploying my latest side project to a Digital Ocean box. If you are interested, here is the full story of how I did ...
I decided to use my latest side project as an occasion to learn Docker. I first used Heroku as a platform for deployment (see previous post). It works fine b...
One or two weeks ago, I registered to the Paris Ruby Workshop Meetup and needed a Ruby env. I have been using Vagrant quite a lot to isolate my different dev...
My current side project is an online tool to do remote planning pokers. I followed my previous tutorial to setup Rails, Docker and Heroku.
A few years ago, I used Heroku to deploy my side-project. It provides great service, but I remember that updates to the Heroku Stack was a nightmare … Versio...
I have recently been playing with Docker and Docker Compose while starting my new side project. I’ve fallen into a situation where my production container us...
In the previous 7 articles of this series, I’ve tried my best get rid of mocks. I’m pretty sure that using these techniques will get you a long way out of mo...
Last week’s post was about how hexagonal architecture results in fast, mock-free tests around your core domain. Unfortunately, that does not remove all mocks...
As I’ve written in my last few posts, we can get a long way to avoid mocks with small scale coding best practices. Unfortunately, when systems reach a certai...
Custom assertions are a handy compromise alternative to mocks when we don’t have the time to refactor to a functional style.
We are sometimes tempted to use mocks to shortcut test data initialization. Unfortunately, excessive mocking makes tests difficult to maintain. As Uncle Bob ...
In my previous post I explained how Immutable Value Objects help us to avoid mocks. In this post, I’ll illustrate this in practice with real code.
Excessive use of mocks makes tests very painful to maintain. If we stick painful mocks for too long, we’ll end up abandoning unit testing. Eventually, the sy...
💡 Mock hell : when excessive use of test mocks makes refactoring extremely slow or difficult.
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
DDD jargon is a domain expert repellent! Let’s not talk about DDD, but instead, start engaging domain experts in doing DDD workshops!
Event Storming builds collective intelligence. We can keep it alive if we continue to work closely together and regularly repeat Event Storming.
This infographics presents how TCR increases the share of refactoring in TDD. But Refactoring is already most of our daily work! We’d better learn it serious...
Planning poker and story points often turn into a power struggle where everyone loses. Here are 2 winning strategies for how to play planning poker as dev te...
This infographic presents the perils of Scrum with component teams. It pushes organizations back in Waterfall Agile, late deliveries and non-sustainable work.
This infographic presents how the lack of prioritization triggers a vicious circle of bloated organizations, late deliveries, and a non-sustainable pace
Skip studying queuing theory! Play this 1h15 serious game for learning why building-in quality at the source leads to a productive and sustainable pace.
I just compiled my Gherkin and Cucumber goodies into a gem. It’s called cucumber_tricks and the source code can be found on github. It’s also tested on travi...
Every brands should provide an API for developpers … unfortunately, it far from the truth right now. A few years ago, when I started my mes-courses.fr side p...
Since I decided to stop Mes Courses to focus on AgileAvatars, I have been extracting open source gems from the code base. The last one is Storexplore : a dec...
I already wrote about my RSpec Matchers Combinators, I decided to extract them into the spec_combos gem.
I just tried to integrate the blogit rails engine directly inside www.mes-courses.fr. Up till now, I was using a separated radiant app to deal with the blog ...
I am just finishing migrating www.mes-courses.fr from rails 2 to rails 3, and I can assure that I learnt these lessons the hard way …
Heroku is great, you can have a rails app running live in a few minutes ! There are still a few tricky points you’ve got to sort out a little differently. On...
How to fix bad agile by starting neutral discussions about baby-steps programming. Baby steps are a sustainable and productive approach to writing code.
The key to successful DDD and Event Storming injection is to wait for the perfect challenge. Otherwise, we’ll have no choice but to hack the organization!
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
In 2005, professors Bizer and Petty showed something interesting about human behavior. People make more efforts to avoid what they don’t want, than to get wh...
Have you ever tried to talk about refactoring with business people ? Most of the time, the matter is pushed aside or received with rolling eyes … A few weeks...
In my last 2 blog posts, I’ve detailed why and how to start a team Randori Coding Dojo. That’s the easy part. As soon as you start your first dojo, you’ll fa...
This is the forth and last post of a series about the #ZeroBugs policy. In the previous posts, I detailed how we applied it in our team, what were the conseq...
In the previous posts, I presented how to use the Mikado Method to large organization changes. Drawn from the programming world, this technique keeps a low t...
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
Large scale agile transformations are often painful, stressful and … failed ! Mixing the Improvement Kata and the Mikado Method can make them more successful.
This is the fourth and last post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the third post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the second post in a series about making large organizations more agile. I encourage you to start with the beginning.
In Aesop’s famous tale, a farmer kills his goose that lays a golden egg every day to get all the eggs at once. He finds no eggs, lost his goose, and remains ...
Too often, teams revert to their old habits when the technical agile coach leaves. Training part-time coaches is a powerful way to make the change stick.
You will not find an Agile Technical Coach Job Description. This job is more invented than found. Here is the story of how we came to practice it at Murex.
Planning poker and story points often turn into a power struggle where everyone loses. Here are 2 winning strategies for how to play planning poker as dev te...
Understanding is key to building quality software. Here are 3 levels of understanding we should go through before we start coding.
There are some simple attitude principles that badass developers follow to gain the business people trust.
Here is a one sentence summary of my previous post.
My last post was about the challenge for dev teams to get sponsorship for large scale refactorings. I listed two main reasons :
You can now run the Slow Code Retreat by following the facilitation guide. By doing so, you’ll also learn 6 Liberating Structures for your future workshops.
Applying willpower to have a “wider than team” impact on an organization is a recipe for burnout! Check the “Local Actions, Global Impact” strategy instead.
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Let’s give up trying to measure technical agile coaching! Instead, use these 3 liberating questions to self-assess how well you are doing at any moment.
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
Trying to coach laggards will exhaust you. Here are 5 tips to deal with them, sustain you, and make you spend your energy where it matters.
Full-time pair programming burns introverts out. Regular mob programming sessions yield the same benefits but are more sustainable.
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
A few weeks ago, I posted my latest article Is There Any Room for the Not-Passionate Developer ? on Hackernews and Reddit Programming. The post stayed on the...
5 years ago, I started blogging. I started really casually, my posts were personal reminders and notes rather than real well thought of articles. Nevertheles...
Last time I tried to insert a code snippet in my Octopress blog, I was hurt by the following error :
At the moment, I am exploring the world of SEO, and so I thought I could start with my blog. I found SEO for Octopress websites that I followed to add keywor...
While I was looking for photos for an article on blog for mes-courses.fr, I found this site : http://www.photo-libre.fr. There are a lot of pictures, both €-...
Here is the story : you have a Rails 5 app that uses RSpec, but your RSpec suite is getting slower and slower to run. You’ve already considered some solution...
I just compiled my Gherkin and Cucumber goodies into a gem. It’s called cucumber_tricks and the source code can be found on github. It’s also tested on travi...
Version 1.3.0 of Cucumber droped spork support, so I had to find something else. I am using Guard setup with rspec and Cucumber for my Rails app.
There are already a lot of articles explaining how to setup an in memory SQLite database to speed up Rails specs or unit tests. Most of them explain how to c...
Update 06/12/2014: I created a gem for this and other things
After reading The cucumber book I decided to add clever cucumber transforms but steps started to fail all over the place … Even completly unrelated scenarios...
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Getting these crucial chats with product experts is often a brain-teaser! Let’s show devs how to trigger short, practical, immediate Example-Mapping sessions.
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
Understanding is key to building quality software. Here are 3 levels of understanding we should go through before we start coding.
Update 06/12/2014: I created a gem for this and other things
After reading The cucumber book I decided to add clever cucumber transforms but steps started to fail all over the place … Even completly unrelated scenarios...
It might be possible to discover performance regressions before running your long and large scale benchmarks !
After the top 5 talks I attended at JavaOne here are more !
Algorithms are hard, and making them fast is even harder … But there are shortcuts that work quite often !
If you’re having difficulties writing good performance related stories for your project, that’s no surprise ! We’ve been through the same troubles and we fou...
At work, we are building a risk aggregation system. As it’s dealing with a large bunch of numbers, it’s a huge heap of optimizations. Once that its most stan...
Now that is a widespread title for blog articles ! Just search Google, and you’ll find “Performance is a feature” in Coding Horror and others.
A rat race is an endless, self-defeating, or pointless pursuit. It conjures up the image of the futile efforts of a lab rat trying to escape while running...
A few months ago, after receiving good feedback from my regular readers, I posted my latest article Is There Any Room for the Not-Passionate Developer ? on H...
5 years ago, I started blogging. I started really casually, my posts were personal reminders and notes rather than real well thought of articles. Nevertheles...
Since I started to program professionally 15 years ago, a lot of things have changes. A lot of technologies appeared and became mainstream while others fell ...
Maybe your company too has a development program you can use to track and organize your training path. That’s already great ! It is often not perfect though....
There are many opportunities for Machine Learning in Software Engineering: testing, product management, processes… It might even set a sustainable pace!
A Machine Learning in Software Engineering intern identified critical tests to run. He also confirmed the open-closed principle, modular code, and small-comm...
It’s the opinions of experts that drive Software Engineering! Models, like Big O, would lead to more fact-based discussions and better decisions.
We discovered that DDD concepts like Event Storming, Bounded Contexts, Ubiquitous Language, Entities and Values are useful in machine learning projects.
It might be possible to discover performance regressions before running your long and large scale benchmarks !
I’m currently wrapping up an alpha of a unit testing ruby gem that allows to assert the complexity of a piece of code. It’s the result of an experiment to le...
After going through why Event Storming uses post-its, we’ll go over alternatives. We’ll then see how to use these techniques to improve Event Storming!
It can sometimes be a real challenge to integrate, let alone deploy, a refactoring step by step ! Here are some patterns that make this easier.
Refactoring step by step generate a ton of small tasks here and there. Here are some organization best practices to keep track of them.
How can we exploit short time slots here and there to perform large scale refactoring?
Here’s everything you need to find the time for constant merciless refactoring … without asking for the permission!
In the end, incremental software development techniques are almost always the safest way to refactor. Here is why.
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
Getting participants in a TCR code kata exercise seems complicated! Yet, given what TCR is, these sessions can radiate genuine fun and direct applicability!
Evolutionary Design might be the most valuable yet impenetrable XP practice. Use TCR to practice baby-steps coding, the cornerstone of Evolutionary Design.
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
This infographics presents how TCR increases the share of refactoring in TDD. But Refactoring is already most of our daily work! We’d better learn it serious...
By focusing on small increments and collaboration, XP practices like CI, Pair or Mob programming, TDD, continuous refactoring and TCR make remote work easier.
In Growing object-oriented software guided by tests they use a java library called Window Licker to pilot a gui running in test thread. Next time I started a...
I am currently working to replace a legacy command line front end on a COM out of process server.
Suppose you have some duplicated code in the Foo & Bar classes. You managed to extracted this code in a helper class. Fine, the helper class can now be t...
When working with legacy code, writing tests requires to exploit seams to -hack- inject custom behaviour. In Working Effectively with Legacy Code, Michael Fe...
Functions and methods have a better status in the .Net world than they had in the Java world … They are now first class. This means that it is possible to as...
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
This pandemic year has transformed the way we do technical agile coaching. It’s now more asynchronous, self-service, gamified, open, and inclusive!
Skip studying queuing theory! Play this 1h15 serious game for learning why building-in quality at the source leads to a productive and sustainable pace.
Turning Kanban boards vertically fits western cultures better. Improving UX of our process tools would eventually lead to a more effective and sustainable pa...
At MegaCorp where I am currently working, there is a small team that is dedicated to find solutions to software bugs that regularly happen in production. The...
Until now, I had been using Feedburner to manage the email subscriptions to my blog on mes-courses.fr. It had been working fine I thought it had been working...
As I updated my bundle, some capybara have_selector(…) matches started to fail. Here was the message :
According to stack overflow, simply use something like the following from the chrome console : $x("//img")
I just spent a few hours debugging my rails app on Heroku to understand why the hell I did not systematically receive the monitoring emails that my app was s...
While I was trying to enforce no ssl on a page of www.mes-courses.fr with Rack::SslEnforcer, I lost a few hours trying to fix a TOO_MANY_REDIRECTS error … Th...
As I said last week, I released the v0.1 of Philou’s Planning Poker, my latest side project. Although I have a day job, a wife, a family and a mortgage to pa...
As a manager, you could benefit a lot from helping your developers with their side projects.
Rest In Peace mes-courses.fr. Here is what it looked like :
First, I recommend this book to any side project infected person : it’s a great motivation boost !
Emily Bache wrote an accessible guide for technical agile coaches. Here is my review, plus my bonus section: How to sell your technical coaching services int...
Since I started to program professionally 15 years ago, a lot of things have changes. A lot of technologies appeared and became mainstream while others fell ...
A few weeks ago, as I was looking the internet for Lean principles to improve our way of working, I fell upon this book Petit guide de management lean a l’us...
A few weeks ago, I read The principles of product development flow from Donald G. Reinertsen.
First, I recommend this book to any side project infected person : it’s a great motivation boost !
5 years ago, I started blogging. I started really casually, my posts were personal reminders and notes rather than real well thought of articles. Nevertheles...
Last time I tried to insert a code snippet in my Octopress blog, I was hurt by the following error :
I don’t know if you noticed, but Octopress 2 preview is slow as hell on Virtual Box. I wanted to try using Docker instead. So a few weeks ago, I started to u...
I recently got hands on an abandonned laptop that was better than the one I was currently using for my personnal hackings, so I decided to switch to this one...
At the moment, I am exploring the world of SEO, and so I thought I could start with my blog. I found SEO for Octopress websites that I followed to add keywor...
Rome wasn’t built in a day, neither will be your Lego Office … This week is Devoxx in Paris, for the occasion, we decided to stream a Lego office experiment ...
Nowadays, start-ups and tech companies seem to be competing for the most beautiful offices in order to attract top talents.
Manual testing is important. Here is how we got to love exploratory testing.
For many reasons. But mostly because they are key to efficiently growing a software organization.
Software is mostly built according to experts opinions. These 7 data driven software engineering books show us another way to a productive and sustainable pa...
Turning Kanban boards vertically fits western cultures better. Improving UX of our process tools would eventually lead to a more effective and sustainable pa...
Flipping your Kanban board columns is a cheap way to reduce multitasking and stress. Eventually, it contributes to a more sustainable pace.
A few years ago, I wrote about how I started to use Jira as my personal Kanban board at work. A lot of things have changed since then, which brought me to up...
EDIT 2017-03-03 : This article is old, I am now using an improved Jira Personnal Kanban.
This is the fifth (and last) post of a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from par...
This is the fourth post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
This is the third post on a series of 5 about the improvement kata. If you haven’t read the beginning of the story, I recommend you start from part 1.
In my previous post, I described the productivity issue our team was facing. How retrospectives did not work, and how I started looking at the improvement ka...
If you are serious about continuous improvement, you should learn the improvement kata.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
This is the forth and last post of a series about the #ZeroBugs policy. In the previous posts, I detailed how we applied it in our team, what were the conseq...
This is the third post of a series about the #ZeroBugs policy. In the first 2 posts, I detailed how we applied it in our team, and what were the consequences.
This is the second post of a series about the #ZeroBugs policy. In the previous post, I detailed what a #ZeroBugs policy is and how we tried to apply it. I e...
Some teams spend 95% of their development time fixing bugs … An entrepreneur I worked with reported an even scarier story. He went bankrupt because bugs were...
Last week, I’ve been working at adding a distributed countdown to my Online Planning Poker App. As our team works from Paris and Beirut, I wanted to unit tes...
In my spare time, I’m writing a Planning Poker App. As a reminder, planning poker is a group estimation technique designed to eliminate influence bias. Parti...
Lately, I have been introducing javascript and coffeescript in www.mes-courses.fr (with structural architecture issues as a side effect, but that’s another s...
As I started to write more javascript code in my rails app, it became obvious that I should be testing it ! I wanted to use jasmine and coffeescript. I searc...
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
It might be possible to discover performance regressions before running your long and large scale benchmarks !
After the top 5 talks I attended at JavaOne here are more !
As I just released auchandirect-scrAPI, and that it relies on scrapping, I needed a daily build.
Part of the tech lead role is to be available for help. Setting up office hours and pair programming is vital to avoid the mental load of task switching.
Getting all the team to code review can be a real challenge. Here is the story of how a simple random review assigning tool nudged everyone to code review.
As software developers, we very always often get to work in code bases that are not perfect. In this situation we have 3 choices : leave, grumble, or make so...
In my team at Murex, we’ve been doing Pair programming 75% of our time for the past 9 months now.
I don’t know if you noticed, but Octopress 2 preview is slow as hell on Virtual Box. I wanted to try using Docker instead. So a few weeks ago, I started to u...
Lately, I went into an upgrade cycle : Ubuntu, which forced me to upgrade Docker, and then Vagrant … you know the story. Unfortunately, my vagrant config did...
I recently got hands on an abandonned laptop that was better than the one I was currently using for my personnal hackings, so I decided to switch to this one...
After the top 5 talks I attended at JavaOne here are more !
This is my second post relating the talks I attended at JavaOne 2016. Here is the beginning of the story. Here we go.
With a few other colleagues, I had the chance to be sent to San Francisco last week to attend the JavaOne 2016 conferences by my company.
After finishing my concurrency-kata, one of the things that most surprised me, is how simple it was to prototype the Actor Model in Java using Green Threads.
This is the forth and last post of a series about the #ZeroBugs policy. In the previous posts, I detailed how we applied it in our team, what were the conseq...
This is the third post of a series about the #ZeroBugs policy. In the first 2 posts, I detailed how we applied it in our team, and what were the consequences.
This is the second post of a series about the #ZeroBugs policy. In the previous post, I detailed what a #ZeroBugs policy is and how we tried to apply it. I e...
Some teams spend 95% of their development time fixing bugs … An entrepreneur I worked with reported an even scarier story. He went bankrupt because bugs were...
This is the fourth and last post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the third post in a series about making large organizations more agile. I encourage you to start with the beginning.
This is the second post in a series about making large organizations more agile. I encourage you to start with the beginning.
In Aesop’s famous tale, a farmer kills his goose that lays a golden egg every day to get all the eggs at once. He finds no eggs, lost his goose, and remains ...
If you’ve read my previous posts about Team Randori Coding Dojos, you should know why and how to run a successful one.
In my last 2 blog posts, I’ve detailed why and how to start a team Randori Coding Dojo. That’s the easy part. As soon as you start your first dojo, you’ll fa...
In my previous post, I explained why you should start a team coding dojo Randori as soon as you can. Here is a step by step guide to set one up today.
Coding Dojos are easy to start and have a high return on investment. They will improve everyone’s technical skills. That’s only the start though. Practiced a...
What should we do after a DDD Design-Level Event Storming? How do we capture shared knowledge? How do we make the workshop more effective? Find answers here!
The most valuable activities in a DDD Design-Level Event Storming are UX and Aggregates explorations. Here is a step by step agenda that will lead us there.
Running a DDD Design-Level Event Storming is not rocket science! It’s still crucial to start the right way: with domain events and the Picture that explains ...
Design Level Event Storming is a collaborative design workshop. Use it to build and share the design of critical parts of systems using Event Sourcing and DDD.
While I was trying to enforce no ssl on a page of www.mes-courses.fr with Rack::SslEnforcer, I lost a few hours trying to fix a TOO_MANY_REDIRECTS error … Th...
This can be quite time consuming if it is the first time you set up an ssl endpoint. Here is how I did it :
I am using rails 2.3.8, devise 1.0.11 and ssl_requirements 0.1.0. I am having strange behaviour when mixing devise with ssl_requirements. When a form posts t...
My current side project is an online tool to do remote planning pokers. I followed my previous tutorial to setup Rails, Docker and Heroku.
For mes-courses.fr, I am using another heroku app as “integration” app, where I can do late verifications before deploying to my production app. If you don’t...
I am using rails to build www.mes-courses.fr. I use ubuntu for my development os, and heroku for deployment. As heroku enforces the usage of Postgre, I chose...
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
Any software project (job, startup or side project) will require some time before one can get real feedback from real users.
As agile and lean methodologies are gaining some place inside the workplace, especially in large corporations, I heard and saw quite a few teams struggling w...
Skip studying queuing theory! Play this 1h15 serious game for learning why building-in quality at the source leads to a productive and sustainable pace.
Since I decided to stop Mes Courses to focus on AgileAvatars, I have been extracting open source gems from the code base. The last one is Storexplore : a dec...
I already wrote about my RSpec Matchers Combinators, I decided to extract them into the spec_combos gem.
As software people, we live in a complex-system world. To leverage on its non-linear effects, we need to multiply weird experiments.
With time, I discovered a way of explaining the subtleties of my developer job to my uninformed relatives and friends.
As said Tom Cargill
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
I decided to use my latest side project as an occasion to learn Docker. I first used Heroku as a platform for deployment (see previous post). It works fine b...
As I just released auchandirect-scrAPI, and that it relies on scrapping, I needed a daily build.
Let me tell you a typical hiring story. A bit more than 10 years ago, I was contractor at a bank on a C++ front office application. The system had initially ...
For many reasons. But mostly because they are key to efficiently growing a software organization.
In search of an experienced software engineer
We should not panic when asked to work with a new language. We should be bold enough to answer to job openings requiring technologies we are not used to. In ...
This is the forth and last post of a series about the #ZeroBugs policy. In the previous posts, I detailed how we applied it in our team, what were the conseq...
This is the third post of a series about the #ZeroBugs policy. In the first 2 posts, I detailed how we applied it in our team, and what were the consequences.
In the previous posts, I presented how to use the Mikado Method to large organization changes. Drawn from the programming world, this technique keeps a low t...
In the previous post, I presented both large scale code and organization changes. I highlighted how they face similar difficulties of huge Work In Progress. ...
Large scale agile transformations are often painful, stressful and … failed ! Mixing the Improvement Kata and the Mikado Method can make them more successful.
In my previous posts, I explained how to use the 20 hours of Code Katas technique to learn new languages. If you did not read these yet, start by the beginni...
In my previous post, I described how I’ve been using 20 hours of Code Katas to learn new languages. If you did not read it yet, have a look at it first. Let’...
We should not panic when asked to work with a new language. We should be bold enough to answer to job openings requiring technologies we are not used to. In ...
There are many opportunities for Machine Learning in Software Engineering: testing, product management, processes… It might even set a sustainable pace!
A Machine Learning in Software Engineering intern identified critical tests to run. He also confirmed the open-closed principle, modular code, and small-comm...
It’s the opinions of experts that drive Software Engineering! Models, like Big O, would lead to more fact-based discussions and better decisions.
Even more Event Storming tips! 3 will help you to avoid the mistakes we did. The last 2 are the recipe to learn more tips by yourself!
More Event Storming tips! 4 tips to delight attendees with fantastic facilitation. 3 tips about animating an Event Storming when there is existing code.
You’ve just invited 10 people to join your 8h Event Storming. Here are 9 Event Storming tips to maximize knowledge sharing and the use of everyone’s time.
As I just released auchandirect-scrAPI, and that it relies on scrapping, I needed a daily build.
Heroku is great, you can have a rails app running live in a few minutes ! There are still a few tricky points you’ve got to sort out a little differently. On...
I am just finishing migrating www.mes-courses.fr from rails 2 to rails 3, and I can assure that I learnt these lessons the hard way …
There is a huge difference between reading about agile software developpment, and being an agile developper or team. There are a lot of practical best practi...
I am using rails 2.3.8, devise 1.0.11 and ssl_requirements 0.1.0. I am having strange behaviour when mixing devise with ssl_requirements. When a form posts t...
When trying to use devise 1.0.11 with rails 2.3.8 and bundler 1.0.10, I got the error could not find generator ... when running bundle exec script/generate d...
When trying to use devise 1.0.11 with rails 2.3.8 and bundler 1.0.10, I got the error could not find generator ... when running bundle exec script/generate d...
For many reasons. But mostly because they are key to efficiently growing a software organization.
I have worked in small agile teams, and it does indeed work a lot better than the classical waterfall & hierarchic environment. When speaking with other ...
While migrating to ruby 1.9, I started using rbenv. I was wondering how it would handle my stock ubuntu ruby 1.8. It works out of the box with the rbenv “sys...
A few months ago, I started continuously deploying my latest side project to a Digital Ocean box. If you are interested, here is the full story of how I did ...
I just spent a few hours debugging my rails app on Heroku to understand why the hell I did not systematically receive the monitoring emails that my app was s...
When testing html views, either from RSpec or from Cucumber, XPath can be really helpful to quickly find expected elements.
According to stack overflow, simply use something like the following from the chrome console : $x("//img")
Surely this post is nothing new for experienced ruby developpers, but I found it so handy, that I thought it deserved a post of its own though. The problem i...
Working with regular expressions is always a try and fail and retry … experience. It really helps to have an interactive tool with which to tune up your expr...
Last week, I’ve been working at adding a distributed countdown to my Online Planning Poker App. As our team works from Paris and Beirut, I wanted to unit tes...
As I started to write more javascript code in my rails app, it became obvious that I should be testing it ! I wanted to use jasmine and coffeescript. I searc...
First, I recommend this book to any side project infected person : it’s a great motivation boost !
As agile and lean methodologies are gaining some place inside the workplace, especially in large corporations, I heard and saw quite a few teams struggling w...
Every brands should provide an API for developpers … unfortunately, it far from the truth right now. A few years ago, when I started my mes-courses.fr side p...
Since I decided to stop Mes Courses to focus on AgileAvatars, I have been extracting open source gems from the code base. The last one is Storexplore : a dec...
In 1991, John F. Woods wrote :
A few months ago, I started Philou’s Planning Poker, an open source side project to run planning poker estimate sessions remotely. The main technology is Rai...
As I just released auchandirect-scrAPI, and that it relies on scrapping, I needed a daily build.
Even more Event Storming tips! 3 will help you to avoid the mistakes we did. The last 2 are the recipe to learn more tips by yourself!
As I’ve encountered this situation in different disguise in different companies, I now assume it’s a widely applied antipattern.
A few years ago, I wrote about how I started to use Jira as my personal Kanban board at work. A lot of things have changed since then, which brought me to up...
EDIT 2017-03-03 : This article is old, I am now using an improved Jira Personnal Kanban.
It is easy to record and share great screencasts on Ubuntu (and I guess on Linux in general).
As I already wrote about before, my colleague Ahmad from Beirut gave a talk at Agile Tour Beirut about how we adopted XP to a distributed team at work. I was...
My colleague Ahmad from Beirut gave a talk at Agile Tour Beirut on Saturday about how we adopted XP to a distributed team at work. I gave him a hand and play...
Recording the full Event Storming board is a waste of time. Here are examples of quick, focused, and digestible views that capture the board’s knowledge.
Event Storming builds ‘shared understanding’. This is often not enough to bring key action-oriented people in! Here are concrete techniques to convince them.
Software is mostly built according to experts opinions. These 7 data driven software engineering books show us another way to a productive and sustainable pa...
We discovered that DDD concepts like Event Storming, Bounded Contexts, Ubiquitous Language, Entities and Values are useful in machine learning projects.
5 more best practices about remote pair programming. Let’s deal with a painful headphone, a todo list, time difference, eye contact and continuous improvement
Remote pair programming brings surprising benefits to a team! Daunting at first, it is quite manageable with the good practices. Here are the first 2 of 7!
Open-space technology un-conference is a powerful self-organized workshop. Here is a guide to making it remote-first, and even more inclusive!
Open-space technology un-conference is a powerful self-organized workshop. Here is the story of how we made it remote-first to grow a community of practice.
The key to successful DDD and Event Storming injection is to wait for the perfect challenge. Otherwise, we’ll have no choice but to hack the organization!
Injecting DDD or Event Storming in your organization can be tricky. Here are techniques to onboard your domain experts, one step at a time!
Run these activities with the whole team to increase not only the developers’ role in sprint plannings, but also collaboration, engagement, and value creation!
Getting these crucial chats with product experts is often a brain-teaser! Let’s show devs how to trigger short, practical, immediate Example-Mapping sessions.
Let’s give up trying to measure technical agile coaching! Instead, use these 3 liberating questions to self-assess how well you are doing at any moment.
Technical agile coaching is complex. Many organizations would track our work with inadequate measures. Here is how hypothesis-driven goals can keep us safe.
You can now run the Slow Code Retreat by following the facilitation guide. By doing so, you’ll also learn 6 Liberating Structures for your future workshops.
Here is a step-by-step workshop to guide a team to drawing a Quality View. Use it to discuss investment in agile technical excellence with stakeholders.
I thought it was a good idea to specify a media in my stylesheet link :
I was getting an undefined method 'find_by_path' error when using <r:related_by_tags>.
Functions and methods have a better status in the .Net world than they had in the Java world … They are now first class. This means that it is possible to as...
Functions and methods have a better status in the .Net world than they had in the Java world … They are now first class. This means that it is possible to as...
While I was looking for photos for an article on blog for mes-courses.fr, I found this site : http://www.photo-libre.fr. There are a lot of pictures, both €-...
This is a french translation of the famous Hackers and painters essay written by Paul Graham.
At MegaCorp where I am currently working, there is a small team that is dedicated to find solutions to software bugs that regularly happen in production. The...
This can be quite time consuming if it is the first time you set up an ssl endpoint. Here is how I did it :
While working on www.mes-courses.fr, a background scheduled task that was running fine on heroku started to fail with out of memory errors. After searching a...
According to stack overflow, simply use something like the following from the chrome console : $x("//img")
As I started to write more javascript code in my rails app, it became obvious that I should be testing it ! I wanted to use jasmine and coffeescript. I searc...
As agile and lean methodologies are gaining some place inside the workplace, especially in large corporations, I heard and saw quite a few teams struggling w...
First, I recommend this book to any side project infected person : it’s a great motivation boost !
Until now, I had been using Feedburner to manage the email subscriptions to my blog on mes-courses.fr. It had been working fine I thought it had been working...
Lately, I have been introducing javascript and coffeescript in www.mes-courses.fr (with structural architecture issues as a side effect, but that’s another s...
A few days ago, a colleague currently taking the coursera course about reactive programming in scala, asked me to explain him what monads are. It’s always a ...
A few days ago, a colleague currently taking the coursera course about reactive programming in scala, asked me to explain him what monads are. It’s always a ...
A few days ago, a colleague currently taking the coursera course about reactive programming in scala, asked me to explain him what monads are. It’s always a ...
Since I decided to stop Mes Courses to focus on AgileAvatars, I have been extracting open source gems from the code base. The last one is Storexplore : a dec...
At the moment, I am exploring the world of SEO, and so I thought I could start with my blog. I found SEO for Octopress websites that I followed to add keywor...
As said Tom Cargill
Every brands should provide an API for developpers … unfortunately, it far from the truth right now. A few years ago, when I started my mes-courses.fr side p...
Last week at work, we decided that we needed an Anticorruption Layer between our code and another team’s. They have been using our internal data structures a...
In 1991, John F. Woods wrote :
When testing html views, either from RSpec or from Cucumber, XPath can be really helpful to quickly find expected elements.
Rest In Peace mes-courses.fr. Here is what it looked like :
Rest In Peace mes-courses.fr. Here is what it looked like :
As I’ve encountered this situation in different disguise in different companies, I now assume it’s a widely applied antipattern.
Making commitments to deliver software is always difficult. Whatever the margin you might take, it invariably seems wrong afterward …
After finishing my concurrency-kata, one of the things that most surprised me, is how simple it was to prototype the Actor Model in Java using Green Threads.
In search of an experienced software engineer
If you remove your job, you are promoted. (a classic lean quote)
It is easy to record and share great screencasts on Ubuntu (and I guess on Linux in general).
It is easy to record and share great screencasts on Ubuntu (and I guess on Linux in general).
Algorithms are hard, and making them fast is even harder … But there are shortcuts that work quite often !
Any software project (job, startup or side project) will require some time before one can get real feedback from real users.
For an organization, there’s something schizophrenic about valuing team work, wanting agility but sticking to individual objectives and assessments.
I already wrote how we started to use Trello to do our remote retrospectives. A while ago, my team mate Bilal Tayara started to collect our activities into t...
This is my second post relating the talks I attended at JavaOne 2016. Here is the beginning of the story. Here we go.
A few weeks ago, I had to have a look at the distributed consensus protocol Paxos. Even though I know its purpose and I’ve built and used distributed systems...
Here is the story : you have a Rails 5 app that uses RSpec, but your RSpec suite is getting slower and slower to run. You’ve already considered some solution...
In my spare time, I’m writing a Planning Poker App. As a reminder, planning poker is a group estimation technique designed to eliminate influence bias. Parti...
I first read about Design By Contract in 2002, in Object Oriented Software Construction 2. As soon as I read it, I was convinced, today, I still believe it’s...
I first read about Design By Contract in 2002, in Object Oriented Software Construction 2. As soon as I read it, I was convinced, today, I still believe it’s...
As software developers, we very always often get to work in code bases that are not perfect. In this situation we have 3 choices : leave, grumble, or make so...
Refactoring step by step generate a ton of small tasks here and there. Here are some organization best practices to keep track of them.
Recording the full Event Storming board is a waste of time. Here are examples of quick, focused, and digestible views that capture the board’s knowledge.
Writing team coding standards and conventions is hard but critical. Brainstorming doesn’t work, so let’s use asynchronous decision making or mob programming!
Part of the tech lead role is to be available for help. Setting up office hours and pair programming is vital to avoid the mental load of task switching.
Technical agile coaching is complex. Many organizations would track our work with inadequate measures. Here is how hypothesis-driven goals can keep us safe.
In The Serverless Mindset, I blogged about Event Storming and Example Mapping for agile architecture. How do you coach teams to adopt these workshops?
“Developers will always have more work than time” We can race our TODO lists or accept and slow down NOW. The “Slow Code Retreat” helps us do that!
You can now run the Slow Code Retreat by following the facilitation guide. By doing so, you’ll also learn 6 Liberating Structures for your future workshops.
You can now run the Slow Code Retreat by following the facilitation guide. By doing so, you’ll also learn 6 Liberating Structures for your future workshops.
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.
Running code katas or mobs with groups that lack teamwork is almost impossible! Here are 20 communication and collaboration techniques to coach by example.