You can code it, I can help!

Why Testing Is So Hard

Choosing what to test

Testing is the process we apply in order to make sure that software applications work as expected.

Sounds easy, but it is not.

Starting from the outside in approach, the first form of validation is writing an acceptance criteria for a feature that may include many valid scenarios. This kind of test is called aceptance testing, should be end to end crossing all the layers and, a black box in the sense we don’t know the details of how it is implemented.

Acceptance can be done either automated (using tools like Specflow, Cucumber, etc), manually or a combination of both.

Agile vs. Craftsmanship

The Agile chain reaction

Some time ago I was doing a presentation for a company about Kanban discussing the benefits of using it and how Kanban can be adapted to their process without modifying anything.

I was discussing the concept of Lead Time and wanted to hear from the atendees if they had an idea of what was the lead time in their current projects. So I asked each of the participants what they thought in turns, and after two or tree answers one of them said something like:

Participant: “But this is Agile! And I worked in an agile project and failed!”

Me: “Well, actually it can be used with any process not only Agile”

Participant: “It doesn’t matter! It smells like Agile!”

So I moved on, but made a mental note, that I had to analyze what had just happened later.

WPF MVVM Demystified


Lately I have been hearing a few discussion about using MVVM as a pattern to work with desktop apps when using .NET and WPF. The first question usually is about justifying the use of the pattern compared to MVC or MVP. It's all about responsibilities and how the data and logic is organized. While I'm not going to describe all the differences I want to highlight some important aspects of the pattern when working with WPF applications.

Meet the Clojure Programming Language

I have the pleasure to welcome Sebastian Galkin as a guest contributor to my blog. I have known Sebastian for some years, since I used to be his manager in one of his first jobs in a software company. At that time he already had a degree in Electrical Engineering and a Masters in Physics under the belt. I have been always very impressed with how smart Sebastian is, his uncanny thirst for knowledge and how little time he needs in order to learn and get familiar with new technologies. Sebastian simply excels at sofware development. He is one of the most knowledgeable developers I know and he has been working with Clojure now for more than a year. I always enjoy to bounce ideas with him to help me realize how wrong I am. Please read on, I am positive you are in for a treat!