There are two types of standards: de facto standards and de jure standards. A de facto standard is one that is based on widespread use and recognition throughout an industry. A de jure standard is created by a body or committee. These two types of standards are not mutually exclusive, and often, the best standards are those that start as de facto standards then become de jure standards. This is because unproven de jure standards are less likely to be successful. For example, parts of the J2EE standard (a de …
I’ve heard that about 45% of features and functions in software go unused. As a developer, I have control over removing unused functions and I do so quite diligently through refactoring and the courage that I have to modify my code through the practice of test-driven development.
But I believe that unused features can have a significantly worse effect on the quality of a software system than unused functions. The more code you have in your system, the more complicated your architecture becomes and the harder it is to maintain. But …
I didn’t find one that I liked exactly, so I just thought I’d post an image that represents the flow of the TDD process.
[click on image to enlarge]
Technorati Tags: process, tdd
Martin Fowlers discusses the term Technical Debt as what is introduced into your code when you take a quick, yet messy approach to developing something. Another way to think about technical debt is as the inverse of quality; in other words:
technical debt = 1 / quality
A word that I’ve often heard used to describe the action of incurring technical debt is sprinting (not to be confused with a sprint in Scrum). This is an analogy to sprint running (in the track-and-field sense) where developers are rushing to write code, often …
I’ve often felt that there should be an etiquette guide for pair programming. Here is a first stab. I’ll update this list as I think of more.
Navigator:
Wait until the test is passing to nitpick on coding standards.
Ask nicely for the keyboard to “show” what you mean.
After “showing” what you mean, offer the keyboard back.
If they don’t take your advice, let them finish doing the task their way and then show them after they’re done.
It is good to inform the driver of keyboard shortcuts and refactorings but don’t interrupt the programming …