Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[SnowOne 2023] Семён Факторович: Нужно ли писать документацию?

jugnsk
March 17, 2023
55

[SnowOne 2023] Семён Факторович: Нужно ли писать документацию?

Все мы любим хорошо задокументированные API и понятную документацию к языкам, библиотекам и фреймворкам.

Но вот писать документацию никто не любит.

Мы поговорим вот о чем:
1) Зачем нужна документация и что будет, если ее не будет.
2) Как рождается хорошая документация и почему ее сложно писать.
3) Должен ли разработчик писать документацию и если да, то как этому научиться.
4) Откуда взялась профессия технического писателя и стоит ли о ней задумываться выпускнику IT-специальности.

jugnsk

March 17, 2023
Tweet

More Decks by jugnsk

Transcript

  1. • Семён Факторóвич (Новосибирск) • Выпускник ФФ НГУ и ФИТ

    НГУ • Разработчик → технический писатель • Занимаюсь технической документацией с 2012 года • С 2018 руковожу компанией документационного консалтинга Кто здесь?
  2. • Семён Факторóвич (Новосибирск) • Выпускник ФФ НГУ и ФИТ

    НГУ • Разработчик → технический писатель • Занимаюсь технической документацией с 2012 года • С 2018 руковожу компанией документационного консалтинга Documentat Кто здесь?
  3. Пишем документацию на заказ, внедряем своих техписателей в чужие команды

    Учим техписателей и разработчиков писать документацию documentat.io
  4. 1. Рассказывает, как пользоваться программной системой или как она устроена.

    API, сигнатуры методов в библиотеке, перечень ключей CLI… Документация: основные черты
  5. 2. Не продает, не рекламирует, не убеждает купить. Нейтрально излагает

    факты о системе или учит ей пользоваться. Документация: основные черты
  6. 3. Разрабатывается той же командой, что создает программную систему. Ответ

    на StackOverflow или статья на Хабре — не документация. Документация: основные черты
  7. 1. Javadoc — документация, но только когда он собран в

    HTML и доступен отдельно от кода. И это вовсе не единственный и не самый популярный вид документации. Неожиданные выводы
  8. Комментарии как часть культуры кодирования … Внятное именование переменных Следование

    стайлгайду Разумная обработка ошибок Понятные комментарии Использовать исключения так, как завещал Кучук …
  9. • Основные принципы устройства и дизайна кода • Разбивка по

    компонентам, процессам, потокам исполнения… Архитектурная документация
  10. • Основные принципы устройства и дизайна кода • Разбивка по

    компонентам, процессам, потокам исполнения… • Используемые алгоритмы Архитектурная документация
  11. • Основные принципы устройства и дизайна кода • Разбивка по

    компонентам, процессам, потокам исполнения… • Используемые алгоритмы • Data flows Архитектурная документация
  12. • Основные принципы устройства и дизайна кода • Разбивка по

    компонентам, процессам, потокам исполнения… • Используемые алгоритмы • Data flows Архитектурная документация
  13. • Основные принципы устройства и дизайна кода • Разбивка по

    компонентам, процессам, потокам исполнения… • Используемые алгоритмы • Data flows Никогда не автогенерится, всегда пишется вручную Архитектурная документация
  14. • Да, но архитектурная документация читается быстрее • А еще

    код может не быть источником истины (баги!) Код — лучшая документация?
  15. • Да, но архитектурная документация читается быстрее • А еще

    код может не быть источником истины (баги!) • А еще архитектурный документ может содержать инфу, которой нет в коде Код — лучшая документация?
  16. • Да, но архитектурная документация читается быстрее • А еще

    код может не быть источником истины (баги!) • А еще архитектурный документ может содержать инфу, которой нет в коде • Почему использован дизайн-паттерн А, а не Б Код — лучшая документация?
  17. • Да, но архитектурная документация читается быстрее • А еще

    код может не быть источником истины (баги!) • А еще архитектурный документ может содержать инфу, которой нет в коде • Почему использован дизайн-паттерн А, а не Б • Как всё было реализовано раньше и почему мы решили провести рефакторинг Код — лучшая документация?
  18. • Да, но архитектурная документация читается быстрее • А еще

    код может не быть источником истины (баги!) • А еще архитектурный документ может содержать инфу, которой нет в коде • Почему использован дизайн-паттерн А, а не Б • Как всё было реализовано раньше и почему мы решили провести рефакторинг • Почему выбран именно этот язык программирования или технологический стек Код — лучшая документация?
  19. Bus factor • Сколько инженеров должны попасть под автобус, чтобы

    работа команды полностью остановилась? • 1 — плохо • N (где N равен размеру команды) — хорошо
  20. • «Документация покрывает от силы 40% кодовой базы» • «У

    нас вообще нет документации, хотя все понимают, что она нужна» Что на самом деле происходит в индустрии
  21. • «Документация покрывает от силы 40% кодовой базы» • «У

    нас вообще нет документации, хотя все понимают, что она нужна» • «Документация есть, но в последний раз она обновлялась при Медведеве» Что на самом деле происходит в индустрии
  22. 1. Всегда некогда. 2. Непрофильная активность для инженеров. 3. Писать

    слова и фразы вообще сложно. Сложнее, чем код. Почему документации нет?
  23. 1. Всегда некогда. 2. Непрофильная активность для инженеров. 3. Писать

    слова и фразы вообще сложно. Сложнее, чем код. 4. Понятно описывать сложные вещи — огромный труд (сходство с преподаванием). Почему документации нет?
  24. 1. Всегда некогда. 2. Непрофильная активность для инженеров. 3. Писать

    слова и фразы вообще сложно. Сложнее, чем код. 4. Понятно описывать сложные вещи — огромный труд (сходство с преподаванием). 5. Для кода есть паттерны и best practices. Для документации их нет. Почему документации нет?
  25. • Инженерам нужно перестать писать документацию • И нанять для

    этого специального человека Что же делать?
  26. • Любит писать, получает от этого удовольствие • Любит объяснять

    и доносить информацию Технический писатель
  27. • Любит писать, получает от этого удовольствие • Любит объяснять

    и доносить информацию • Пишет емко и понятно Технический писатель
  28. • Общение с инженерами • Самостоятельное изучение продукта (подергать API,

    попользоваться библиотекой) Технический писатель: как получает инфу?
  29. • Общение с инженерами • Самостоятельное изучение продукта (подергать API,

    попользоваться библиотекой) • Чтение кода Технический писатель: как получает инфу?
  30. Технический писатель • Технический бэкграунд Computer science, программная инженерия, опыт

    программирования… • Гуманитарная жилка Хороший письменный стиль, умение объяснять…
  31. • Два высших образования? • На самом деле хотя бы

    одно • Гуманитарий, который самостоятельно добрал айтишной фундаментальщины Технический писатель
  32. • Два высших образования? • На самом деле хотя бы

    одно • Гуманитарий, который самостоятельно добрал айтишной фундаментальщины • Технарь, который [почему-то] любит и хочет писать буквы и слова Технический писатель
  33. • Молодая, набирающая популярность IT-профессия • Компании стремительно осознают важность

    документации • Техписателя с айтишным образованием готовы оторвать с руками Технический писатель как карьерная опция
  34. • Университетских специальностей [почти] нет • Онлайн-курсы • documentat.io/courses •

    IT-образование и умение внятно писать = позиция мидл-техписателя в большинстве российских компаний Технический писатель: где поучиться?
  35. • Скорее всего, вам придется писать документацию • Стоит немного

    поучиться паттернам документирования Не хочу в техписатели, хочу писать код
  36. • Скорее всего, вам придется писать документацию • Стоит немного

    поучиться паттернам документирования • и вообще научиться эффективно складывать слова в предложения Не хочу в техписатели, хочу писать код
  37. «Взгляд на документацию с точки зрения бизнеса» What nobody tells

    you about documentation Что почитать разработчику о документации
  38. «Взгляд на документацию с точки зрения бизнеса» What nobody tells

    you about documentation c4model.com и arc42.org, методологии документирования архитектуры Что почитать разработчику о документации
  39. Заменит ли ChatGPT техписателей? • Документация опирается на закрытое знание

    о проприетарной системе • Вы пускаете чужой AI в вашу кодовую базу?
  40. Заменит ли ChatGPT техписателей? • Документация опирается на закрытое знание

    о проприетарной системе • Вы пускаете чужой AI в вашу кодовую базу? • Если да, то, скорее всего, он уже пишет код за вас
  41. • Документация сохраняет знания о системе и удешевляет обмен ими

    • Техписатель — специалист, снимающий документационную нагрузку с инженеров • Любите писать? Приходите в эту профессию • Поучитесь у экспертов: documentat.io/courses Подытожим