Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и регистрируйся!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

четверг, 14 июня 2012 г.

Идеи для дивелоперов: Записываем видеоролик-объяснение тому, что закоммитили

В последнее время очень много пишу видеороликов - капитализирую результаты своих тренинговых усилий. Много приходится общаться с трейни по коду и не только. Есть несколько способов как это сделать. Можно написать в скайпе (или письмо), можно написать пост в вики и поделиться линком, а можно включить скринрекордер и записать голосовое сообщение с демонстрацией того, что собирался донести - прямо в коде. Так, со временем этих вижяшек становится столько, что не даже куда их девать :) Но сейчас не об этом. О другом - развивая это направление (видеописательство) я начал применять скринрекордер в других местах (не только при общении с трейни).

Вот, например, сегодня хотел напарнику Сергею задать вопрос. Но понимаю, что ему сейчас может быть не совсем удобно давать ответ. Да и мы удалены друг от друга минимум на пару километров. Писать текст? Малоинформативно. Созвониться в скайпе и расшарить свой рабочий стол - уже лучше, но опять же напарник может быть занят в эту минуту, а когда он освободится занят уже буду я... Вот тут то я и решил записать скрипрекордером свой вопрос, показывая сразу на коде то, что хотел спросить так, как будто бы напарник сидит рядом. Записал - вышло 5 минут видео - и выложил в скайп с пояснением что, мол посмотри, когда будет минутка. 5 минут на полноценный вопрос. Текстом бы я его формулировал (даже с учетом слепого 10пальцевого) не менее 10 минут, а потом еще напарник мог бы не так понять. А тут все как в парном программировании...

Идем дальше. Следующее узкое место, которое можно таким образом задокументировать - коммиты проделанной работы. Сколько раз я ловил себя на слове во время резолвинга конфликтов: "ну и что он хотел этим сказать? зачем тут это?" Из дескрипшена это обычно не понятно - дескрипшен описывает только поверхностно суть коммита, а что касается реализации - тут поможет видяшка, записанная за 5-10 минут перед коммитом, поможет твоему напарнику в будущем разобраться что ты хотел сказать своим фиксом. Чем еще хорошо такое нововведение (кроме как информация для напарника)? А тем, что перед коммитом ты просматриваешь файл за файлом то, что проделал и тут, о чудо!, ты видишь глюки, которые не стоило бы коммитить. Я не знаю каким коротким должен быть сеанс кодинга между коммитами и внимательным дивелопер, чтобы случайно не закоммитить какой-то там system.out.println или кусок кода, который использовался временно для отладки. Такие строительные леса я всегда убирал просматривая код перед коммитом и это само по себе работало. Все что надо - всего лишь включить камрекордер и озвучивать мысли в такой форме, чтобы она было понятной напарнику.

Идем дальше. Записывать видео можно так же и sprint demo. Зачем напрягаться, и мьютить постоянно микрофон со словами "беги быстро пофикси, пока он (заказчик) не заметил", если можно спокойно записать видяшку, аккуратно ее смонтировать и выслать на ревью заказчику. А он посмотрит ее в удобное для него время и расскажет команде, что именно и где не так... Да, тут меньше интерактива для заказчика, но все же, в кое-каких случаях этим инструментом можно воспользоваться...

Предлагайте идеи, где еще можно заюзать камрекордер в разработке ПО?

Да, забыл - запись должна прохождить максимально комфортно, чтобы у команды небыло отговорок типа "эта тулза корявая, я записал а потом еще пол часа потратил на монтаж" - для этого пользуйтесь Camtasia Studio. Она стоит того, чтобы за нее заплатить 300$ Но можно, конечно поискать и фришные тулы (дай Бог чтоб удобную)...

3 комментария:

  1. Классная идея!

    Только я бы это делал не для каждого коммита, а для серии маленьких *атомарных* коммитов. Если придерживаться single responsibility principle для коммитов, то ясно, что я сделал в каждом коммите. А с видео можно дать overview серии коммитов.

    ОтветитьУдалить
  2. Могу подискутировать только насчет записи видео при коммите.

    Коммит - это единица абстракции, точно такая же, как класс или функция, потому методы упрощения можно использовать те же.

    Если для объяснения магического фикса нужно записывать видео, то есть несколько возможных вариантов:
    1. Не коммить =)
    2. Либо разбей коммит на несколько простых, каждый со своим месседжем.
    3. Либо просто напиши magic fix без объяснений, это будет достаточно информативно)
    4. Ну и можно записать видео, если хочется)

    Олег

    ОтветитьУдалить
  3. Так точно, видео классно описывает общую идею реализованной фичи, которая может состоять из серии коммитов. Например сегодня запилил что-то потратил 6 часов, было 20 коммитов. Это все ради одной цели. Были кое какие архитектурные изменения, записал видяшку и если кто спросит что ты "намутил" ты ему а там в дескрипшене есть линк...

    "Не коммить =)" - это да, как-то оно всетаки пахнет - запись видео. Но вместе с тем, не все проекты идеальные, а это инструмент и где-то его не хватает. Пост написал именно для таких неидальных проектов, которых уверен больше половины во всем мире.

    ОтветитьУдалить