Серия «Грол-о-работа»

Успешный успех: как я стал айтишником без образования в 29 лет

Всем привет! Я работаю техническим писателем почти три года. Хочу поделиться историей о том, как я смог войти в IT без опыта программирования и профильного образования.

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

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

О чём пойдёт речь

В статье я расскажу важных темах на своём собственном примере:

  • Почему не пошёл в IT сразу

  • Гуманитарное образование и первый опыт работы

  • Как я впервые попал в IT и как через месяц меня уволили

  • Как загорелся идеей стать техническим писателем, что за профессия

  • Собственные ощущение от новой работы

Почему стал гуманитарием

В школе я всегда был более дружен с компьютером, чем с одноклассниками. Когда у нас только появился интернет, я скачал шаблоны HTML и CSS и склепал на них свой первый сайт. Заменил картинки и текст на свои и залил в продакшен.

Такие маленькие детали могут формировать будущее. Если вы в детстве пробовали работать с HTML/CSS, это может стать хорошей отправной точкой для будущей карьеры фронтэдера.

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Если бы уделял больше внимания своим увлечениям, я мог бы поступить, например, в ИТМО, сейчас бы работал «на фронте». Но в 2007 году я даже не знал про существование IT-сферы, тем более не был в курсе, что такая работа может быть потенциально доходной и этому где-то учат.

Зато мне всегда нравился английский и очень сильно хотел быть переводчиком. Поэтому поступил в РГПУ, Выборгский филиал и вышел оттуда с дипломомфилолога-учителя английского языка.

Первая работа по специальности

Моей первой работой был «Лингваториум» — это онлайн-тренажёр, который позволяет научиться английскому при помощи разнообразных языковых упражнений. Так вот, вопреки расхожему мнению не все гуманитарии работают на кассе в Мак… Вкусно — и точка.

Любой первый опыт работы — ценное приобретение, это целая строчка в резюме. Даже если работа непрофильная, её всё равно можно повернуть профильным краем. Например, так:

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

  • Для переводческого резюме я писал «составлял упражнения на основе англоязычных учебников, переводил упражнения на русский».

  • Для резюме технического писателя: «изучал учебные материалы для технических специальностей, при необходимости менял формулировки».

Этим всем я хочу сказать, что любая специальность — не приговор, а скорее наоборот. Особенно в начале карьеры.

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

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Башня, когда я пришёл

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Башня на момент моего ухода

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

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

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

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

Брошенная аспирантура может плохо сыграть в резюме. Если спросят, лучше сказать честно: «мне не понравилось, что акцент не на исследовательской деятельности, а на преподавании».

Работа мечты (уволили через месяц)

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Дед мороз — практически портрет гендира компании

От этой работы у меня остался сувенир — дед мороз, подаренный генеральным директором. После ухода мне казалось, что я ни к чему не пригоден. Был переводчиком — ушёл. Был менеджером по ВЭД — ушёл. Пора двигаться куда-то дальше.

Мне нравилось переводить, нравилось разбираться в деталях и писать тексты. «Ты не думал стать техническим писателем, тебе бы подошло», сказал мне как-то знакомый. И я загорелся идеей, начал читать, изучать вакансии, требования, даже начал откликаться на вакансии, но никто не отвечал на отклики.

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

Ещё один вариант — найти смежную профессию, чтобы поддержать свой доход. Так я решил стать копирайтером. Это ведь почти то же самое, что технический писатель (нет). Компания на фасад выглядела классно: современный открытый офис, приятные рабочие места. Я уже успел обрадоваться тому, что я теперь в айти, коллеги — классные ребята разработчики, в таком кругу и тоже очень быстро стану классным.

Сразу при оформлении начались проблемы:

  • Серая на 2/3 зарплата, к тому моменту от серой з/п я уже устал.

  • Оформление растянулось на неделю, тянули с подписанием документов.

  • Задачи и обязанности не были понятны. Не было вводного инструктажа, не было понятно, для чего я делаю свою работу и каков её результат, соответственно, удовлетворения от работы тоже не было

