Quality

We've recently had to merge a version branch of a codebase back into the trunk. You see, two teams had been working on mostly separate parts of a system for three months. The result was quite painful. We lost several days on cursing, fixing merging- and tree conflicts, testing the code and working through new bugs. This bothered me quite a bit, not in the first place because I was the one cursing as I did most of the merge. But also because I felt that as a team, we were wasting precious time and money. I am quite…

Unit Testing is about writing good, well-designed, decoupled code that, as a result, is automatically testeable. Unit Testing is a well-established practice in our industry. Why then, are so many developers not writing unit tests? Why do some consider Unit Testing to be a luxury. Something you do when you have time or budget left? This bothers me. I strongly believe that these developers are missing the point of Unit Testing and fail to see why it's not a luxury, but pretty much a necessity. In this post, I would like to give my perspective on why I consider Unit…

This post is the second in a series of posts that I will use to explore the science behind Scrum and Agile methodologies, and specifically its history. For those interested, you can also check my previous post about Scrum and Learning organizations. In this post I want to explore the historical and scientific roots of how Scrum attempts to improve the productivity and quality of the software development process. I will discuss two important approaches from the field of organizational development (OD) and how they influenced Scrum. My primary goal is to place Scrum in a historical and scientific context…

Writing quality code is important, right? 'But of course!' will be the response of pretty much everyone you'll ask in the software industry. And of course, quality code is very important. Especially for applications that perform business- and mission-criticial activities. But what exactly does it mean when we say that something is 'of high quality'? In most software development teams, the concept of quality is very important. This makes it all the more surprising that most developers will draw a blank face and shrug when you ask them what this actually means. In this blog post I …

Microsoft's MVC (1/2/3/4/5) has these really cool attributes to decorate controllers and actions with. The nice thing about these attributes is that they affect how a given controller or action behaves. One of the built-in attributes is Authorize, which checks if the user is logged in. If this is not the case, the controller or action will not be executed and the user will be redirected to the login page (or whatever is defined in the web.config). An example of this attribute is: [Authorize] public class HomeController : BaseController { public ActionResult Index() { return View(); } public…