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
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
Helps to ensure shared understanding within an XP team.
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
Frequent, small releases help ensure constant communication and tight feedback loops.
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
An XP Practice.
Quotes “DDD deals with large models by dividing them into different bounded contexts and being explicit about their interrelationships.” – Martin Fowler
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
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