Целый месяц я креативил и генерил идеи изо всех сил, а потом меня уволили без объяснения причин. Об увольнении я узнал по «третьей зарплате за месяц» с подписью «расчёт при увольнении». Первая попытка стать айтишником провалилась.

Ещё одна строчка, которая не украсит резюме. Исправить ей можно тремя способами:

  1. Во-первых, можно её не указывать, потому что это слишком маленький период.

  2. Во-вторых, всегда можно объяснить причину.

  3. В-третьих, обязательно использовать этот опыт в свою пользу. Я работал с YouTrack, Markdown, работал с IT-продуктом и писал околоайтишные тексты как, например, политика использования персональных данных. Хороший и полезный опыт.

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

На этой работе я окончательно полюбил Петроградскую сторону

После увольнения я решил заняться своим портфолио и по-настоящему углубиться в изучение профессии технического писателя. Я откликнулся на вакансию Selectel, где писал заказные технические статьи. Это тройной профит: я писал про сетевую модель, про гит, LVM, тем самым повышая свою подкованность в сфере информационных технологий, нарабатывал портфолио и получал доход.

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Первая версия сайта выглядела чуть похуже, на скриншоте уже вторая. Хочется написать третью, но всё руки не доходят.

Источник: vladimir-markiev.name

Работа на Selectel вдохновила создать свой сайт. Только в этот раз я написал его с нуля на чистом HTML и CSS. Получилось гораздо лучше, чем первый сайт в старшей школе. Свой собственный сайт повышает шансы быть замеченным и наглядно демонстрирует навыки. Благодаря всем вложенным в поиск новой работы усилиям, я получил сразу несколько оферов, даже пришлось выбирать между ними.

Чем занимается технический писатель?

Столько рассказал про путь, но так и не пояснил, чем занимаюсь. Технический писатель — это профессия на стыке. Он создаёт документацию для IT-продуктов. Может создавать документацию, например, в «ворде» или в специальных программах с использованием языков разметки. К сожалению, образование технического писателя нельзя получить в каком-то официальном ВУЗе. Можно либо пройти обучение на платных курсах, либо самостоятельно прийти в профессию.

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

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Логотип языка разметки DITA

Компания, в которой я работаю уже прошла путь от документации в «ворде» и на момент моего прихода всё уже было «по-взрослому»:

  • Docs as code в формате DITA

  • Исходники загружаются в git

  • DITA-файлы конвертируются в PDF

Если вы только начинаете свой путь, то на собеседовании будет очень уместно спросить про docs as code, текущий формат документации, а также git. Если вы не разбираетесь в вопросах, то их изучение будет хорошей отправной точкой.

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

Как ощущаю себя в новой профессии

Успешный успех: как я стал айтишником без образования в 29 лет Карьера, Успех, Профессия, Удаленная работа, Telegram, Поиск работы, Опыт, Саморазвитие, Длиннопост, Картинка с текстом

Мой тип карьерной лестницы

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

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

В документации тоже встречаются ошибки. Сперва было сложно, но теперь я научился воспринимать такие ошибки как потенциал для улучшения, ведь это не что-то личное.

Вместо итога

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

Мне очень нравится профессия технического писателя, я не разочаровался в своём выборе. Даже хейт в комментариях не убедит меня в обратном.

А с каким образованием вы пришли в IT?

P.S. Есть такой стереотип, что все айтишники носят бороды. Но я не видел таких стереотипичных айтишников с бородой у нас в компании или в других. Да и у самого борода никогда не росла.

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

Показать полностью 10

На старт, внимание, патч! Как реализовать онлайн-документацию для накопительных изменений

На старт, внимание, патч! Как реализовать онлайн-документацию для накопительных изменений

История одного пикантного собеседования

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

Нашёл я одну вакансию: зарплата приличная, транспортная доступность хорошая. В общем, все условия. Описание отсутствовало, как это бывает у большинства объявлений о поиске переводчика.

Позвонил, уточнил детали, сказали, что "нужен перевод онлайн-чата". Работка не запарная, я согласился и записался на очное собеседование.

Собеседование проходило где-то на Малодетскосельском проспекте. Это в центре Питера, в историческом здании. Даже вход был - не какой-то подъезд, а настоящая парадная - огромная лестница, невероятное пространство удивительной чистоты для старого фонда.

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

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

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

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

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

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

