Технический автописатель

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



Hare.ru @ КБ

Никита Зайцев (WildHare)

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

"Словарь IT-терминологии"

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

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

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

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

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

Понятно, что речь идёт о технической, внутренней документации, предназначенной исключительно для разработчиков и проектировщиков. User's manual -это отдельная песня и здесь мы её петь не будем.

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

Вопрос, как заставить программистов документировать код, поддерживать документацию в актуальном состоянии, и чтобы при этом проекту не наносился ущерб, только кажется сложным. Ответ прост, как мычание – документация должна быть частью кода. Выбрасываем код, выбрасывается и документация к нему. Добавляем -добавляется. Переписываем – нужно быть просто страшным лентяем, чтобы не переписать заодно и пару строчек комментария. А страшных лентяев немного, их можно выявлять и давить, пока маленькие.

Технический способ решения проблемы также давным-давно придуман. Посмотрите на Visual Studio .NET -M$ понадобилось всего-то семь версий среды разработки, чтобы додуматься до форматированных комментариев, которые служат основой для генерации документации к проекту. И, конечно, в M$ это сделали с шиком: XML-тэги, автоподстановки, эргономика. А вот в Perl такая система "документации-в-коде" (POD) существует уже лет сто, хоть и без шика, но вполне в рабочем виде.

К чему я веду этот длинный заморочный базар? К тому, что подобная концепция очень хорошо вписывается в работу с V7. Ситуации, когда над одной конфигурацией в разное время работают разные люди является прямо-таки стандартной. И не только у франчайзи. Кто, что и когда делал? Как связаны модули друг с другом? Для чего нужна та или иная глобальная функция? Чтобы ответить на этот вопрос, нужно читать код.. А код каждый кодер пишет по-своему. Если перенести на бумагу маты, сложенные одними кодерами на других в процессе разбора логики поведения модулей, то получится лист длиной с пару экваторов, если не больше.

А ведь документировать код не просто, а очень просто:


// HEADER BEGIN
//
// Василий Пупкин
// 2002-07-23
// Служебная функция пересчёта курса валют
// На входе валюта (справочник), дата (или документ)
// и режим (1 - из рублей, 2 - в рубли)

//

// HEADER END
Функция глПересчетВалюты (
. . .
Набивать тэги руками никто не заставляет: механизм шаблонов V7 для того и нужен, чтобы любые повторяющиеся куски вводить набором двух-трёх букв.

Вытащить из MD все "документальные" куски и построить на их основе структурированное описание конфигурации -это уже дело техники, можно, скажем, взять Compound и написать "докопостроитель" прямо на V7. Притом можно не только строить документацию по форматированным комментариям, но и проверять, какие функции и модули остались без описания, в каких описаниях допущены структурные или синтаксические ошибки, и т.д. По результатам проверки можно тут же (благо это всё происходит внутри V7-базы) выписать штраф ответственному за проект сотруднику ;-).

Можно документировать не только заголовки функций и модулей, а также сложную логику, ветвления, взаимосвязи. И затем на основе всего этого строить документацию с несколькими уровнями детализации, в цветах и красках. Ответить на вопрос "если я вот в этом месте слегка всё раздолбаю, что грохнется в других местах?" будет значительно проще, имея в руках более продвинутый инструмент, нежели "поиск во всех текстах". Честное слово.

На самом деле, никакой фантастики:

  • Соглашение о формате комментариев (в виде st-шаблона)
  • Соглашение об именовании объектов
  • Рекомендации по документированию
  • Инструментарий для извлечения документации из MD (в виде набора ert)
И любой сотрудник Вашей конторы, придя к любому клиенту, в считанные минуты получит полное техническое описание конфигурации и сможет быстро сориентироваться в ситуации, не заставляя клиента оплачивать часы чтения кода с умным лицом.

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

Вот разработка стандарта для V7-сообщества в целом есть задача хотя и очень интересная, но неблагодарная. Такое количество людей никогда не будет действовать по единым правилам, что прямо противоречит смыслу стандартизации.

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

Но вот для оригинальных конфигураций концепция автодокументирования будет, как мне кажется, отличной заменой традиционному "вордописанию". Причём не только для тиражных, но и для заказных тоже. Грамотно документированный код поможет разработчику избежать традиционного вопроса "а что же я хотел сказать этой вот функцией". . .

Начать дискуссию

Глава Минфина: в России нужна «донастройка» налогов

Антон Силуанов готов предложить бизнесу идеи по модернизации фискальной системы.

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

Брокерские компании восстановились после убытка в 2022 году

Известно, что брокеры получили 33,7 млрд рублей чистой прибыли за 2023 год и стали больше зарабатывать на услугах по размещению ценных бумаг.

Бухгалтеры не знают элементарных вещей!

