Ride the Walrus! (Whalerider-2011)

From Wiki4Intranet
Revision as of 00:06, 19 September 2011 by VitaliyFilippov (Talk | contribs) (Почта ⌘⌘)

Jump to: navigation, search
Author

Stas Fomin
Footer
Ride the Walrus! (Whalerider-2011)
Subfooter

Stas Fomin, 18:00, 10 October 2013

Наш подход к выбору инструментария разработки «Ride the Walrus» (отсылает к рекламе из Футурамы: «попробуй 100 % свежевыжатый моржовый сок!»):

  • Не изобретать велосипедов и не строить из себя безумного интегратора, давая по желаемой системе каждому и пытаясь потом с этим жить.
  • Использовать только софт («моржа»), используемый в mainstream — свободно развивающийся под влиянием десятков тысяч разработчиков. Таким образом, мы получаем самые передовые и удобные практики и процессы. И даже если морж не очень красив внешне — под влиянием массы пользователей внутри он приобретает гибкую структуру.
  • Использовать только открытый и бесплатный софт — такой софт, в отличие от закрытых вендорских коробок, легко укротить и направить в нужном направлении.
  • Не лениться и укрощать его!
    • Выжимать все «соки из моржа», реализовывать все скрытые возможности!
    • То есть небольшое количество легких доработок крупно увеличивает возможности и юзабилити, при небольших затратах.
  • Это дает нам:
    • Удобство для разработчиков: минимум бюрократии, минимум необоснованных ограничений, отсутствие странных интерфейсов.
    • Организационную свободу и масштабируемость.
  • Принцип «по системе на область» — Subversion (+ ViewVC), Bugzilla, MediaWiki. Лишние системы сюда влезают плохо, и это хорошо!
  • Какие конкретно соки выжаты из моржа — специфика использования:
    • Интранет корпоративный, постоянные желания интеграции с продуктами M$, права доступа, трудозатраты (а то и задним числом), двухуровневая поддержка, управление багами по почте, SCRUM.
    • Локальная Windows-вики, использование Wiki для документирования, CRM. Слежение за ошибками.
    • Множество далёких от вики и вообще не очень близких к вебу пользователей, желание научить людей говорить и писать — блогофорумы, внешние ресурсы, ВикиПрезентации.

План