Вот здесь песня в тему:

А вот здесь мой телеграм.

Показать полностью 1

Сравнение возможностей AsciiDoc и DITA

Всем лучи добра! Меня зовут Сергей Карасёв, но вы можете звать меня просто Саня. Я работаю техническим писателем в одной компании. Расскажу вам о двух Docs as Code инструментах. На случай, если вы делали документацию в ворде или ещё где-то, а теперь решили отделить форматирование от документации и захотели "чтобы было чисто!". Побуду сегодня вашим Мистером Пропером.

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

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


То есть я работал с Дитой, и я работал с AsciiDoc, поэтому в какой-то степени могу судить и сравнивать. Сравню аналогичные функции, расскажу об отличиях, плюсах и минусах каждого формата и т.д. Короче, всё чётко и по понятиям, как это делают у нас в Купчино.

Документация


DITA

Нельзя стать священником, не прочитав Библии.

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

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


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


Хочется чего-то более человечного? Есть свободное толкование Библии с примерами - Learning Dita. Очень помогло, когда я хотел лучше понять Диту.

AsciiDoc

Есть только одна Библия - сайт docs.asciidoctor. На сайте задокументирован весь синтаксис с очень удобной рубрикацией. Не знаете, как это сделать -- используйте поиск по сайту.


Есть ещё несколько мест, где можно найти документацию, но они либо неофициальные, либо устаревшие.


Я далеко не сразу нашёл Docs.AsciiDoctor. Кто победил? Пусть будет ничья.

DITA:AsciiDoc 1:1

Работа с исходниками

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

DITA

Исходники - обычный текст, который можно редактировать в блокноте. Проблема в том, что это XML с очень строгой структурой.


Иными словами: нужно иметь стальные... нервы, чтобы писать на дите в блокноте.

AsciiDoc

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


Иными словами: писать в блокноте можно без проблем.

DITA:AsciiDoc 1:2

Редакторы для работы с исходниками

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

DITA
Для Диты есть одна основная утилита - Oxygen. Это коммерческая и платная утилита. Есть ещё несколько утилит, но, честно говоря, они не очень удобные. Oxygen - это всё же канон. И стоимость у него каноничная.

А ещё новая версия несовместима со старой лицензией. Ну, разумеется.

AsciiDoc

Официального или единого редактора не существует. Но есть несколько редакторов, которые поддерживают AsciiDoc при условии установки плагинов:

- Atom - не пробовал, но выглядит норм, много плагинов.

- Visual Studio Code - с плагином AsciiDoc поддерживает синтаксис и большую часть функций.

- IntelliJ Idea - плагин поддерживает максимум функций и постоянно обновляется.

- AsciidocFX - утилита для работы с синтаксисом AsciiDoc. Поддерживает синтаксис.


Все утилиты для работы с Asciidoc абсолютно бесплатны.

DITA:AsciiDoc 1:3

Набор функций


Повторное использование

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

DITA

Все любят Диту за повторное использование кода.


Можно использовать целые топики или любые фрагменты. Но есть ограничения, в зависимости от разрешённых элементов. Oxygen не даст заимствовать запрещённые элементы, так что ошибиться сложно.


Заимствования делаются при помощи "conref" или "conref ... conrefend". Заимствовать один элемент или топик полностью - "conref". Заимствовать от и до - "conref ... conrefend".

AsciiDoc

Механизм повторного использования аналогичен Дите. Заимствовать один элемент или топик целиком - "include::topic.adoc[]". Заимствовать от и до чуть сложнее. Нужно создать два тэга:


//tag::magic-tag[]

Бла-бла-бла

//end::magic-tag[]


Затем заимствовать по тэгу: "include::topic.adoc[tags=magic-tag]".

DITA:AsciiDoc 2:4

Ключи

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

DITA

Сначала ключ нужно обозначить, затем задать ему значение, потом использовать его в нужных местах. Сделать это вне Oxygen будет очень сложно. Мне сложно сделать это даже в Oxygen, придётся рыться в заметках. Если честно, проще не использовать ключи.


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

