Scrum’s Success Explained using SCARF-model

Scrum has become one of the dominant agile organizational frameworks in the software development industry. With its simple set of roles, activities and artifacts, it has gained appreciation among managers and developers alike and has shown great improvements in team and company productivity when done right. In this article I will try to explain why […]

Independence in Automated Tests

In a previous post (not true, not written yet), I outlined some of the properties that an automated test must ascribe to in order for it to be considered “well structured”. In this post I’ll dig into the concept of independent tests a bit further. I have found that even though most developers by now […]

Metaphors in Software are Heuristics, not Algorithms

A software system should be based around a model, a metaphor that helps the developers how to think about the systems functionality and how to construct its features. However, it is important to realize that the metaphor is not an algorithm that can predict exactly how the system should be constructed. It gives hints, it […]

Windows Live Mail Stuck in Working Offline Mode

I ran into the weirdest problem just now. Windows Live Mail  (WLM) would not get out of working offline mode! It didn’t matter how many times I pressed send/receive and confirmed that I wanted to go on-line, nor did it help to directly press the button to switch to on-line mode. Extremely annoying! I did […]

Continuous Integration: A Mindset, part II

I received a couple of excellent questions/concerns about CI in a comment from Roger that I will try to address. “How about human testing/QA? If team or feature branches are used, the QA department has a chance testing PBIs isolated before integrating with mainline which, hopefully, leads to more stable mainline.” Ideally the QA department […]

Current Best Thinking

My new favorite phrase is: “Current Best Thinking“ I can’t take credit for it unfortunately. I heard it from a co-worker who had gotten it from somewhere else. It is inspiring as well as truthful. It expresses the insight that we will act accordingly to our best knowledge, as we understand the world today. But, […]

Continuous Integration: A Mindset

I attended a round-table discussion on CI (Continuous Integration) the other day – and it prompted me to write this post. There seem to be some confusion about CI. Some have chosen to let  integration mean the interaction of two or more software components. Hence, making the conclusion, that integration is only taking place during […]

The When, What and How of Code

When partitioning your code it is important to consider the when, the what and the how. It can decide if your program will be well structured or become a tangled mess. These three aspects should be separated whenever possible. It is a strategy for thinking about dependencies and separation of concerns. The When An action […]

.NET Class Libraries: Application Settings, Config-File

I’m getting to a point where my programming limitations (skill-wise) is in the subtleties of different languages and platforms rather than general concepts, algorithms and design. It is a nice feeling to feel proficient in what you do, but oh so frustrating when you stumble on the small exceptions and querks in a langue or […]

GNU Make: Exporting Environment Variables

I’m still learning the finer arts of writing Makefiles. Just this weekend I learned a subtlety when it comes to the export keyword – it doesn’t work within recipes. As it turns out, the export var=value cannot be part of a recipe but must be written in the general area. It took me awhile to […]