в) правильно формулировать вопросы;
г) интерпретировать ответы;
д) объяснять сложные вещи простым и понятным собеседнику языком.
Способность к коммуникации в перечисленном смысле это решающий фактор. Знания технологий и предметной области – даже не на втором, а чаще на третьем месте.
Мастер-класс
Как я пишу техническое задание? Беру исходный материал и отрезаю все лишнее.
Требования, как правило, принимают в течение своей жизни следующие состояния:
1. понятны клиенту;
2. понятны мне;
3. понятны разработчику.
ТЗ появляется между вторым и третьим. То, что происходит между первым и вторым, называется анализ.
Выжимать исходный материал нужно, как свежевыстиранную вещь, до тех пор, пока в нем почти не останется воды. Но немного надо оставить – иначе разработчики поперхнутся.
Как я обрабатываю информацию. Сначала группирую по принципу «белое к белому», «синее к синему». Таким образом получаю несколько больших групп, объединяющих требования к крупным частям системы. Внутри, как правило, элементы связаны сильнее, чем с элементами других групп. Вам все это должно быть знакомо из курса объектно-ориентированного программирования. Модульность.
Теперь выделяем кандидатов в требования. Находим описания похожих функций и детализируем их до такого состояния, когда становится понятно, что является общим случаем, что – частным. Если не хватает описаний каких-то частных случаев, уточняем их у клиента. Последовательно проходим все сценарии развития событий. Устраняем дубликаты.
Готовые болванки начинаем обтачивать напильником. Добиваемся непротиворечивости формулировок и ситуации, когда каждое требование упоминается в ТЗ только один раз.
Когда все лишнее отпилили, можно заняться дизайном. Я строю ТЗ следующим образом: сначала очень сжатое описание всех функций, а потом по разделу на каждую группу родственных функций, где они описываются детально. Важно найти базовый принцип, на основании которого устанавливается родство. Скажем, если некая система печатает отчеты в файлы MS Excel, получает данные из системы 1С и отправляет смс-сообщения, то все три функции будут являться частными случаями обмена с внешними системами. Объединяет их как минимум необходимость шлюза и согласованности форматов между обменивающимися системами. Аналогично все требования к отображаемым меню и экранным формам объединяются в раздел, где описываются требования к дизайну.
Профессионал
Я употребляю это слово в значении «человек, зарабатывающий на жизнь определенным занятием» (в котором он и будет профессионалом). Есть также значение «опытный и квалифицированный специалист». Признавая его право на существование, я тем не менее почти им не пользуюсь. Есть еще слово «любитель», которым обозначают человека, занимающегося