AsciiDoc

Здесь ключи называются атрибутами, но суть та же. Определяешь в топике, потом используешь. Задаются атрибуты очень просто: ":attribute: значение". Использовать через "{attribute}", что заменится на "значение".


Область действия задать тоже можно, но не так просто в чистом AsciiDoc. Удобнее использовать Antora - генератор статических сайтов для AsciiDoc. Если не нужен сайт, то область действия ключей будет только в рамках топика или "карты".

DITA:AsciiDoc 3:5

Профили и фильтрация

DITA

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


На пальцах: это когда создаётся один документ на 15 страниц исходников.


Да, такой небольшой документ.

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

Из этих 15 страниц одной командой мы делаем три документа по 5 страниц каждый. При этом инструмент понимает сам, какие 5 страниц куда идут, и добавляет к каждому титульный лист и все остальные части.


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

AsciiDoc

В AsciiDoc тоже есть схожий механизм, но тут больше ручной работы. Сначала нужно задать атрибуты на каждой странице, которую мы хотим включить в руководство и т.д. и т.п.


На пальцах проще: задаём три атрибута, один на 5 страниц, второй на 5 страниц и третий на 5 страниц. Ну и все три атрибута на титульнике. Запускаем билд, получаем три разных документа из одного большого.


Это посложнее, чем у Диты.


Есть три вида условий:

- ifdef - если атрибут определён, контент включается.

- ifndef - если атрибут определён, контент не включается

- ifeval - если атрибут равен условию, контент включается. Условия типа равен, не равен, больше, меньше и т.д.


Кстати, даже Антора не сильно упрощает профилирование. В чём-то даже усложняет. Зато так можно настроить область использования атрибута.


На пальцах: определил атрибут в главном топике, включил в него все остальные. В остальных определил ifdef, ifndef, ifeval. В зависимости от указанного в главном топике атрибута получишь разный результат. Можно создать несколько почти одинаковых главных топиков с разными атрибутами и быстро штамповать документы по 5 страниц.

DITA:AsciiDoc 4:5

Форматы экспорта и единый источник

Единый источник - это то, ради чего мы здесь сегодня собрались! То, ради чего в принципе переходят на docs as code.


Ага, здорово, а что это? Не все могут быть в курсе, поэтому быстро поясню. Единый источник - это когда из одного исходного кода можно получить несколько форматов документации. Например, получить сразу .pdf, .html, .doc(x), и не придётся конвертировать и поправлять -- результат всегда будет стабильно одинаковый.

DITA

Так вот, единый источник в виде Диты позволяет получить любое количество форматов. Но есть один нюанс.

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

Чтобы трансформации (по-народному - экспорт) работали, необходимо установить JDK и DITA OT (DITA Open Toolkit).


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


В общем, вы поставили JDK, DITA OT и можете смело пользоваться всеми перками единого источника из коробки.


Из коробки доступны вот такие форматы:

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

Можно также установить дополнительные плагины, чтобы иметь ещё больше форматов (смотри документацию DITA OT).


Но вы наверняка захотите, чтобы конечный документ соответствовал корпоративному стилю (проклятые капиталисты, при коммунизме-то всё одинаковое и никто не выпендривается!). Всё ещё хотите? Добро пожаловать в мир XSL-трансформаций!


- Не-не, я не подписывался на какие-то XSL-трансформации, я ничего о них не знаю!
- Это Дита, детка! Хочешь кататься на Дите, люби и XSL-трансформации.

Я ничего не знаю об XSL-трансформациях. Я не умею их создавать и редактировать тоже не особо умею. Я видел исходники, меня они впечатлили и напугали одновременно.


Короче, настроить свой плагин для трансформации сложно. Но возможно при определённых знаниях.

AsciiDoc

Здесь ситуация та же. Ну только что развернуть проще. Всё можно сделать из командной строки.

Есть вот такие встроенные конвертеры:

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

И вот такие официальные аддоны:

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

Помимо этого, есть много разных "любительских" конвертеров. Это всё то, что за годы сделали пользователи AsciiDoc. Много разных форматов. Наверное, самый распространённый - это pandoc, который конвертирует ещё много чего много во что. Соответственно, настраивать внешний вид и стили можно по-разному. Введите в ваш любимый поисковик "asciidoc to нужный формат" и изучите результаты.


