Використовувати UML - це як дивитись на ноги, коли ви ходите. Це робить усвідомлене і явне щось, що ти можеш робити несвідомо. Початківцям потрібно ретельно продумати, що вони роблять, але професійний програміст вже знає, що вони роблять. Здебільшого написання коду є швидшим та ефективнішим, ніж написання про код, оскільки їх інтуїція програмування налаштована на завдання.
Справа не лише в тому, що ти робиш. Що з новим прокатом, який прийде через півроку і йому потрібно прискорити швидкість коду? Що за п’ять років відтепер, коли всіх, хто зараз працює над проектом, немає?
Надзвичайно корисно мати доступну базову оновлену документацію для всіх, хто пізніше приєднається до проекту. Я не виступаю за повномасштабні діаграми UML з іменами методів та параметрами (ШЛУЧА важко підтримувати), але я думаю, що основна діаграма компонентів у системі з їх взаємозв'язками та базовою поведінкою є неоціненною. Якщо дизайн системи не зміниться кардинально, ця інформація не повинна сильно змінюватися, навіть якщо реалізація налаштована.
Я виявив, що ключ до документації - це помірність. Ніхто не збирається читати 50 сторінок повнометражних діаграм UML з проектною документацією, не засипаючи кілька сторінок. З іншого боку, більшість людей хотіли б отримати 5-10 сторінок простих діаграм класу з деякими основними описами того, як система взята разом.
Інший випадок, коли я знайшов UML корисним, це коли старший розробник відповідає за розробку компонента, але потім передає дизайн молодшому розробнику для реалізації.