Outside-In TDD part 1

Oustide-In TDD (part I) Different from the previous screencasts, this one is not meant for TDD beginners. Inspired by recent discussions on Twitter and a public discussion about TDD and Software Design (see video below), Sandro Mancuso decided to record a video showing how he...


TDD and Software Design

TDD and Software Design JB Rainsberger and Sandro Mancuso started an interesting discussion on twitter about TDD and design. However twitter is not the best place to host these kind of discussions it's better to talk. Sandro and JB will discuss and answer questions face...


Q&A about The Software Craftsman

Our co-founder Sandro Mancuso was interviewed by Ben Linders from InfoQ. Below is the full transcript. In the book The Software Craftsman, Professionalism, Pragmatism, Pride Sandro Mancuso explores how craftmanship plays a role in agile software development. The book contains stories, examples and practical advice...


Side effects and Java 8 streams

There is a lot of excitement in the Java community since Java 8 was released. Lambdas and Streams are a massive improvement and nobody wants to go back to the old days. Today, however, I want to talk about the caveats of some use of...


Creating a local NuGet repository for offline development

I spend several hours each week on long-distance train journeys and often use the time to code, whether on a pet project or practising a kata or two. Large parts of this journey have patchy-at-best mobile data coverage, so tools with a reliance on a...


Interaction Driven Design

Interaction Driven Design How can we quickly tell what an application is about? How can we quickly tell what it does? How can we distinguish business concepts from architecture clutter? How can we quickly find the code we want to change? How can we instinctively...


Design Patterns in the 21st Century: Conclusion

This is part five of my talk, Design Patterns in the 21st Century. Over the past week, we've seen three examples of design patterns that can be drastically improved by approaching them with a functional mindset. Together, these three span the spectrum. The Abstract Factory...


Design Patterns in the 21st Century: The Chain of Responsibility Pattern

Here's a thing you might not see a lot. @Test public void hungryHungryPatrons() { KitchenStaff alice = new PieChef(); KitchenStaff bob = new DollopDistributor(); KitchenStaff carol = new CutleryAdder(); KitchenStaff dan = new Server(); alice.setNext(bob); bob.setNext(carol); carol.setNext(dan); Patron patron = new Patron(); alice.prepare(new Pie()).forPatron(patron); assertThat(patron,...


Design Patterns in the 21st Century: The Adapter Pattern

This is part three of my talk, Design Patterns in the 21st Century. The Adapter pattern bridges worlds. In one world, we have an interface for a concept; in another world, we have a different interface. These two interfaces serve different purposes, but sometimes we...


Making Sense of Docker Volumes

Docker is a platform that allows users to build, ship, and run distributed applications. Applications are stored inside docker containers. A docker container uses a Union File System which consists of read-only layers and a read / write layer on top. Whilst the container is...


Latest Tweets