А ещё из Asciidoc можно создавать целые статичные сайты при помощи генератора статичных сайтов Antora.


- Вот ты говоришь "статичные сайты", а что это такое?
- Это обычный HTML-сайт, только без всяких лишних наворотов типа CMS, движка и прочего. Короче, не запаривайтесь, просто обычный сайт.

Можно создавать сайты с дефолтным или кастомным внешним видом. Причём в случае с сайтом настройка внешнего вида гораздо проще. Чтобы поменять ширину, цвета, шрифт, достаточно знать немного HTML и CSS.


Иными словами, это совсем не сложно, точно легче чем XSLT.


А ещё почти из любого редактора можно создать pdf, а то и нескольких видов.

Никому не дам балл. Создать трансформацию/конвертер со своим стилем не так просто ни в AsciiDoc, ни в Дите.


А чего я хотел? А хотел я, чтобы в идеале как с Antora. Чтобы максимально интуитивно и без всяких извращённых навыков. Ну, в идеале.

DITA:AsciiDoc 4:5

Обратная совместимость


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


Ну, например, выходит новая функция. Новый конвертер или новая возможность в синтаксисе. Наверняка вы захотите этим воспользоваться. Я захочу. Не убедил? А если новые исправления безопасности? По-моему, это важный повод обновиться.

DITA

Обычно все изменения Диты оперативно поддерживаются в новых версиях DITA OT. Только вот новая версия DITA OT вполне может сломать вашу созданную трансформацию. Ну вы просто не сможете обновиться и получить преимущества новой фичи, пока не обновите свой плагин. А это опять XSL-трансформации с кровью, потом и баттхёртом.

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

AsciiDoc

Обратная совместимость AsciiDoc обычно не проблема. Новая версия всегда будет поддерживать прежние фичи, обновление не вызовет проблем. А если проблемы всё-таки могут возникнуть, то об этом обязательно будет сказано в списке изменений.


Серьёзно, я даже не знал, что так бывает. Что можно просто обновиться и всё будет работать, как раньше. Очень приятно.

DITA:AsciiDoc 4:6

Техническая поддержка

DITA

Чуть не забыл. Сама по себе Дита лишена какой-либо техподдержки. Максимум, на что можно рассчитывать - это помощь на StackExchange. Ну, ещё можно попробовать задать вопрос на форуме Oxygen. Скорей всего ответят.

AsciiDoc

Поддержка феноменальна. Можно спросить в чате AsciiDoc, на гитхабе или в твиттере.

Всегда ответит кто-то из сообщества или даже сам создатель.

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

DITA:AsciiDoc 4:7

Итог


При сравнительно похожем наборе функций AsciiDoc проще, чем DITA, а во многом даже превосходит её.


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


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

Сравнение возможностей AsciiDoc и DITA Программирование, Разработка, IT, Программист, Урок, IT юмор, Обучение, Длиннопост

Всем лучи добра и качественной документации!

Заглядывайте в мой телеграм, если что. Пишу разные интересные и не очень вещи.

Показать полностью 14

Как мы в компании поделили отдел разработки

Всем лучи добра! Меня зовут Николай Петров, но вы можете звать меня просто Вадим. Я работаю техническим писателем в одной компании компании. Мы разрабатываем систему электронного документооборота, а в статье я хочу поделиться тем, как мы один большой отдел поделили на несколько команд. Я не буду пересказывать очередную историю успешного успеха, а изложу процесс с моей субъективной точки зрения. Всё перевру, приправлю тупыми шутками и в таком духе.


Как у любой другой компании у нас была своя команда разработки, точнее две больших команды. Одна команда разрабатывала один продукт, другая — второй. Всё шло хорошо, приходили новые разработчики, команды постепенно разрастались, и к какому-то моменту стало понятно, что большие команды только усложняют процесс разработки и делают взаимодействие неудобным. Когда одни и те же ошибки исправляются по несколько раз разными людьми — это субоптимально. Также субоптимально, когда на утреннем стендапе 22 человека и пятиминутный разговор о проблемах выливается в получасовой сеанс психотерапии для одного-двух разработчиков. Так мы решили перейти от проектных команд к кросс-функциональным командам. Сейчас всё поясню.

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

