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

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



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-сообщества в целом есть задача хотя и очень интересная, но неблагодарная. Такое количество людей никогда не будет действовать по единым правилам, что прямо противоречит смыслу стандартизации.

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

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

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

В ГПК может появиться глава о Службе финансового уполномоченного

Служба финансового уполномоченного (омбудсмена) подготовила концепцию внесения изменений в Закон о финуполномоченном и Гражданский процессуальный кодекс (ГПК).

Аутстаффинг

Аутстаффинг иностранного персонала: мифы и реальность 

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

Аутстаффинг иностранного персонала: мифы и реальность 
Самозанятые

Почему опасно работать с самозанятыми? Как правильно оформить сотрудника

«Не работайте с самозанятыми!» — об этом кричат из каждого «утюга». Компании начали бояться платить самозанятым, даже в случаях, когда заключение договора с самозанятым обосновано. Хотя на самом деле, главное — не злоупотреблять.

Почему опасно работать с самозанятыми? Как правильно оформить сотрудника

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

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

Учет основных средств на УСН: гайд для бухгалтера

Применяя УСН «доходы минус расходы», можно уменьшить налоговую базу на стоимость основных средств, приобретенных или созданных своими силами, включая затраты по реконструкции и модернизации (пп. 1 п. 1 ст. 346.16 НК). Разберемся, какие действия помогут бухгалтеру правильно учесть основные средства для расчета налога.

Учет основных средств на УСН: гайд для бухгалтера

Число легальных производителей БАД увеличилось на 86%

Число регистраций в системе «Честный ЗНАК» в несколько раз превысило количество выданных свидетельств о государственной регистрации производителей и импортеров биологически активных добавок.

Как получить субсидии при найме сотрудников

За трудоустройство некоторых категорий работников компания может получить до 75 000 рублей за каждого сотрудника. Разбираемся, что для этого нужно сделать, и какие ограничения для работодателей и сотрудников нужно учитывать. 

Как получить субсидии при найме сотрудников
Опытом делятся эксперты-практики, без воды

Обучение управлению бизнес-процессами: 15 курсов в 2024 году

Бизнес-процессы — это повторяющиеся действия внутри компании, например: обработка заявки от клиента, прием на работу нового сотрудника или согласование договора с юристом. Эффективность работы организации напрямую зависит от того, насколько правильно разработаны и описаны алгоритмы операций и исполняются ли они. Научиться внедрять системный подход и управлять бизнес-процессами можно на специальных курсах.

Обучение управлению бизнес-процессами: 15 курсов в 2024 году
Банки

Банки начали отказываться от рекламы кредитов

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

Маркетинг

Контент-маркетинг: зачем он нужен вашему бизнесу

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

Контент-маркетинг: зачем он нужен вашему бизнесу
ПСН

ИП на ПСН с пожертвования платит НДФЛ

Если ИП применяет ПСН, он освобожден от НДФЛ в части бизнес-доходов, по которым применяется ПСН.

Охрана труда

Успей заявить в СФР о возмещении средств, потраченных на охрану труда

Многие работодатели сетуют на большие траты денежных средств на охрану труда. Это и медосмотры, и спецоценка, и покупка СИЗ и пр. Государство, понимая насколько внимательно нужно относиться к сохранению жизни и здоровья работников в процессе трудовой деятельности, готово поощрять работодателей посредством компенсации части потраченных ими средств.

Успей заявить в СФР о возмещении средств, потраченных на охрану труда

📛Офис больше не нужен? Гибридная удаленка

Как эффективно управлять сотрудниками на удаленке? Возможно ли такое в принципе и какие инструменты для этого нужны? Разбираемся на примере бухгалтерской фирмы.

📛Офис больше не нужен? Гибридная удаленка

62% самозанятых хотят увеличить лимит доходов для применения НПД

Сейчас самозанятые могут платить налог на профессиональный доход (НПД), если их заработок за год не превышает 2,4 млн рублей. Не все укладываются в этот лимит.

Как избежать конфликтов с налоговой? Научим дружить с ИФНС на новом курсе

Чтобы вы больше не терялись при каждом требовании налоговой и не боялись судебных тяжб, мы вместе с налоговым адвокатом записали практический курс «Требования ИФНС в 2024: как бухгалтерам отвечать». Вы узнаете, как защитить свои права при взаимодействии с налоговой инспекцией.

В прошлом году 75% малоимущих благодаря соцконтракту повысили свои доходы

За период 2021-2023 годов доля граждан, у которых доход после реализации социального контракта превысил величину регионального прожиточного минимума, увеличилась с 22,5% до 41,1%.

Бесплатно с Отчетность

Формы и сроки сдачи отчетности за полугодие 2024 года

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

Формы и сроки сдачи отчетности за полугодие 2024 года
3
IT-компании

IT-компании на УСН тоже имеют право на пониженные взносы

Аккредитованные IT-компании имеют право на льготу в виде пониженных взносов, если профильный доход составляет не менее 70%. Но у бизнеса есть некоторые сомнения по поводу этой нормы.

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

Знание управленческого учета помогает бухгалтеру увеличить стоимость своей работы

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

Проверки

🍴 ФНС подключается к поиску нелегальных пищевых предприятий и общепита. Оценка налогового юриста

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

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

По негосударственной пенсии тоже можно получить имущественный вычет НДФЛ

Пенсионер имеет право на получение имущественного вычета по НДФЛ на покупку квартиры и ипотечные проценты, если у него есть доход, облагаемый НДФЛ.