Моделирование против документирования - кто круче?
Честно скажу, что понятия не имею, к какому выводу и как приду в этой заметке. Но очень хочется в этом вопросе поставить точку. Грамотные люди скажут, что это холивар, а я, соглашаясь, отвечу так: ну и что? К какому-нибудь выводу, да придем. Итак...
Другое дело - почему так происходит? Ведь нет в природе CASE-инструментов, генерящих код по документации. А по моделям - сколько угодно.
На мой взгляд, проблема не в способе представления информации, а в навыках аналитика. Чтобы построить модель, нужно уметь выбрать точку зрения на объект исследования, уметь в совершенстве структурировать и синтезировать. Без этого модель не построишь, но документ напишешь.
Но, как показывает практика, человек, не умеющий моделировать, документирует хреново. Вот такой вывод получился.
- Документ пишется текстом, который можно прочитать. Никаких нотаций при этом знать не надо, любой, даже неквалифицированный в IT человек сможет понять, что автор документа хотел донести. А если не сможет понять, то документ можно переписать так, чтобы даже гномики поняли ценность изложенной в нем мысли. С моделью все иначе. Чтобы ее прочитать, нужно знать нотацию. Причем не просто знать, а уметь на ней читать - т.е. знать в совершенстве. Представьте себе девушку, работающую в кредитном отделе и в совершенстве знающую ARIS или UML. Представили? Да? Не, я серьезно. И что она, по вашему, там делает??? Выходит, документирование круче.
- Формальное описание не требует жесткого структурирования мысли, поэтому подготовка документа происходит быстрее. Непроработанности отдельных эпизодов легко покрываются местоимениями, междометиями и прочими способами размазывания и размывания мысли. Т.е. вроде понятно что написано. но что имелось в виду - как-то не очень, но вроде как прокатит. Модель, грамотную, со связанными диаграммами, органичную и понятную (для тех, кто знает нотацию) построить куда сложнее. Оно и понятно: людей, с пеленок говорящих на UML - единицы. Выходит, документирование еще раз круче.
- Но зато на модели невозможно допустить неоднозначность. Это в принципе невозможно. Т.е. дописанная до конца диаграмма всегда однозначна. Если только на ней не используются условия с фомулировками "Вроде сюда", события "Наверное утверждено" и активности "Попробовать сделать". Т.е. получается, моделирование круче.
- А вот теперь представьте, что вы стартуете аналитическую фазу. В результате вам надо выдать девелоперам некоторый контент, по которому они сделают нечто феерически полезное. Надо ведь допетрить, чего им, девелоперам, надо выдать на гора, чтобы свершилась полнота и целостность требований. В случае документирования начинают выдумываться шаблоны документов. В случае моделирования - структуры моделей и соглашения по моделированию. Но вот незадача - внести изменения в структуру документа, не порушив его, куда проще, чем в структуру модели. Получается, документирование круче.
- Внести изменение в документ проще, чем в модель. Опять побеждает документирование.
Другое дело - почему так происходит? Ведь нет в природе CASE-инструментов, генерящих код по документации. А по моделям - сколько угодно.
На мой взгляд, проблема не в способе представления информации, а в навыках аналитика. Чтобы построить модель, нужно уметь выбрать точку зрения на объект исследования, уметь в совершенстве структурировать и синтезировать. Без этого модель не построишь, но документ напишешь.
Но, как показывает практика, человек, не умеющий моделировать, документирует хреново. Вот такой вывод получился.