Форум Сообщества Аналитиков

×


Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Григорий Печенкин

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 »
556
Замечания в этой теме как бы намекают нам, что постоянные посетители сайта никуда, кроме главной страницы и форума, не заходят.
А значит, надо их туда как-то завлечь. :)

RSS есть, это такая большая оранжевая кнопка в правой колонке (которая есть на всех страницах, кроме главной). Кроме того, современные браузеры должны показывать кнопку RSS в адресной строке. Я её вижу. Кто не видит, поднимите руки. :)

557
и где о ней можно прочитать на сайте?

Законное замечание. На любой странице, кроме главной. :)

Перенёс в левую колонку.

558
Поздравляю! Сбычи мечт! :)

559
А кто ставил диагноз - интроверт он или экстраверт? Использовалась какая-то методика?

Популярная психология предоставляет в распоряжение технарей модели, которыми легко и просто играться, но с которыми очень легко сделать ошибку. (Особенно мне нравятся постоянные ссылки на "пирамиду Маслоу" на технических форумах.)


Типичная ситуация: аналитик едет к заказчику и там с ним оживлённо беседует. Вопросы задаёт, шутит, картинки рисует - живой такой, весёлый. Экстраверт, в общем.

Потом он приезжает к себе на работу и садится писать отчёт о встрече. Разгребает свои картинки, записи, отключает телефон, кофе пьёт литрами, на всех приближающихся к его столу тихо рычит. Или просто игнорирует. Интроверт, однозначно.

560
TkhaiN, зачем вы ставите столько пустых строк в конце каждого своего поста?

561
<to greesha> но я ведь практически в точности так и трактую понятие "Варианты использования", как вы описали. В чем разница?

Разница, как мне кажется, в том, что use case на диаграмме вариантов использования и use case как способ описания требований к системе - это не совсем одно и то же. Или почти одно и то же, но с разных точек зрения.

Из-за этого и возникает путаница: для кого-то use case это, в первую очередь, сценарий взаимодействия с системой (для тех, кто начинал с Коберна), а для кого-то другого - функция, предоставляемая системой (для тех, кто начал с UML). Однозначного соответствия между ними может и не быть.

562
Вот это попрошу пояснить. Почему ВИ - это "набор сценариев"? (я не спорю, я хочу понять) Во-первых, если брать диаграмму ВИ в целом, то это скорее перечисление функций (именованных), их обзор так сказать, которые требуются пользователям. Отображение их последовательностей не является назначением данного представления. Да, к нему предусмотрен сопровождающий документ "Сценарий", но это ведь все же только опция, а не одно и тоже. Но о каких "сценариях" тогда идет речь? Ведь сценарии это, суть, последовательности ... Сами элементы диаграммы, эти именованные функции, тоже называются ВИ, только в единственном числе (на данном уровне деталировки). Я знаю, что систему в целом можно представить в виде сценария, например(!), с помощью диаграммы Activity (такие у меня пока примитивные представления сложились). А кроме того, в свойствах каждого из единичных ВИ, присутствует возможность описать его внутренний сценарий. Если вы имеете ввиду, что каждый из прецедентов в диаграмме ВИ таким образом представляет некий сценарий, тогда я вашу фразу понимаю, а если нет - ну тогда значит не понимаю о чем идет речь. Собственно, вот и вопрос для начала: так правильно я понимаю ВИ или нет, и если нет, то в чем ошибка? А еще лучше, если вы не станете отвечать на мои вопросы, которые заведомо содержат новые изъяны, а попробуете просто перефразировать ваше выражение так, чтобы эти вопросы не могли возникнуть.

Диаграмма вариантов использования - это что-то вроде оглавления, план будущей книги. А сами варианты использования - текстовое наполнение, главы этой книги.

Вы можете разработать для каждого "яйца" на диаграмме отдельный текстовый вариант использования (в стиле Коберна, например), можете вместо текста нарисовать по диаграмме последовательности или взаимодействия или активности, или по старой доброй блок-схеме алгоритма, а можете передать в разработку и так, если нет явной необходимости "задокументировать всё", а есть уверенность, что разработчики и без дополнительных диаграмм разберутся.

Однозначного соответствия между вариантами использования и классами в большинстве систем, скорее всего, нет. Это разные сущности, Хотя это зависит от выбранной архитектуры, конечно, но мне сейчас как-то трудно представить пример такого соответствия. Скорее, каждый сценарий реализуется взаимодействием множества экземпляров разных классов.

