|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
Вот есть Dynamics CRM c кучей дописанного для него. Есть папка с вордовскими файликами, в которой в хаотичном виде разбросаны ТЗ по разным модулям системы. Причём по одному модулю может существовать > 5, противоречащих друг другу и вообще не соответствующих текущему варианту реализации бизнес-логики в работающем на данный момент коде. Как поступают умные людим, чтоб вести соответствие изменений в коде с изменениями в ТЗ? Заводят файлики с ТЗ в том же TFS'е, а при CheckIn'е прописывают имя файлика с ТЗ и его версей? А как лучше вести эти самые файлики? Блин, что-то совсем я запутался... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 15:14 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
НовыйЯ, авторИсходные требования Заказчика часто оформлены в виде документов — ТП, ТЗ, SRS, FS и др.. Такая форма представления требований удобна для согласования и утверждения c Заказчиком, но мало пригодна для других процессов управления требованиями, в ходе которых необходимо решать следующие задачи: отслеживать влияние изменений требований; оценивать покрытие требований тестами; оценивать состав и объем реализованных требований; связывать конкретные требования с задачами плана работ и отслеживать ход реализации требований; выявлять конфликтующие исходные и производные требования; определять область влияния обнаруженных ошибок. взято из Подготовка спецификаций требований Заказчика к трассировке http://edu.reqcenter.pro/?p=627 там есть продолжение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 21:30 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
НовыйЯКак поступают умные людим, чтоб вести соответствие изменений в коде с изменениями в ТЗ? Ну во-первых, при долгой разработке вряд ли имеет смысл поддерживать "актуальное ТЗ" как монолитный документ, сил на это требуется много, а польза невелика. Удобнее работать с серией документов "последовательных изменений" - то есть задания на новые модули, описания изменений в старых. Во-вторых, умные люди любят использовать трекер, то есть программу, позволяющую описать проект как серию относительно мелких задач и манипулировать этими задачами. Тексты задач в трекере нередко ссылаются на соответствующие пункты ТЗ, в других случаях дополняют и расшифровывают их. Так или иначе, любые изменения в коде делаются только в соответствии с задачей в трекере; это позволяет организовать весь последующий процесс вплоть до документирования сделанных и протестированных изменений (имеется в виду изменение пользовательской документации). Некоторые инструменты предоставляют средства, чтобы связать задачу в трекере и набор изменений, зафиксированный в VCS, но в любом случае никто не мешает писать номер задачи в комментариях к чекину; таким образом всегда возможно увидеть, по какой документации сделаны изменения, а также какие изменения внесены в рамках этой задачи. В некоторых случаях трекер вообще становится основным "документом ТЗ", то есть основную массу задач начинают писать прямо в трекер, минуя стадию "многолистовых печатных документов". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 23:37 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
По-умному это делается за 1 проход. Один фулл скан так сказать. А цикличное перебирание и пережувание документов - кому оно ннафик сдалось? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2012, 22:14 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
НовыйЯ, кстати, в этой статье-участнице конкурса, описана вроде бы похожая на Вашу ситуация http://saturs.ru/index.php?r=block/plain&label=competition-article1. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2012, 22:57 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
НовыйЯ, если хочется просто и дешево, то поставьте какую-нибудь wiki (mediawiki или confluence). Ну а там уже и версионность есть и ссылочная целостность и многое другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2012, 17:03 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
Иногда начинаешь читать всю историю... Йопт! ни полей, ни даже таблиц таких в БД давно нет! Только где-то в конце, в последних документах, уже ссылаются на невесть откуда взявшуюся, но более-менее актуальную структуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 01:40 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
По-хорошему, вся документация (и ТЗ, и спецификации, и пользовательская) должна версионироваться вместе с модулями системы и обновляться в рамках каждого изменения (=изменения версии модуля). На практике это сильно увеличивает трудозатраты на разработку. Зато порядок. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 13:16 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
OptiX, так затраты на порядок снижают затраты на устранение ошибок, в итоге порядок часто оказывается дешевле ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 14:37 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
pmleтак затраты на порядок снижают затраты на устранение ошибок Да не сказал бы. Если у нас есть актуальное ТЗ (1000 страниц), и мы хотим внести в него изменения (новый модуль - 50 страниц, изменения старых модулей - 5 раз по 10 страниц), никто не будет читать изменённую версию документа, это нереально. Если задание на новый модуль ещё можно вписать в тысячестраничный документ и работать с ним, то разбросанные странички с поправками не будет читать никто и никогда; вся реальная работа - проработка, согласование с заказчиком, постановка задач исполнителям - будет идти с "маленькими документами изменений". Таким образом, внесение потом этих изменений в "полное актуальное ТЗ" - это отдельная работа, во время которой могут быть и будут сделаны свои, отдельные ошибки. Мало того; поскольку это полное ТЗ практически никто и никогда не будет читать, эти ошибки останутся очень надолго, до тех пор, пока кто-то с большим удивлением не попробует разобраться "как же оно" и не сравнит его текст с реальной системой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 15:11 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
softwarerникто не будет читать изменённую версию документа, это нереально. Если задание на новый модуль ещё можно вписать в тысячестраничный документ и работать с ним, то разбросанные странички с поправками не будет читать никто и никогда; вся реальная работа - проработка, согласование с заказчиком, постановка задач исполнителям - будет идти с "маленькими документами изменений". Я, возможно, чего-то не понимаю, но использование Version Control для документации означает, что у нас есть документ (скажем "Текущее ТЗ"), который поддерживается в актуальном состоянии. Читать его целиком, разумеется, никто не будет. В случае необходимости "маленькие документы изменений" нам как раз инструменты Version Control сделают. Те работа должна выглядеть как Коммит в ТЗ/требования -> коммит в код/описывающую его документацию (одновременно! В одном коммите.), который это реализует. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 15:22 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
Inkelyadsoftwarerникто не будет читать изменённую версию документа, это нереально. Если задание на новый модуль ещё можно вписать в тысячестраничный документ и работать с ним, то разбросанные странички с поправками не будет читать никто и никогда; вся реальная работа - проработка, согласование с заказчиком, постановка задач исполнителям - будет идти с "маленькими документами изменений". Я, возможно, чего-то не понимаю, но использование Version Control для документации означает, что у нас есть документ (скажем "Текущее ТЗ"), который поддерживается в актуальном состоянии. Читать его целиком, разумеется, никто не будет. В случае необходимости "маленькие документы изменений" нам как раз инструменты Version Control сделают. Тут немного не об этом. На практике исполнитель (=разработчик) на вход получает не многостраничный ТЗ от аналитика, а "маленький документ изменений" (чаще в виде задачи в Jira), где расписаны требования и краткие пожелания по дизайну, если нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 16:18 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
InkelyadЯ, возможно, чего-то не понимаю, но использование Version Control для документации означает, Ну в первую очередь оно означает, что в репозитории лежат бинарные файлы, с которыми особо ничего не сделаешь. Я наверняка чего-то не понимаю, но я, например, никогда не слышал об инструменте, который позволил бы мне сравнить две версии Visio-диаграммы и показать различия между ними :) InkelyadВ случае необходимости "маленькие документы изменений" нам как раз инструменты Version Control сделают. Ну, допустим, сделают (хотя я бы посмотрел на процесс в деталях). Дальше этот файл везём или высылаем заказчику, он вносит правки. Что делаем дальше? Запускаем совсем хитрую тулзу, которая по изменениям "маленького документа изменений" мержит изменения в основной документ? C учётом того, что его в то же время редактировали другие люди? InkelyadТе работа должна выглядеть как Коммит в ТЗ/требования -> коммит в код/описывающую его документацию (одновременно! В одном коммите.), который это реализует. Мм... эта идеальная модель представляется мне технологически проблематичной и организационно нереальной. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 16:18 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
softwarerНу в первую очередь оно означает, что в репозитории лежат бинарные файлы, с которыми особо ничего не сделаешь. Я наверняка чего-то не понимаю, но я, например, никогда не слышал об инструменте, который позволил бы мне сравнить две версии Visio-диаграммы и показать различия между ними :) Если поставить себе такую задачу, то можно выбрать себе текстовые форматы хранения исходников документации. А документирование в Visio как раз тем и плохо, что эти файлы сравнить нельзя. softwarerНу, допустим, сделают (хотя я бы посмотрел на процесс в деталях). Дальше этот файл везём или высылаем заказчику, он вносит правки. Что делаем дальше? Запускаем совсем хитрую тулзу, которая по изменениям "маленького документа изменений" мержит изменения в основной документ? C учётом того, что его в то же время редактировали другие люди? Отсылаем заказчику линк на весь документ с правками в GoogleDocs (или на наш частный эквивалент). Пускай правит. Заодно увидит и то, что другие люди наредактировать успели. Но вообще да, в переносе изменений заказчика в VC и заключается проблема. Ничего, пригодного для использования нормальными людьми, нет. softwarerМм... эта идеальная модель представляется мне технологически проблематичной и организационно нереальной. Зависит от. Та часть, которая "в коммите должен быть код и изменения в документацию" при известном желании реализуема. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 16:51 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
OptiXТут немного не об этом. На практике исполнитель (=разработчик) на вход получает не многостраничный ТЗ от аналитика, а "маленький документ изменений" (чаще в виде задачи в Jira), где расписаны требования и краткие пожелания по дизайну, если нужно. А аналитик нигде не ведет "текущее ТЗ" что ли? Если ведет, то оно о должно лежать в VC. А то, что идет исполнителю уже из него генерируется. В виде "Сделать <ссылка на страничку соответствующего коммита в Web интерфейсе VC>". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 16:59 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
InkelyadЕсли поставить себе такую задачу, то можно выбрать себе текстовые форматы хранения исходников документации. Если поставить задачу, то можно, конечно, и не такое :) Но это уже стопроцентный сигнал задуматься, стоит ли игра свеч. Признаться, я даже уверен в ответе на этот вопрос. InkelyadОтсылаем заказчику линк на весь документ с правками в GoogleDocs (или на наш частный эквивалент). Заказчик в грубой матерной форме просит дать нормальный doc-файл, в котором нет ничего лишнего. Напоминаю ещё раз: он совершенно не собирается читать тысячестаничное ТЗ и/или искать в нём нужные страницы. Ему нужно согласовать изменение на десять страниц, и именно их он хочет увидеть. А ещё он заказывает музыку. Во всяком случае заказчики, согласные работать с ТЗ в виде diff-а текстовых файлов, встречаются нечасто InkelyadЗависит от. Та часть, которая "в коммите должен быть код и изменения в документацию" при известном желании реализуема. Эта задача не самоцель. Вопрос не в том, можно ли её реализовать, а в том, сколько это будет стоить и насколько приблизит настоящие цели. Это отдельная большая тема... честно говоря, не готов сейчас развивать её во всей полноте, поэтому ограничусь довольно очевидной констатацией: документация, не соответствующая реализации, есть бесполезный мусор. С течением времени документация склонна в такой мусор превращаться. Чем больше документация по объёму/детализации, чем меньше она задействована в процессе разработки и чем больше пишется по факту - тем дороже стоит поддержание её в более-менее адекватном состоянии, соответственно тем резоннее звучит вопрос "а нужна ли нам такая документация за такую цену". Ответ, разумеется, зависит от деталей проекта, причём как от задачи, так и от команды. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 17:19 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
InkelyadА аналитик нигде не ведет "текущее ТЗ" что ли? А разве у нас не принято читать то, на что, по идее, отвечаешь? 13487408 , первое предложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 17:22 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
softwarerА разве у нас не принято читать то, на что, по идее, отвечаешь? 13487408 , первое предложение. Прошу прощения, за несколько дней успел потерять контекст обсуждения. Но вот как раз с вряд ли имеет смысл поддерживать "актуальное ТЗ" как монолитный документ я и не согласен. Последовательность "Получил/утвердил хочушку заказчика" -> вписал ее в "Текущее ТЗ" -> нагенерировал задач в трекере вида "сделать то, что описано в изменении ТЗ <номер коммита>" не выглядит уж очень трудоемкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 17:37 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
Inkelyadя и не согласен. Последовательность "Получил/утвердил хочушку заказчика" -> вписал ее в "Текущее ТЗ" -> нагенерировал задач в трекере вида "сделать то, что описано в изменении ТЗ <номер коммита>" не выглядит уж очень трудоемкой. Трудоёмкость, да ещё на пальцах - вопрос, конечно, спорный. Даже бесконечно спорный :) У меня на самом деле к этой последовательности больше другая претензия - связанная с тем, что результат этого процесса (то есть "текущее тз") никто не будет толком читать и использовать. А следовательно - это производство той самой мусорной, дезориентирующей документации. С этим можно в определённой степени бороться, например, обязать тестировщиков принимать задачи согласно именно этому "монолитному тз" - но это опять же довольно существенные дополнительные траты. А вопрос "ради чего" как висел, так и висит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 17:58 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
softwarer"текущее тз" никто не будет толком читать и использовать. А следовательно - это производство той самой мусорной, дезориентирующей документации. [...] А вопрос "ради чего" как висел, так и висит. ребята, как же так. Буквально сейчас имею ситуацию, что требования фактически ведутся в Jira в виде багов, запросов на фичи, тасков и т.п. Пришел новый сотрудник, ему нужно знакомиться с системой, а собрать описание функционала какого-нибудь модуля невозможно, потому что оно раскидано по сотням тикетов в Jira. Я считаю, что вести актуальное описание системы в монолитном документе необходимо . Версионирование такого документа - признак хорошего тона, но является делом вкуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 22:07 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
MyNiGoosoftwarer"текущее тз" никто не будет толком читать и использовать. А следовательно - это производство той самой мусорной, дезориентирующей документации. [...] А вопрос "ради чего" как висел, так и висит. ребята, как же так. Буквально сейчас имею ситуацию, что требования фактически ведутся в Jira в виде багов, запросов на фичи, тасков и т.п. Пришел новый сотрудник, ему нужно знакомиться с системой, а собрать описание функционала какого-нибудь модуля невозможно, потому что оно раскидано по сотням тикетов в Jira. Я считаю, что вести актуальное описание системы в монолитном документе необходимо . Версионирование такого документа - признак хорошего тона, но является делом вкуса. правильнее - вести требования в базе, а документ генерировать при необходимости иначе замучаетесь на управлении изменениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 22:15 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
MyNiGooБуквально сейчас имею ситуацию, что требования фактически ведутся в Jira в виде багов, запросов на фичи, тасков и т.п. Пришел новый сотрудник, ему нужно знакомиться с системой, а собрать описание функционала какого-нибудь модуля невозможно, Пришёл новый сотрудник - и в случае монолитного документа он как раз и огребёт все ошибки, которые в него заложены. Просто потому, что за два года, прошедших с предыдущего существенного изменения модуля - он первый, кто это читает - и вполне вероятно, последний. При этом практически наверняка куча мелких изменений таки прошла "через таски в джире" не затронув этого монолита, поэтому, натыкаясь на расхождение написанного в ТЗ и наблюдаемого в реальности, этот новый сотрудник не сможет решить, то ли это ошибка, то ли неизвестная ему и неописанная деталь. Монолитный документ... раз ушла речь зашла о личном опыте, год назад я наблюдал такой "монолитный документ ТЗ". Высшей точкой бардака была упомянутая в нём функция - про которую никто не знал, кто и зачем её вписал, никто толком не понимал, как она должна работать (и ТЗ этого не расшифровывало), никто не мог высказать хотя бы обоснованное мнение, что же там должно происходить - но заказчик собирался принимать проект "по пунктам", и чтобы сдать, её надо было сделать. В итоге сделали практически пустую кнопку с правильным названием, так и сдали. Думаю, с тех пор её никто и не нажимал. Использовать трекер, безусловно, стоит, но вести в нём всю документацию по достаточно крупному проекту - конечно, нельзя. Напомню то, о чём я говорил выше - задачи в трекере, по крайней мере связанные с достаточно существенными требованиями, должны ссылаться на постановку, при необходимости расшифровывать и дополнять её. Но для этого совершенно незачем иметь постановку в виде монолита; удобнее всего держать её в вики. И "новый сотрудник" при этом довольно легко входит в проект. Может быть не так хорошо, как в случае "монолит на блюдечке", но с гораздо меньшими затратами, нежели требуется на поддержание монолита в адекватном состоянии. И напомню ещё раз, всё зависит от проекта. Для проекта в 5 разработчиков и проекта в 500 разработчиков требуется разный уровень документированности. Для заказной системы под конкретного заказчика требуется другой уровень документации, нежели для тиражируемого продукта. Итп. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2012, 22:26 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
Ну да, softwarer прав. Разных стратегий сочетания Jira и Confluence (эээ, т.е. issue-tracker и wiki-system, но линейка от Atlassian уже давно практически корпоративный стандарт) можно придумать дофига и они сильно зависят от процессов в конкретной компании. Например, если все сделано более менее стандартно и есть цепочка "задача-бизнесанализ-UC" (в вики), на основе UC формируются работы в Jira и правка UC всегда находит отображение в Jira, то вполне можно иметь и текущее состояние системы (например, при сдаче релиза в beta-testing копировать соответствующие UC в отдельную иерархию) и управление изменениями (история изменения соответствующего UC). Да и по истории "задачи" обычно понятно, а зачем сделана такая-то "кнопочка". Но, честно говоря, мне ни разу не приходилось выяснять, "а зачем сделана данная кнопочка и реально ли она нужна". При наличии вопросом обычно выяснялось, что если не понятно "а нафига", значит - не нужна :) Да и трекинг изменений в реальности ни разу не требовался :) Впрочем, мой опыт работы с проектами где-то до D50 по Фаулеру (т.е. над проектом работает до 50 человек, проект не критической сложности). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 03:44 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
InkelyadsoftwarerНу в первую очередь оно означает, что в репозитории лежат бинарные файлы, с которыми особо ничего не сделаешь. Я наверняка чего-то не понимаю, но я, например, никогда не слышал об инструменте, который позволил бы мне сравнить две версии Visio-диаграммы и показать различия между ними :) Если поставить себе такую задачу, то можно выбрать себе текстовые форматы хранения исходников документации. А документирование в Visio как раз тем и плохо, что эти файлы сравнить нельзя. Модели рисуем в PowerDesigner. Репозиторий общий обеспечивает он же. Модели требований с импортом и экспортом в мсофис обеспечивает он же. Сравнение моделей (схем в том числе) обеспечивает. Расширяемость супер. Стоит дорого :(. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 08:19 |
|
Как по-умному вести документацию?
|
|||
---|---|---|---|
#18+
softwarer При этом практически наверняка куча мелких изменений таки прошла "через таски в джире" не затронув этого монолита, поэтому, натыкаясь на расхождение написанного в ТЗ и наблюдаемого в реальности, этот новый сотрудник не сможет решить, то ли это ошибка, то ли неизвестная ему и неописанная деталь. softwarerНо для этого совершенно незачем иметь постановку в виде монолита; удобнее всего держать её в вики. Так вики тоже страдает той проблемой, что в первой цитате озвучена. Ее же тоже в актуальном состоянии поддерживать надо. И текущее состояние вики - это и есть тот самый "монолит" под VC. Только не в виде исходников документации + система контроля версий, а в виде базы данных + вики-движок. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2012, 10:06 |
|
|
start [/forum/topic.php?fid=33&msg=38047493&tid=1547758]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 150ms |
0 / 0 |