План «Оседлай моржа»:

  • Ролик Ride the Walrus (на русском).
  • Другие подходы к выбору систем: велосипед (-поддержка, -обучение, -умирает, -CLOC), коробка (-закрытая, -платная, -vendorLockIn), безумный интегратор (-понимание, -интеграция, -поиск данных) (в последнее и у наших попытки удариться бывают). 3 слайда.
  • Наш подход: морж (жирный, -внешность, но мощный). Mainstream (100500000 юзают). Opensource. Укротить и допилить — «Оседлай моржа!». 1 слайд.
  • По системе на область: код, знания, дела. SVN+ViewVC, MediaWiki, Bugzilla (вот уж морж так морж). Лишние системы лезут плохо: тесты == знания (тест-кейсы), тесты == код (авто), тесты == дела (прогоны). И обратите внимание, что так делает весь интернет — возьмите любой гуглкод. 3 слайда.
  • Могли ли быть альтернативы? Могли ли. DVCS в моде (но не факт что в интранете хороши). CVS ещё не сдох (nt, March Hare). Trac, Mantis, Roundup — слабоваты. Jira — закрытый морж :) DokuWiki, MoinMoin. У MediaWiki есть преимущества — лучше расширяемость, хранит в базе, есть SMW. 1 слайд.
    • Последняя попытка захотеть «безумного интегратора» была — CRM. Ибо слабая сторона вики — атрибутика. Но она ж решается Semanticом. Мы уже приползли в его сторону — моделируем CRM на MediaWiki. Приползли, надо отметить, не мы одни, есть как минимум Halo. 1 слайд.
  • Как оседлать моржа? Лёгкие доработки, которые дают +++ к юзабилити. 1 слайд Media:Cutoff.jpg. Примеры:
    • Медиаподдержка. Куча плагинов, куча готового софта — тех, Graphviz, UML, Gnuplot, SVGEdit, Freemindplane, Dia, FLV, PDF. А кстати, недавно слабали Visio <-> SVG, мы прикрутим. 1 слайд.
    • Обязательная интеграция. Интервики, buglist -> wiki, ссылки bugzilla <-> wiki, viewvc <-> bugzilla (и не нужно доп.атрибута issue#). 1 слайд.
    • Упрощение использования вики: таблицы, WikEd, Edittools, автопредпросмотр (почти интерактив), HTML-почта (also bz) и дифы, черновики, которые надо только поставить и не терять данные при закрытии браузера. 1 слайд.
    • Аналогично про багзиллу: Ctrl-Enter, фокусы и табиндексы, быстрый поиск, морфология, массовая загрузка аттачей, предпросмотр комментов, RSS’ы. 1 слайд.
    • Сок из ViewVC: кодировки, индексация содержимого — простой комбайн ViewVC+Tika+Sphinx (-SVNSearcher). 1 слайд.
    • Котёнок, следящий за ошибками. Коли уж у вас царит раздолбайство гибкость и стоит unstable-система на боевом, пускай все ошибки логгируются и сами стучат по почте мне. А я их фикшу в 5 минут, народ удивляется. 1 слайд, котёнок.
    • S5-презентации — хороший пример дешёвой доработки — готовая система, только прикрути, и получаешь уникальный инструмент.
    • Менее очевидные примеры: ВикиОпросы, ВикиЭкзамены (легко писать тесты, обучать народ, собеседовать), ВикиЗакладки (+семантические). Забавно, что после случая с голосованием™ пришлось сделать скрытие результатов.
  • Корпоративные реалии, или какой для них нужен сок из моржа, и почему 4Intra.Net (потому что отокуют клиенты, менеджеры и винда) (1 слайд. Media:Men_in_black.svg):
    • Money трекер из багзиллы: Fix Worktime, а ещё задним числом, а ещё размазывание времени по багам, а ещё перенос времени с бага на баги с размазыванием. Дополнительные атрибуты — «темы», «договора», и т. п. Доработки зависимостей значений. А потом проверки на корректность заполнения. Ужос, и багзилла этого не умеет обычная, но мы от этого убежать не смогли.
    • Если давать всем по кастом полю — сойдёшь с ума очень быстро. Надо стараться заменить на А) Теги Б) Общий набор полей. Здесь багзилла преуспела. Двухуровневая поддержка — «внешние» продукты (про стенд и аналогию с see also), второй интерфейс для клиентов (и redirect to my bugzilla). SCRUM — печать карточек (+картинка).
    • А ещё права доступа — больная тема вики (и наша). В багзилле с ними труднопонимаемо, но хорошо.
    • Компания — не веб ⇒ куча народу, от него далековатого. А нужно быть ближе. Для компании хорошо, когда сотрудники пиарятся — но никто ж сам не пишет! А как научить? Начать с малого — блоги / срач в комментах! — на вики (+картинка+форумы). А ещё есть внешние ресурсы типа Team. Ещё внутренние семинары.
  • Винда и продукты M$ (1 слайд Media:Ballmer95.jpg):
    • Винда: Локальная Windows-сборка (внизкачай) — «всё включено». Массовая заливка файлов через Flash-плагин (на очереди, похоже, копипаста скриншотов из него же).
    • Bugzilla <-> Excel и т. п.: CSV-экспорт, вьюшки наружу, Excel-импорт — массовое обновление и постановка багов.
    • Wiki <-> Word: WikEd-копипаста, выгрузка, вордовый псевдоCSS: иерархические списки, автооглавления, альбомная ориентация, точки после номеров разделов :), авто-нумерация ссылок на разделы. Сюда же использование для документирования — сверхстатьи, импорт/экспорт копий.
    • Почта: Грёбаный Exchange Server, портящий письма (Base-64, multipart). Чтение RSS’ов через Аутглюк — HTTP-авторизация. Ответы багзилла демону, удаление оверквотинга.

Презентация

⌘⌘

Ride the Walrus
или
Про наш подход к выбору инструментария разработки

Виталий Филиппов

CUSTIS

Видеоролик ⌘⌘

Лунапарк ⌘⌘

  • Изобрести своё, с Го и Гейшами.
  • Минусы: no best practices, сложность поддержки и обучения, без них умирает.

Veloquad.jpg Rip300.jpg

Коробка ⌘⌘

  • Взять готовое решение от вендора, глобальное и надёжное ©
  • Минусы: vendor lock-in, платная, закрытая - фиг пофиксишь.