563
Для всех / Re: Ресурс http://www.uml-rus.ru/
« : 07 Ноября 2009, 16:10:12 »
По-моему, мы на него уже натыкались, и Саша пытался с ним связаться.

564
хочется просто пропустить пару детских шагов, опыт других поколений ведь не зря скапливается. :)

Тем не менее, ни один ребёнок ещё не научился ходить, опираясь на опыт предыдущих поколений. :)

Могу поделиться своим опытом, но не уверен, что он научит вас ходить. Перед нами стояла немного другая задача: разработать документацию к нашему API, которое мы передаём партнёрам для использования в их собственных разработках.


Во-первых, ввести правило: документировать все вновь разрабатываемые классы и функции (или на чём вы там пишете?) с помощью средств автоматического создания документации из исходных кодов - javadoc, если это Java, doxygen если это C/C++, или средства, встроенные в IDE (мы-то по старинке работаем, мэйком через командную строку). Здесь придётся предварительно выработать некоторые минимальные требования (для "C", например: описание задачи, выполняемой функцией, назначение и допустимые значения каждого параметра, перечень всех кодов возврата). Навязать команде такие правила "сверху" очень трудно. Единственный, на мой взгляд, работающий метод - вырабатывать эти требования совместно, всей командой, чтобы каждый был уверен, что это решение принято с его участием.


Во-вторых, разработать план такого же "низкоуровневого" документирования для того, что уже создано. Не стоит замахиваться на Вильяма нашего Шекспира сверхзадачу "задокументировать сразу всё". Начать с некоторых основных разделов, используемых всеми - тех исходников, в которые чаще всего приходится заглядывать для справки (опять же, например: подробное описание единых кодов возврата, иерархия и правила использования исключений и т. п.)
Ах, да... я, кажется, сказал "план"? Раз есть план, значит, его ещё нужно выполнять. :) Причём не "в фоновом режиме", а целенаправленно ставить задачи и выделять время на его реализацию.


В-третьих, для каждого модуля (или как это теперь называется?) создать страницу с его описанием. Мы это делаем с помощью того же doxygen, прямо в заголовочном файле модуля. Это уже не простой перечень функций, а некоторые "метаданные", базовое описание архитектуры - не очень объёмный текст, описывающий назначение модуля и содержащий примеры его использования. (Кстати, диаграмму классов doxygen создаёт автоматически).

Здесь, опять же, без плана не обойтись. Нужно определить порядок документирования модулей согласно какой-то системе приоритетов (важность, сложность, частота использования и т. п. - для нас высший приоритет имели те модули, по которым возникало больше всего вопросов у наших партнёров). Это, пожалуй, самая важная часть той документации, которая генерируется из исходных текстов. В работе любого отдельно взятого класса или функции разобраться не так уж и сложно (если там не индусский код, конечно), а вот охват "с высоты птичьего полёта" - это как раз то, ради чего документация и создаётся.

Конечно, это тоже совершенно самостоятельная задача, и довольно трудоёмкая. Если реализовывать её "за счёт внутренних резервов", то, скорее всего, ничего не выйдет. Причём писать такие страницы лучше специально выделенному человеку, работающему в паре с разработчиком, который лучше всего этот модуль знает. ("Работать в паре" - значит, работать вдвоём, как принято в XP, которое не Windows, а экстремальное программирование.)

Почему я поставил это "в-третьих", если это самая важная часть документации? Возможно, потому что именно в таком порядке это происходило у нас. Первый шаг, с одной стороны, сделать довольно легко, при этом он служит чем-то вроде индикатора, показывающего решимость команды поменять своё отношение к документации. Но именно за его исполнением нужно неукоснительно следить: энтузиазм быстро угасает, а если у разработчика появляется какая-то срочная задача, он легко переключается в режим "некогда романы писать, кодить надо", в котором и остаётся. Тогда приходится всё начинать сначала.


У нас в результате выполнения этих трёх шагов получилась вполне пригодная для использования документация в формате Windows Help (мы даже когда-то интегрировали её в MS Visual Studio). Мы сами её используем как справочник, а страницы, получившиеся на третьем шаге, я несколько лет достаточно успешно использовал как материал для обучения партнёров: там есть и описание реализованных концепций, и примеры использования кода.

