В целом рекомендуется работать и формулировать требования к модели на самом высоком приемлемом уровне абстракции. Здесь можно столкнуться с традиционными сложностями: хорошо известный среди программистов тезис о том, что «заказчик не знает, чего хочет», в общем случае неверен, поскольку заказчик точно знает, что он хочет получать, но на одном из высоких уровней абстракции (бизнес-продукт, бизнес-цель). Специалистам же по информационным технологиям свойственно, напротив, мыслить и работать на нижних уровнях абстракции (исходный код, переменные, библиотеки, окна). В этом ключе система Pilgrim 5 интересна тем, что во многих случаях ее собственная терминология (узлы, транзакты, семейства и так далее) может стать неким общим знаменателем между заказчиками и исполнителями, поскольку позволяет описывать объекты и процессы вне зависимости с одной стороны от их природы, а с другой – от низкоуровневых деталей их представления в компьютере.
Собственно, это верно везде. Например, в случае с копирайтингом: заказчик объясняет, чего он хочет, ты выполняешь работу, она нравится заказчику, но в этот момент благодаря тому, что сам текст - это инструмент сближения уровней абстракции, клиент понимает, точнее, оказывается способен более четко объяснить задачу (которую приходится выполнять за те же деньги). Это может и неприятно, но не трагично и даже логично (с позиции описанной выше).
Гм. Я бы выразился в том смысле, что роли бизнес-аналитика, системного аналитика и проектировщика именно для того и существуют, чтобы высокоуровневые требования к продукту, вытекающие из бизнес-целей заказчика, транслировать в более низкоуровневые требования и спецификации, каковые и попадают уже к девелоперам (кодировщикам). Нет?
ОтветитьУдалитьА ведь все они - именно специалисты по IT....
Ты знаешь: как бы да, и как бы нет одновременно. Мы сейчас говорим о немного разных вещах, о том, что есть, и что должно быть. Моя идея в том, что независимо от наличия разного рода ИТ-специалистов всех их можно разделить на две большие группы:
ОтветитьУдалить1. Это настоящие, работающие с компьютерами, строящие сети, разрабатывающие ПО, проектирующие микросхемы.
2. Бизнес/ИТ-специалисты, больше относящиеся к миру людей.
В образовании это хорошо заметно - я всегда делил компьютерные специальности на настоящие ("Прикладная математика" - привет мне, "Математическое обеспечение..." - привет Garik-у) и ненастоящие (не буду называть и так уже в книжке у себя высказался по полной). В практике эта разница не так бывает очевидна, но она есть.
Проблема в том, что есть некая пропасть разделяющая бизнес-уровень и технический уровень, и вот там - пусто. Когда ИТ-шники 2-ой категории пытаются все сформулировать на низком уровне, получается черти что. А вот пример случая, когда программисты пытаются сформулировать ТЗ на высоком уровне:
Три раза я лично встречался с лидером команды разработчиков для своего сайта. Час я объяснял, чего хочу (здесь я выступал именно как клиент, всеми силами стараясь не влезать в нижние уровни - и мне это удавалось).
Через час я услышал следующее: "А, то есть это такой форум..."?
"Нет", - ответил я и продолжил объяснение еще полчаса.
Через эти полчаса услышал: "А, понятно, то есть это интернет-магазин"!
"Нет", - ответил я и продолжил объяснение еще полчаса. И после того, как вроде бы все было понятно, я на следующий день получил ТЗ, озаглавленное: "ТЗ ПОРТАЛА NNN". то есть тут наблюдалась явная попытка свести все мои требования к понятному для человека уровню абстракции со своей терминологией, а если они не влезают - все равно утрамбовать их в свое понимание.