Man-peeking-out-of-moving-box.jpg CatCactus.jpg

Безумный интегратор ⌘⌘

  • Или "Хоттабыч": каждому по мячу!
  • Минусы: проблемы интеграции, "что, где, когда" - что где валяется и когда это кончится.
    Некоторые придумывают ESB :)

Hottabych.jpg PromiscIntegration.jpg

Оседлай моржа! ⌘⌘

  • Mainstream, Opensource. М.б. жирный и местами несимпатичный, но очень мощный.
  • Ride the walrus! - обуздай и допили, не ленись!

WalrusPic.jpg Ride the walrus.png

По системе на область ⌘⌘

  • Артефакты (код и т. п.)
  • Знания
  • Дела

(Take Any GoogleCode)

По системе на область ⌘⌘

  • Код → SVN+ViewVC
  • Знания → MediaWiki
  • Дела → Bugzilla*

* Вот уж морж так морж.

Лишние не влезут ⌘⌘

Например, тесты:

  • Автотесты == Код
  • Тесткейсы == Знания
  • Прогоны == Дела

Разъяснение

Мы пробовали внедрять в компании несколько систем учёта тестов (TestLink, QATraq, Testopia). Всё успешно закончилось попытками понять, почему же они, TestManagement-системы, так непопулярны.

Могли ли быть альтернативы? ⌘⌘

Могли ли!
March-hare-2.jpg
  • DVCS в моде, да и CVS(nt) никак не сдохнет.
  • Trac, Mantis, Roundup (слабы), Jira (закрытый морж).
  • Dokuwiki-128.png DokuWiki, Moinmoin.svg.png MoinMoin — но MediaWiki-notext.svg.png MediaWiki расширяемее, например, есть Semantic MediaWiki.
    • Почему вообще Wiki, в XXI веке рассказывать уже стыдно :)

Semantic MediaWiki ⌘⌘

Rdf.jpg
  • Слабая сторона Wiki — атрибутика.
  • ⇒ Семантическая информация, RDF.
  • CRM-база знаний на SMW.

⌘⌘

Как оседлать моржа?

Или лёгкие доработки, дающие +++ к юзабилити.

Cutoff.jpg

Медиаподдержка ⌘⌘

  • Куча готового софта! Формулы, графы, схемы, графики, форматы изображений...
  • LaTeX, Graphviz, UML, Gnuplot, Dia, SVGEdit, FreeMindPlane, FLV, PDF, vsd2html...

Кросслинковка ⌘⌘

  • Интервики.
  • Bugzilla ↔ Wiki, Bugzilla ↔ ViewVC.
  • Вставка багов/списков в вики.
[[rupedia:Bugzilla]]
{{BugInformer|}}
{{#buglist:Текущий спринт}}

Wiki-специфика ⌘⌘

  • Не забыть синтаксис - SimpleTable, WikEd, Edittools.
  • Автопредпросмотр.
  • Черновики.

Bugzilla ⌘⌘

Типичный Feature Frenzy:

BugzillaBugForm.png FeatureFrenzy.jpg

Клавиатурный интерфейс ⌘⌘

  • Tab-order, отправка по Ctrl-Enter.
  • Скрывать часть полей.
  • Быстрый поиск, морфология в поиске.

CtrlEnter.jpg

Поиск по SVN ⌘⌘

  • Взять SVNSearcher — пробовали.
  • Сделать из готового! Скрестить:
    • Tika.png — Извлекатор текста из бинарных документов
    • Sphinx.jpg — Полнотекстовый поиск
  • → ViewVC !

Котёнок, следящий за ошибками ⌘⌘

KittenErrorNew.jpg

S5-презентации ⌘⌘

  • Вы смотрите такую (HTML+JS).
  • Из готового S5.

Менее очевидное ⌘⌘

  • ВикиОпросы
  • ВикиЭкзамены
  • ВикиЗакладки

Разъяснение

  • Опросы: в интранете вещь обязательная. Как ещё узнать, что люди думают о новой идее? Но бывают и инциденты - после одного флешмоба при выборе "лучшего докладчика" пришлось сделать временное скрытие результатов :D
  • Экзамены: Wiki, с её широкими возможностями - идеальная платформа для дистанционного обучения. Но для его полноты не хватает проверки знаний, чего и решают ВикиЭкзамены. Естественно, их надо делать так, чтобы при написании тестов не нарушались принципы коллаборации. После этого легко будет и обучать сотрудников (посмотрели презентация - сдали тест), и тестировать кандидатов. Разумеется, не стоит нанимать людей исключительно по результатам теста, но его прохождение может являться неплохой отправной точкой для начала разговора.
  • Закладки: вебовское обилие платформ сетевых и социальных сервисов закладок поражает. При этом и обычные браузерные закладки, и все сетевые страдают одной большой проблемой - данные лежат так глубоко и разрозненно, что до них ни добраться для выгрузки, ни порядок навести. В то же время, наводить порядок в вики гораздо легче, и данные все на виду. Поэтому быстро создаётся расширение, выводящее код для кнопки-букмарклета и позволяющее сохранять свои закладки в вики.

Разумеется, всё это не просто идеи - всё это реализовано в проекте Mediawiki4Intranet.

Корпоративные реалии ⌘⌘

Какой моржовый сок требуют они?

Основные двигатели: винда, клиенты и менеджеры.

Men in black.svg

Учить людей выступать ⌘⌘

Начнём с хорошего :)

  • Людей надо учить выступать.
  • …Хотя бы писать!
  • …Хотя бы в блоги…
  • …Хотя бы — срач в комментах :)

