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
Naming Things

Naming Things

It is hard to overestimate the importance of choosing good names for source code elements in software development.  Much has been written on this topic, and it is often a source of great debate.  “What makes a name good, or … Continued
Test Driven Development

Test Driven Development

Test Driven Development, or TDD, also known as Test Driven Design, is a process for writing code using tests to define and then confirm the software’s behavior. It is characterized by a set of steps known as “Red – Green – … Continued