20 лет я главный бухгалтер. Большую часть из них работала в Хабаровском крае. С проблемой ниже, конечно, сталкивалась, но не сплошь, а вопрос с контрагентом решался быстро и безболезненно.

Бухгалтеры не знают элементарных вещей!
Лучшие спикеры, новый каждый день

Еще один великолепный МИФ о техподдержке СБИС

Пишу в техподдержку СБИС так мол и так, почему Уведомление не доходит до ФНС?

Еще один великолепный МИФ о техподдержке СБИС

Обязательное применение МЧД СФР с 11 марта 2024 года: кто может отчитываться без доверенности, переходный период

СФР с 11 марта 2024 года начал принимать отчеты от страхователей в электронном виде с машиночитаемыми доверенностями — МЧД СФР. Теперь документы больше не получится сдать на сайте фонда с помощью скан-копий бумажных доверенностей. Разбираемся, что поменялось для страхователей и как сейчас представлять отчеты в СФР.

Обязательное применение МЧД СФР с 11 марта 2024 года: кто может отчитываться без доверенности, переходный период

Календарь вебинаров для бухгалтера в мае 2024. Платные и бесплатные

Собрали для вас анонсы вебинаров на май 2024 года.

Опытом делятся эксперты-практики, без воды

Уменьшение патента на взносы, если у ИП несколько патентов

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

Уменьшение патента на взносы, если у ИП несколько патентов

💳 МВД хочет ввести уголовную ответственность за передачу банковских карт незнакомцам. Адвокат: это не способствует снижению количества преступлений

Ведомство уже подготовило законопроект, который позволит отправлять за решетку тех, кто помогает мошенникам выводить украденные деньги.

Корпоративная социальная ответственность. Что это такое

Любой бизнес не может существовать в изоляции от общества, так как является его полноценным участником. Это относится как к крупным корпорациям, так и к малым или средним предприятиям.

Корпоративная социальная ответственность. Что это такое

Как выбрать надежного исполнителя для внедрения 1С

Разберем, где компания, которая собирается внедрить 1С, может найти исполнителя, и на что обращать внимание при выборе.

Как выбрать надежного исполнителя для внедрения 1С

Сдать декларацию по УСН можно через личный кабинет ИП: как

Быстро и бесплатно сдать декларацию по УСН могут ИП, у которых есть квалифицированная электронная подпись.

🐟 Давно пора было, тут есть очевидные проблемы: реакция на введение маркировки икры

С 1 апреля и до 1 мая производители и импортеры икры должны быть зарегистрированы в системе «Честный ЗНАК» и полностью настроить все процессы по оплате кодов, подаче сведений в систему маркировки об обороте и выводу из него этой продукции.

Миникурсы, текстовые и видеоинструкции для бухгалтеров
Банки

ЦБ сможет устанавливать реквизиты распоряжения клиента в национальной платежной системе

Регулятор установит формы распоряжений, по которым клиенты смогут получать денежные переводы по картам «Мир» и через СБП.

🎉 Новый сервис «Клерк.Консультации»: задайте вопрос эксперту и получите ответ в течение нескольких часов

Если вы столкнулись со сложной ситуацией на работе и нужен срочный совет, то обратитесь к экспертам «Клерка». В течение нескольких часов вы получите подробный ответ с рекомендациями. Выберете пакет консультаций и получите доступ к базе проведенных консультаций — более 20 тыс. ответов экспертов на разные вопросы в вашем распоряжении.

ФСБУ

Правила ФСБУ могут влиять на расходы по УСН

Налоговый учет на бухгалтерский не влияет, а бухучет на налоговый может. Поэтому ряд расходов на упрощенке зависит от того, как их учли в бухгалтерском учете. 

Неочевидные риски для всех участников схем по дроблению бизнеса

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

⏰ Уже завтра вы узнаете, как защитить себя при налоговых проверках

Получите советы адвоката и построите эффективную линию защиты своих прав при налоговых проверках.

Как вести учет ВЭД в 2024 году: изменения, документация и налоги

Бухгалтерский учет ВЭД фиксирует все действия, которые связаны с экспортом, импортом товаров, капитала или услуг, а также там отражается статус важных документов — это контракты, налоговые и таможенные декларации, инвойсы и т. д.

Иллюстрация: Вера Ревина/Клерк.ру
ВЭД

Россия начнет торговлю с Ираном

Страны ЕАЭС будут торговать с Ираном: снимут ограничения на ввоз товаров, а также установят специальный режим для экспортеров.

Интересные материалы

Алкодекларация: как и когда подавать, нюансы, полезные советы

Предприятия и ИП — участники алкогольного рынка должны регулярно подавать алкодекларации в соответствующие ведомства. Рассказываем, что это за отчет, как и куда он подается в 2024 году, в какие сроки.

Алкодекларация: как и когда подавать, нюансы, полезные советы