Practising Mob Programming

In the past edition of Socrates UK, I met Gianfranco Alongi who told us about his team’s experience with  Mob Programming. It was the first time I heard about it. As the site says, Mob programming is people working at the same time, in the same space, at the...

Implementing BDD – part 1

This is the first of a series of posts on how our team is practicing BDD. These are mostly notes to myself and our team so other readers may not find enough context to understand the points.             After a few weeks we have decided...

A method is an abstraction

The name of a method must have a higher level of abstraction than the body for the method to be worth it. The name should explain what the method does but not how. If the name communicates exactly the same than its code, it could be a sign that the method does not pay...

Implementing a fake repository

Lately I am using fake objects more than the other common kinds of doubles – stubs, spies and mocks. This is quite recent, I used to prefer stubs, spies or mocks. I find that fakes make my tests less fragile in the case of outside-in development when it comes to...

LTGW2014: resources from our workshop

Yesterday, Jenny Mulholland (from Softwire) and I & ran our workshop on JavaScript for Testers at the London Tester Gathering Workshops 2014, at Skills Matter. We had a nice group of participants with a wide range of kills and knowledge and we covered (roughly)...

Understanding JavaScript Errors

There is no magic in programming languages. The fact that they are formal languages makes them deterministic. For every behaviour there is a reason. For every error there is a logical cause. Before googling for an odd error message, try to understand what the...

Programmer’s memory

By pairing with a wide variety of other programmers, I’ve noticed that the programmer’s memory has an important impact on the productivity. In order to be agile searching for code blocks within a file, we must remember the structure of the code, be...

First 10 minutes of the day: review and refactor

Do you want to know something that works really really well for me? I spend the first 10 to 15 minutes of the day reading the code  I (or we) wrote the day before. I always find out something to change. It’s often a rename or a method extraction, something that...