• en | es

Approaching Outside-in TDD on Android II

In the previous post, we introduced the Bank kata. We explained how we are going to implement it in Android, reviewed the different kinds of tests that we use in Outside-in and transformed a user story into a bunch of acceptance criteria. In this second...


Approaching Outside-in TDD on Android I

Outside-in Test-Driven Development (TDD) can be a challenge to implement. In this 3-part post series, Christian and I would like to share our experiences applying it to Android development and offer some practical tips for doing so yourself. In this first post of the series...


Codurance Barcelona

We are very happy to announce that we have opened a new office in Barcelona. Why Barcelona? Barcelona has a vibrant Software Craftsmanship community which is very aligned to our values at Codurance. We hope to provide a home for some of the talented developers...


Bowling Kata in Kotlin

Screencast - Bowling Kata in Kotlin Sergio Rodrigo implements the Bowling Game kata in Kotlin using TDD, showing some of the features of the language, such as support for Functional Programming (Higher Order Functions, Lambdas and built-in functions), Pattern Matching, Extension Functions, Expression Bodies, and...


Server side Swift

In December 2015 Apple open-sourced Swift, which has been a real success. Many developers are contributing, not only via pull requests directly into the source code, but also by helping to define the shape of the language in the swift-evolution repository. One of the things...


Complex refactoring in simple steps Part I

Screencast - Complex refactoring in simple steps, Part I: Replace Method with Method Object Matthew Butt demonstrates how to compose simple automated refactoring steps in ReSharper to refactor code to better designs. In this episode, we look at a method that exhibits the Long Parameter...


Chinese whispers on Scrum roles

Few days ago, I attended the 2-day Martine Devos' Certified Scrum Master, Estimation & Planning Class at Skills Matter. I had the privilege of meeting and learning from Martine Devos, one of the best Scrum trainer in Europe. This also gave me the opportunity to...


The Java Synchronisers

Threads communication happens primarily by sharing access to fields and objects. Although extremely efficient, this form of communication is prone to errors such as thread interference and memory consistency. Synchronization is a tool that helps to prevent such errors. However, synchronization does not come for...


Have you met the CLI?

What enables code written in C#, F# and VB.Net to run within the same application? And what is .Net anyway? A standardised specification When I was working on a legacy website, developed in VB.Net, I had to implement PayPal Payments Pro. After some searching, I...


Maven demystified

Due to my Android development background, I am more used to Gradle than to Maven. Although I knew that Gradle was based on Maven, I had never investigated what was going on behind the scenes. During the last week, I have been trying to understand...


Subscribe to newsletter