2 tolldo - отличное и важное замечание про субъект и объект. +1
Думаю тут стоит отметить еще один нюанс, который в дискуссии не был четко обозначен ( спасибо tolldo за пост, натолкнул на хорошую мысль).
Основной задачей при проектировании ПО является автоматизация существующих БИЗНЕС-ПРОЦЕССОВ (БП) предприятия или организации. Вопрос не в том, насколько полно и точно мы выявляем цели, потребности, мотивы и установки пользователей, а в том насколько точно и полно разрабатываемое ПО маппируется на существующие БП. Т.е. насколько полно разрабатываемое ПО автоматизирует БП (функции, задачи и операции). Пользователь является связующим элементом между БИЗНЕС-ПРОЦЕССОМ (любым) и ПО.
К примеру, у нас есть некая организация, которая занимается торговлей канцелярскими товарами со склада. Необходима разработка, ПО которое позволяет автоматизировать БИЗНЕС-ПРОЦЕССЫ закупки товара, отслеживания товара на складе, продажи товаров, управления отношением с клиентом и прочего. И уже в рамках этих конкретных процессов нужно выявлять конкретные цели и задачи конкретных пользователей.
Скажу свою мысль проще: Невозможно разработать ПО, без знания и использования в качестве ориентира, существующих БИЗНЕС-ПРОЦЕССОВ организации.
Иначе получаются какие то "сферические" пользователи в вакууме. Которые хотят непонятно что и непонятно как.
2 Galogen - тоже очень верно подмечено
В данном примере все ясно и достаточно очевидно, я бы сказал даже стереотипно. Хорошо или нет действовать стереотипно - безусловно - это благо, такова сущность человеческого разума. Вопрос почему же при реализации ИТ проектов стереотипность не срабатывает, может ответ в том, что просто не накоплен тот эволюционный опыт, который дает выверенные стереотипные решения, а приходится действовать революционно пока. Ясно, что Сергей высказал здравую мысль, что при революции шаблоны не слишком хороши, более того они вредны, так как имеют лишь кажущуюся подобность (хотя мы кажется имели подобные шаблоны в Грузии и на Украине с их "оранжевыми" революциями)
Еще предложение-вопрос, а не следует ли к целям подходить не с позиции системности, т.е. сверху - вниз, а наоборот снизу-вверх, т.е. от интересов пользователей к ролевым задачам и дальше к целям? С уже последующим нисходящим преобразованиям в виде требований на реализацию?
Идеальный вариант: На предприятии имеется "полная и адекватная" модель БИЗНЕС-ПРОЦЕССОВ предприятия. Соответственно, когда начинается проектная деятельность по внедрению ПО, разработчик в лице Системного аналитика используя формализованную модель БП Заказчика пишет требования к ПО и согласовывает их с Заказчиком ( итерационный процесс).
В таком варианте особенных проблем и трудностей нет.
Типичный вариант: Описание БП отсутствует как таковое вообще. Заказчик сам до конца не знает, что и как у него работает. В этом варианте и начинаются все описанные в дискуссии проблемы по выявлению целей и задач. Как раз именно таких проектов в ИТ сфере по разработке ПО большинство. Когда Заказчик со своей стороны не знает что и как у него работает ( в большей или меньшей степени), соответственно и не может четко сформулировать требования к ПО. Разработчик же, тем более не знает как работает Заказчик, какие у него есть БП и что собственно от него хочет Заказчик.
ИМХО. При постановке целей и задач Разработчику строго обязательно необходимо использовать в качестве базы - БП Заказчика и идти сверху – вниз.
Хм . . . тогда вопрос в том есть ли какие методы (применяемые и работающие) для выявления требований Заказчика в "типичном варианте"?