TRIGGER WARNING: Прежде, чем я начну, прошу вас подготовиться к неожиданностям при прочтении статьи. Если текст кажется вам переполненным сарказмом, пожалуйста, не относитесь к нему слишком серьёзно. Если текст вас оскорбляет, не читайте его. Спасибо!

Сам понял, что сказал?

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

- Каждый разработчик видит код разных проектов и немного понимает "как это устроено".

- Если кто-то заболел, ушёл в отпуск или уволился (и такое случается), кто-то другой подхватит его работу.

- Все вместе делают продукт, а не отдельную его часть.

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

Затем всем было предложено занять место за четырьмя столами. Столы были виртуальные, поэтому закусок не предполагалось, зато каждое место было подписано в духе "frontend-разработчик", "backend-разработчик", "бизнес-аналитик", "тестировщик", ой, простите, "QA-инженер", "технический писатель". Три обычных команды и одна типа сервисная — помогает другим и координирует работу. Всё потому, что бизнес-аналитиков у нас пока не так много да и технический писатель всего один (это я. Привет, мам!).

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

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

После разделения каждая команда обладает всеми необходимыми атрибутами успешного коллектива:

- Дурацкие названия: Вжик, Горыныч, БЭМС (Боевые, Энергичные, Молодые, Симпатичные), Звёздочка

- Логотипы из картинок, найденных в интернете

- Командный дух, компетенции и опыт

Передел YouTrack

Команды есть, теперь надо как-то работать. Работаем мы в YouTrack, точнее с его помощью. Да-да, я знаю, что Agile, спринты, ежедневные стендапы и вот это всё от зарубежного диавола и вообще никому не надо. Если вы согласны, то пропускайте этот раздел и идите лесом дальше по статье.

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

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

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

Мне так вообще в планировании не надо участвовать. А смысл? Всё равно каждое требование я потом должен буду задокументировать, вот я и документирую, а не планирую.

Раньше в ютреке было два проекта: платформа и web-клиент. Теперь у нас есть общие задачи производства, которые могут включать любой проект. Были задачи типа WebC и задачи DV5, а стали просто TSK (может быть как WebC, так и DV5, так и вообще что угодно). Раньше ошибки записывались как обычная задача, а теперь в специальную задачу типа ERR. Видишь заголовок и сразу понимаешь, где собака зарыта.

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

А ещё у меня появился свой тип TSK-задачи — задание на документацию. У моих особых задач нет ревью и тестирования, они сначала открыты, потом в работе, потом закрыты. Всё.

Расскажи ещё, как у вас круто получилось

Работать правда стало намного увлекательнее. Появился чёткий ритм. Утром стендап (5-15 минут) и обсуждение командных проблем, потом избранные приходят на синхронизацию и рассказывают проблемы на общекомандной встрече (обычно минут 5-7). Каждые две недели ретроспектива (как поработали) и планирование (что будет делать дальше) и общекомандное демо (показать всем, как работает сделанное за 2 недели). И это не полуторачасовые встречи как раньше, а реально динамичные и полезные события. Мне особенно нравится демо, потому что теперь мне не надо сидеть и втыкать в требования часами, включая воображалку "а что же тут подразумевалось? а как же это задокументировать". Команды всё покажут и объяснят сами!

Ладно, кого я обманываю, всё равно мне приходится втыкать в требования часами, потому что я тупой.

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

Команды стали максимально автономными и независимыми. Они не ограничены ничем кроме достижения поставленной цели — выпуск продукта. В своих маленьких коллективах коллеги разработали свои методики автоматизации, особенные алгоритмы взаимодействия и т.д. Например, в Звёздочке разработали систему ачивок за количество закрытых требований в спринте. Если они закроют XX, YY, NN требований, то получат одну, вторую и третью звёздочку соответственно. Причём именно полностью закроют, включая документацию. На вопрос "а что если я не успею задокументировать их требование, и оно не будет закрыто", мне ответили, что могут вежливо попросить меня поторопиться. Что даёт мне некоторую власть над целой командой. Власть опьяняет.

