Open–closed principle | Glossary

Definition:

The Open-Closed Principle (OCP) states that software entities (classes, modules, methods, etc.) should be open for extension, but closed for modification.

In practice, this means creating software entities whose behavior can be changed without the need to edit and recompile the code itself. The simplest way to demonstrate this principle is to consider a method that does one thing. Let’s say it writes to a particular file, the name of which is hard-coded into the method. If the requirements change, and the filename now needs to be different in certain situations, we must open up the method to change the filename. If, on the other hand, the filename had been passed in as a parameter, we would be able to modify the behavior of this method without changing its source, keeping it closed to modification.

The Open-Closed Principle can also be achieved in many other ways, including through the use of inheritance or through compositional design patterns like the Strategy pattern.

Further Reading:

Book: Agile Competitors and Virtual Organization by Steven L. Goldman, Roger N. Nagel and Kenneth Preiss

Time management crisis | Glossary

Definition:

Management by crisis is a phrase used to describe the common problem of allowing unexpected events, interruptions, problems, or emergencies to dictate your priorities and actions.

Effective crisis management is an important best practice; it is an essential skill of effective time managers because unexpected things do happen in every project. Sometimes we do need to react quickly to a crisis and contain it before it does more damage. The problem comes when crisis management becomes the routine rather than the exception. If you spend more of your time putting out fires than doing your work, you are managing by crisis.

Further Reading:

Book: The Unified modeling Language user guide by Grady Booch, James Rumbaugh and Ivar Jacobson