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
Dependency Injection is a technique that facilitates loosely coupled object-oriented software systems. It is closely related to the Dependency Inversion Principle. In simple systems, references to collaborating objects are made directly within classes that need to refer to them. This … Continued
Writing code that is readable is critical for any software application that needs to be maintained for any length of time. There are valid performance and anti-theft reasons tominify or even obfuscate code that is being deployed, but the source … Continued
Don’t just code with blinders on – understand how what you’re building will be used and the problems it’s meant to solve. As developers, it can sometimes be tempting to focus purely on the technical, engineering challenge of the task … Continued
Dogfooding is short for “Eating your own dog food,” which represents the practice of using your own products. For software developers, that means working with, as a real user, the applications you’re building, or at least working closely with people … Continued
Software development is a whole team activity – avoid silos and barriers to communication. Extreme Programming introduced the idea of the Whole Team, which includes business representatives, testers, and of course programmers. These teams work together, ideally within the same … Continued
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
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
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.
A metaphor that everyone (whole team, customers, management, stakeholders) agrees on for how the system works.