diff --git a/UML-Guidelines.md b/UML-Guidelines.md new file mode 100644 index 0000000..3101c42 --- /dev/null +++ b/UML-Guidelines.md @@ -0,0 +1,5 @@ +UML Guidelines + +Unified Modeling Language (UML) is used as part of the design phase of all our projects. While it has become (arguably erroneously) popular since about 2010-2015+ to regress back to code-first, design-later, this invariably leads to unscalable and unsustainable projects. The code-first approach tends to lead to 10% new features code (forward progression of the code base features and scaling), 85% debugging/fixing (trying to maintain/fix the existing code base), <5% documentation = garbage code that can't be scaled, or maintained when constantly changing developer eyeballs/brains. The design-first approach, if correctly implemented with Object Oriented principles typically leads to 10-20% documentation, 20-50% new features coding iteration (forward progression of the code base), 20-40% debugging/iteration (trying to maintain/fix the existing code base), and is much easier to collaborate, maintain, and support over many years and many different eyeballs and brains. + +We follow the principles of Object Oriented Design (OOD), even when not using OO languages, and design-first approach means it takes longer before we actually write working code (in the early phases), but leads to a much more sustainable, scalable, distributable, flexible, and manageable product overall. \ No newline at end of file