Collective Code Ownership

Collective Code Ownership

Collective code ownership breaks down fiefdoms within an application’s codebase. Nobody “owns” a particular part of the code. Everyone on the team is responsible for all of the code. ¬†This enables pair programming and refactoring by the whole team. It … Continued
Common Architectural Vision

Common Architectural Vision

Well-designed software must have a single, well-defined architecture. Virtually all software, regardless of how well-designed one might find it, starts out with a single architecture. Unfortunately, many applications evolve over time, sometimes going through a partial re-architecting process that never … Continued
Rubber Duck Debugging

Rubber Duck Debugging

Sometimes the process of describing a problem, even to an inanimate object, can reveal the solution. Rubber duck debugging refers to the practice of using a small toy, like a rubber duck, as your first assistant when you are faced … Continued
Small Releases

Small Releases

Frequent, small releases help ensure constant communication and tight feedback loops.
Technical Debt

Technical Debt

Technical debt is a metaphor for all of the shortcuts, hacks, and poor design choices made for a given software system that compromised its quality, usually in an attempt to meet a deadline. It can be an appropriate business decision … Continued
Bounded Context

Bounded Context

Quotes “DDD deals with large models by dividing them into different bounded contexts and being explicit about their interrelationships.” – Martin Fowler
Continuous Integration

Continuous Integration

Continuous Integration is an XP practice that ensures problems with the full system are detected as soon after they are introduced as possible. It refers to automatically building and testing the full system (integrating the system with all of its … Continued
Whole Team

Whole Team

An XP Practice, Whole Team refers to the idea that the team involved in building an application or delivering a project is the whole team. If the project needs UI design, or testing, or data modeling, the individuals with those … Continued