Read the Manual

Read the Manual

A great deal of the time, software developers can mostly figure things out by just trying things, and seeing what fits.  Maybe it’s a matter of trying different combinations until the compile error disappears, or maybe it’s a matter of … Continued
Pain Driven Development

Pain Driven Development

What is Pain Driven Development (PDD)? It means waiting to apply principles, patterns, and practices to your code until there is some pain the current approach is causing that must be addressed. It’s a variation of YAGNI that ensures you … Continued
Shipping Is A Feature

Shipping Is A Feature

Never lose sight of the fact that until you ship your product, it is not providing value to anybody.  Joel Spolsky put it well when he wrote: A 50%-good solution that people actually have solves more problems and survives longer … Continued
Refactoring

Refactoring

Refactoring can be used as a verb or a noun. As a verb, refactoring means to improve the design of a code without changing what it does. As a noun, it refers to an individual modification to a program that … Continued
Sustainable Pace

Sustainable Pace

Software developers should rarely be made to work more than 40 hour weeks, and if one week does require overtime, the next one certainly should not.  This helps to maintain programmer welfare and avoid a death march project.
Ubiquitous Language

Ubiquitous Language

All stakeholders on a software application, from users to product managers to developers, should share the same terminology when discussing the elements of the application. Use of a ubiquitous language reduces the risk of miscommunication and the need to translate … Continued
System Metaphor

System Metaphor

A metaphor that everyone (whole team, customers, management, stakeholders) agrees on for how the system works.
Update the Plan

Update the Plan

When you miss a deadline or milestone, don’t just blindly shift the planned deadline back by a day. This is an opportunity to quickly re-assess the project’s status, update the plan, and communicate the new plan to all of the … Continued
Simple Design

Simple Design

Kent Beck created four rules of Simple Design. These are sometimes referred to as The Four Commandments or the XP Simplicity Rules. The rules, in priority order, are that code should: Pass all tests Express the author’s ideas Avoid duplication … Continued
Descriptive Error Messages

Descriptive Error Messages

When something unexpected or exceptional happens in a software application, usually an error message is displayed to the user and/or logged somewhere for a developer to investigate. If the error is something temporary, such as a lack of a network … Continued