Today I was having another round of conversations with a buddy of mine about the concept of waste and unused code. In agile there is a concept called YAGNI (You Ain't Gonna Need It) that basically states that you should not add code that is not immediately needed as it is waste. In Lean software...

As someone how has been designing and developing WinForms based applications for the past 7+ years, I have learned that subclassing UI controls is a must. You may be thinking, why would I want to subclass a text box? Or a combo box? The answer is simple, the better future proof your app. How many times...

A few months ago I posted about my thoughts on Object Construction (found here ). In the post I talk about constructing object with ALL the required values to make the object valid. This post is just a quick follow up to that. The other day I was refactoring some code and needed to add a new property...

Recently I was asked about backing in unit tests into an existing project. In particular I was asked A) was possible and B) is it worth it. In short my answers to both these are Yes and Yes. However, backing in unit tests is not without its challenges. I thought today I would go express my experiences...

In my last post I think I struck a cord with some people in my post 'Unit tests taking too much time'. My intent was NOT to sound like an elitist Agilist or any else of that nature. My intent was simply to put a post out there about the misperception (in my opinion) about how writing unit tests...

In my last post ( here ) I spoke about different do’s and don’ts when it comes to logging bugs. What I really did not hit on was the different types of questions I feel should be asked when logging bugs. Here are my questions, in no particular order. Platform Application Version # Environment Title Short...

All software that is being developed WILL have bugs, sorry, but this IS a fact. Now I know some people and companies don't like to call them glitches in software bugs. They would rather call them issues or defects. For all I care we can call them 'WizBangs', just call them something and LOG...

I am in the process of reading Mary and Tom Poppendieck's latest book ' Implementing Lean Software Development ' and I came across a great quote that is ALL too true in our industry. (I am only 2 chapters in on the book, but so far it is as good as their last book ). 'When testing occurs long after coding...

Over the years I have come to the conclusion when working with switch statements that switches on enum values, a DEFAULT block MUST be required. Not only should it be required, I think it should throw a developer exception. *** NOTE *** My stance on this is ONLY in scenarios where the switch statement...

Code reviews are thought to be painful by many, but in my opinion that can be avoided. Code reviews can be a great tool for a project to help keep the code clean and concise. Last time I talked about Code Reviews and how to make them successful , this time I thought I would spell out some of the Rules...

Code reviews are something that not all of us like or do, but they can be very valuable. I thought I would express some of my thoughts/opinions about the benefits and pit falls of performing code reviews. Benefits of Code Reviews Performing regular and consistent code can have a great impact on your...

All software projects will amass some amount of technical debt. This is not a necessarily bad thing; it is just he cost of doing business. As developers the only thing we can do is try to control/limit the amount of technical debt we build up. If you agree that all software projects build up some amount...

Up until a few months ago I had never even attempted to use mocks ( NMock , RhinoMock , etc). Every time I would read about Mocking I thought to myself, this is kinda cool, but seems to be a waste of energy. At the time I saw Mocks as only a way to create ‘placeholders’ for business/data classes. I did...

How long can we expect the applications we write to live on? What types of things increase or decrease the shelf life of our applications? Is it practical to suggest that software is only good for a certain period of time? Or should software be able to run for ever? Most products we buy have an expected...

Have you ever needed to make rule changes to an existing application? I am sure you have. Have you ever had to make these changes when you understand the change, but have pretty much no clue about the implementation of the code base you are changing? This is kinda like performing surgery in the dark...