Но этого для нашей задачи оказалось недостаточно: всё равно у партнёров после обучения возникало много вопросов, нужно было несколько месяцев использования API в реальной разработке, пока этот паззл из описания отдельных модулей не складывался в цельную картинку. И тогда пришлось написать ещё один документ, уже не привязанный к исходным кодам - Developers Guide, описывающий пошаговый процесс создания приложения с использованием нашего API, начиная с пустого шаблона (аналог "Hello World") с постепенным подключением модулей - файловой системы, загрузки параметров, подключения коммуникаций, печати чеков и т. д.

В вашем случае, если возникнет необходимость разработки таких документов, нужно достаточно чётко определить, для кого этот документ может быть предназначен и какие проблемы он поможет решить (что, впрочем, справедливо вообще для любого разрабатываемого документа).


По поводу шаблонов тоже скажу пару слов. Я тоже начинал (а кто начинал иначе? пусть первым в меня плюнет!) с поиска неких "универсальных шаблонов" для документации. Причём во всех областях, связанных с разработкой ПО - начиная с шаблона ТЗ (ага, мне уже не стыдно в этом признаваться ;)) и заканчивая "рыбой" функциональных обязанностей. Мой личный вывод: все эти шаблоны хороши для общего расширения кругозора (подсказывают, "куда копать"), но оказываются абсолютно неприменимыми для наших конкретных проектов. imho нужно не найти шаблон документа и пытаться подогнать под него процессы, выполняемые командой, а наоборот, сначала формализовать и упорядочить процессы, а тогда уже естественным образом появится шаблон, который будет развиваться и дополняться согласованно с изменением и улучшением процесса.


(Посмотрел через "Предварительный просмотр" и ужаснулся: какой длиннющий пост получился! Надо будет его причесать и вставить в блог.)

565
Записи видео с SEF - это наш первый блин, который обычно комом. Но если даже она принесла пользу хотя бы одному проценту от тех, кто её просмотрел, то уже была выложена не зря.

566
P.S. В свое время мы использовали javadoc, который преобразует комментарии в исходном тексте в help-файлы. Можно начать с чего-то подобного.

doxygen

Но сами по себе, на чистой сознательности, программисты использовать его не будут. Нужно их, во-первых, убеждать (иногда металлической линейкой по рукам), а во-вторых, контролировать.

567
А видеосъёмка будет?
Если я приеду с видеокамерой, найдётся дополнительное место? Мне даже стул не нужен. :)

568
Работа / Re: Знание английского языка
« : 03 Ноября 2009, 22:44:39 »
У меня есть два соображения по поводу требования обязательного знания английского для аналитика.

Первое: необходимость профессии (специальности, роли - нужное подчеркнуть)"аналитик" пока осознано, главным образом, крупными "фабриками ПО" - аутсорсерами, работающими больше на западный рынок (за неимением отечественного), а также филиалами западных компаний, использующих формальные методологии вроде RUP (и почему я сначала написал R.U.P.? Странные ассоциации...) В этих случаях английский просто жизненно необходим для общения с заказчиками.

Второе соображение: необходимой профессионалу информации на английском языке несравнимо больше, чем на русском. Мы до сих пор ещё с терминологией разобраться не можем, а из BABOK, если я не ошибаюсь, переведено (ну или опубликовано в переводе) только оглавление.

Есть ещё бонусное третье соображение. :) Вакансии с названием "аналитик" до недавнего времени размещали всё больше компании, внедряющие всякие системы автоматизации ERP, CRM и т. п., разработанные не в России.

569
О Сайте и Форуме / Re: проблемы с RSS форума
« : 03 Ноября 2009, 18:38:11 »
По-моему, у Оперы не вполне адекватный RSS клиент. Но удобный. Но неадекватный.

570
Я сталкивалась с ситуациями, когда разработчики являлись хорошими специалистами в предметной области - исторически так сложилось, что разработчики изначально были, а аналитиков не было. И что же теперь - ни в коем случае не спрашивать мнения разработчиков?

Agile методы так и работают: выделенных аналитиков, как правило, нет, и выявлением требований занимается вся команда. Для этого вся команда должна видеть общую цель, а не свою частную задачу (даже если я "утаю" сейчас  требование, рано или поздно мне всё равно придётся его реализовывать, причём команде это обойдётся, скорее всего, намного дороже).

Страницы: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 »