
Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)

Documentation must be created, but it must be created prudently. The choice of what not to document is just as important as the choice of what to document. A complex communication protocol needs to be documented. A complex relational schema needs to be documented. A complex reusable framework needs to be documented. However, none of these things ne
... See moreRobert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
This change is trivial, but the only thing driving us to do it is our fear. At this point, we have no data to suggest that this program has a performance problem. Besides, we know that the database engine too is doing some caching. So it’s not clear what building our own cache would buy us. We should wait until we see indications of a performance p
... See moreRobert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
Both you and Jane know that it is best to let the developers volunteer for tasks than to assign the tasks to them. You also know full well that you daren’t challenge any of the developers’ estimates. You know these people, and you trust them. You know that they are going to do the very best they can.
Robert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
C++ has become popular because it makes it easier to design software and program at the same time.
Robert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
As software applications grow in size and complexity, they require some kind of highlevel organization. Classes are convenient unit for organizing small applications but are too finely grained to be used as the sole organizational unit for large applications. Something “larger” than a class is needed to help organize large applications. That someth
... See moreRobert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
A war is going on among major corporations. These corporations are fighting to gain your allegiance. These corporations believe that if they own the language, they’ll own the programmers and the companies that employ those programmers.
Robert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
The solution to this problem is to partition the development environment into releasable components. The components become units of work that can be the responsibility of a developer or a team of developers. When developers get a component working, they release it for use by the other developers. They give it a release number, and move it into a di
... See moreRobert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
the team narrows its focus to consider only the stories that are planned for the current iteration, not worrying about stories to come.
Robert C. Martin • Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
Agile development is the ability to develop software quickly, in the face of rapidly changing requirements. In order to achieve this agility, we need to use practices that provide the necessary discipline and feedback. We need to employ design principles that keep our software flexible and maintainable,