⇒ Блоги ~~ Форумы, отчёты о конференциях.

Money трекер (ужос) ⌘⌘

[svg]

Custom поля ⌘⌘

  • «Договоры», «Темы», «WBS»…
  • Потом — их проверки…
  • Бюрократизация ☹ ☹ ☹
  • Не давать каждому по полю!

SCRUM-карточки ⌘⌘

Правда, у всех разный скрам. Кое-кто назначает исполнителей руками ;-)

Scrumcards.png

Винда и продукты M$ ⌘⌘

Ballmer95.jpg

Windows-сборка (внизкачай) ⌘⌘

All inclusive! Простейший способ попробовать Mediawiki4Intranet!

Wiki4intranet-wampp-page1.svg.png

Замечания по Windows-сборке

  • Скачать можно здесь: http://wiki.4intra.net/public/mediawiki4intranet-win.7z
  • Подробная информация - Windows-сборка Mediawiki4Intranet.
  • Можно использовать для самых разных целей: поставить поиграться себе на комп, а то и сходить к клиенту и поправить вместе с ним, или отдать вики с загруженной документацией - там будут все плюшки, включая поиск.
  • Кстати, под виндой удобно использовать Flash-плагин для массовой загрузки в вики файлов. Причём, на очереди, похоже, плагин для копипасты скриншотов - может оказаться, что у очередного клиента доступ к файлам вообще перекрыт.

Импорт-экспорт ⌘⌘

  • Bugzilla ↔ Excel
  • MediaWiki ↔ Word
    • Да, наша вики используется для документирования.
  • Репликация между MediaWiki

Подробно об импорте-экспорте

Bugzilla ↔ Excel:

  • Из Bugzilla можно выгружать списки багов с любыми полями в CSV-формате, понимаемом Excel.
  • Из Excel можно загружать списки багов или делать массовые обновления.
  • Также из Bugzilla у нас выставлены внешние SQL VIEW для мелкого инструментария, который иногда создают себе другие отделы - например, для простой SCRUM-доски.

MediaWiki ↔ Word:

  • Для копипасты относительно простой разметки из Word'а можно применять WikEd. Тупо скопировать, вставить, нажать [W] (викификация). Может остаться мусор, особенно в последних версиях Firefox, но это авторы пофиксят.
  • Выгрузка в ворд - используется при документировании. Как ни странно, вполне реально генерить из вики длинные документы-описания продуктов, с помощью суперстатьи и включений в неё других статей. При этом приходится делать мелкие доработки вроде нумерации ссылок на разделы, добавления точечек после этих номеров, использования вордовых псевдо-CSS стилей, замены URL на абсолютные, создания шаблонов, вычисляющих "правильную" ширину для больших картинок... Всё это несложно, а жизнь любителям ворда упрощает.

Почта ⌘⌘

  • Зачем-то используется Аутглюк и грёбаный Exchange, нежный в плане кодировок писем.
  • С нашей багзиллой можно разговаривать через почту.
    • Актуально, если перекрыта сеть (банки...)

Конец ⌘⌘

Вопросы [vitalif@mail.ru]> _