В любом случае получилось классно! Демократичность, открытость и самостоятельность — вот как бы я охарактеризовал нынешний процесс.

Гонишь, не может всё быть так гладко

Может и гоню, но совсем чуть-чуть. Вот настолько:

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

Дело в том, что у нас в компании налажено ревью кода. Это когда один разработчик приходит к другому и говорит: "смотри, какой классный код я сделал!", а второй ему отвечает: "почитай чистую архитектуру Мартина, тогда поговорим".

Короче, у нас было несколько вариантов организации ревью, и мы не знали, какой из них выбрать:

1. Итеративное ревью.

--- Взяли задачу. Ответвились, сделали доработки по фронту и по бэку.

--- Перед передачей на приёмку бизнес-аналитику делаем ревью фичи целиком. Заодно подмержили develop.

(Есть мнение, что разработка в отдельных ветках — это прошлый век. Вот и пусть будет.)

--- Сделали хорошо, довели ревью до одобрения и передали на приёмку.

--- Если нужна доработка, повторяем предыдущие пункты.

--- Если доработка не требуется, передаём на тестирование.

--- Проводим багфикс.

--- Когда готовы, делаем ревью изменений по багфиксу в целом, обратный мерж и вливаем в develop.

Вот видите, всё просто!

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

В таком случае ревью будет чуть масштабнее и сложнее, но делать его нужно будет реже. Одна команда сможет ревьюить другую, будет коллективное владение кодом, дети в Африке не будут голодать и будет рай на Земле. Только не спрашивайте, как это работает, моё дело — рассказать.

2. Ревью через merge-реквесты. Работает вот так:

--- Один разработчик написал код и перевёл его на ревью.

--- Автоматически создаётся отдельная ветка и назначается ревьюер.

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

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

--- Можно организовать сразу через гитлаб, минуя upsourсe, в котором всё делалось до разделения.

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

Знаете, какой вариант мы выбрали? Никакой!

Код-ревью делается по каждой задаче или ошибке по возможности внутри команды. Если это не возможно, то кросс-командно. Ревью создаётся по коммитам для задачи или ошибки в любой ветке.

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

- Как будет проходить регресс?

--- Ожидание: Все задачи регресса будут равномерно распределяться по командам. Или одна команда делает большую часть, а другие помогают.

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

- Кто будет брать случайно найденные ошибки из общего чата?

--- Ожидание: Под индивидуальную ответственность. Нашли, записали, а дальше задачу в работу берёт та команда, которой задача больше нравится. Или в зависимости от загруженности.

--- Реальность: Всё так и работает. До сих пор не было проблем.

- Как будут распределяться дежурства по ТП?

--- Ожидание: Очень просто. Дежурят не команды, а дежурят люди. Если загруженность по ТП большая, можно подключать людей из других команд. Если загруженность небольшая, то дежурные могут совмещать дежурство с повседневными задачами.

--- Реальность: В целом всё так. В крайнем случае особенно большой загруженности можно забить на SLA и решать задачи в комфортном темпе. Но это неправильно и мы так не делаем, конечно же. Честно-честно.

- И как полёт сейчас, спустя месяцы?

--- Ожидание: Никто не ожидал, что команды будут статичными.

--- Реальность: Кто-то ушёл, кто-то пришёл, кто-то перевёлся из соседнего отдела. Бизнес-аналитиков набралось на все команды по одному, как и задумывалось. Но есть некоторый недостаток разработчиков.

Выводы

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

Как мы в компании поделили отдел разработки Разработка, Личный опыт, Командная работа, Команда, Реструктуризация, Карьера, IT, IT юмор, Управление, Сотрудники, Agile, Аджайл, Программист, Программирование, Начальство, Обучение, Удаленная работа, Работа, Пятничный тег моё, Длиннопост

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

А если вам нравится стиль статьи, подписывайтесь на мой телеграм. Если стиль не нравился, всё равно подписывайтесь, вдруг телеграм понравится.

Показать полностью 8
Отличная работа, все прочитано!