TDD: It’s not that simple

TDD is pretty simple right? Obey the red-green-refactor step-by-step and you’re on your way to glorious, non-legacy code. It’s really easy to explain. The rules are easy to follow. Why then so few people actually do it, and when they do, so few actually do it well? In my talk at Lean Agile Scotland 2015, “Rebooting ALM“, I talked about ...

Read More »

Do not expose properties with writable fields without a chance to react on the writes.

                                                                                                                                                                                                                                                                                                                                                                                                                                              From a chat with a co-worker a while ago: I’m not against properties. Just something against properties that are objects with writeable fields. So even if you expose such a property as read-only, it can still get its writeable fields overwritten. That is a pain when those are part of the state of the underlying object. In other words: ...

Read More »

My Business is Software

When I attended Drury University, I was a bit of an enigma. My peer group in the business school didn’t understand why mathematics and computation fascinated me so strongly. My other peer group in the computer science department called that other building across the street “B-School,” and in their minds that school hadn’t even really earned a B. Even now ...

Read More »

REST API Design – Resource Modeling

Important note: this is not something I’ve written up by myself, but it’s rather a summary, some highlighting of the most important quotes with some of my comments for an awesome post on the Thoughtworks blog about API design. Their vision quite accurately reflects what I’ve been doing lately although I did never think about all the concepts in such ...

Read More »

C#: Lazy is not constrained to static contexts, instance field initializers are: via Stack Overflow

Lazy<T> is not constrained to static contexts. Instance field initialisers cannot use instance references (but can use static references) as they run outside of the constructor.Though there are arguments for instance field initializers too., I think this is a good reason to initialize fields inside the constructor: there you do have access to instance references (but should not call virtual ...

Read More »

Production Postmortem: The case of the slow index rebuild

A customer called to complain that the indexing times that they were seeing on an index rebuild were very high, and that caused them issues. The customer was kind enough to actually provide us with a duplicate machine of their system, including duplicate data, which made the whole process so much easier. Unlike most scenarios, where we have to poke ...

Read More »

Recording available – Highly Available & Scalable Solutions with RavenDB

In this session, Oren explored how RavenDB deals with scaling under load and remain highly available even under failure conditions. Showed how RavenDB’s data-driven sharding allows to increase the amount of the data in our cluster without giving up the benefits of data locality and work with complex distributed map-reduce queries on a sharded cluster, giving you lightning-fast responses over ...

Read More »

How can I write a Test if the Code is not there?

Introducing TDD is a lot more psychological than you think. When we start introducing TDD we need to think about how people new will react. For example, the first question that people ask is:   How am I going to write the test if I don’t know what the code does?   For people who are already doing TDD the ...

Read More »

Preview of new PBI Edit Dialog

Microsoft shows a new design preview for the Product Backlog Item edit dialog. As usual, Microsoft releases this in Visual Studio Online before it arrives in the on-premise version of the Team Foundation Server. So the software vendor engage users to give feedback on the changes. IMHO it was time to focus on this dialog since the user experience was not ...

Read More »