A client of mine asked me this question today: One of our developers wants to write her BDD features using SpecFlow instead of our existing Cucumber JVM approach. Isn’t it a bad idea having two separate approaches? What are your thoughts on this. I think it is important that you constantly ask youself how you… Read More


If you are like most test driven developers, you write automated tests for your software to get fast feedback about potential problems. Most of the tests you write will verify the functional behaviour of the software: When we call this function or press this button, the expected result is that value or that message. But… Read More


Have you ever faced the problem of writing unit tests which relies on textual test data? This is a classic issue where you usually end up putting the test data in a string variable or in an external file, depending on the amount of text. Neither of these options are particularly elegant. In this article… Read More


This week I gave a presentation for a client, starting on Test and Behavior Driven Development. In this introduction we give a high level description of what it is and why it is useful for developers. Then we go into some details on stubs and mocks, test data, UI testing, SQL testing, JavaScript testing, web… Read More


One of the more popular ways of implementing web services is using REST and JSON, because it makes it easy to communicate with the web service from client side (or even server-side) JavaScript. In .NET we can use Windows Communication Foundation (WCF) to fairly easily implement JSON web services. We might consider using JavaScript to… Read More


I previously advised that you shouldn’t track bugs but rather fix them immediately.¬† But not every issue reported as a bug should be treated as a bug in this sense. So how do we distinguish between a bug and a feature request? Issues are reported when the software is not behaving as expected. That expectation… Read More


I believe that it is often a good idea to have another set of eyes looking at the code I write. The questions and comments resulting from such a code review indicate its value: “It seems like you are missing a test case for this scenario, and I think the code will break on it”… Read More


How do you sell an agile project? Most clients expect to buy software by time-and-material or by fixed-price-fixed scope contracts based on detailed requirements. These models cannot create a fertile environment for collaboration between client and vendor. We have touched upon this subject before, and today I am presenting on the topic for Bay Area… Read More


You want to shorten the time from idea to live. You want your team to develop faster. You want higher quality. In short: you want a high performance engineering team. This presentation is based on my experiences building high performance engineering teams, and focuses on the technical practices required. These practices centers around automation (build,… Read More


For agile development to work well, it is important to have many small stories and many small tasks. Alistair Cockburn has coined the evocative term elephant carpaccio for the process of dividing epics into minimal achievable stories and decomposing stories into minimal achievable tasks. I have previously blogged on this and yesterday I gave a… Read More