Author

Виталий Филиппов
Footer
Ride the Walrus! (Whalerider-2011)
Subfooter

Виталий Филиппов, 18:00, 10 October 2013

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

Contents

План

Презентация

⌘⌘

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

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

CUSTIS

О чём будет доклад ⌘⌘

Ride the walrus.png

Примечание

Почему вообще «морж»?

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

Почему Ride the Walrus? Потому, что в Футураме :), в 15-ой серии 2-го сезона («The problem with popplers»), был отличный эпизод с рекламой «Нашего нового свежевыжатого моржового сока! 100 % свежевыжатый морж! Оседлай моржа!» — и это тоже хорошая аналогия для обуздания диких OpenSource систем. Так что под «седланием» моржа я буду подразумевать доработки, обычно простые, но дающие жирный профит.

А ещё — потому, что конференция называется Whale Rider — типа, каламбурчик :)

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

HTML-код включения <iframe src="http://player.vimeo.com/video/28192912?byline=0&portrait=0" width="640" height="480" frameborder="0"></iframe>

Скачать → на странице видео на vimeo, кнопка «Download»

Подходы ⌘⌘

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

MonkeyTool.jpg

Лунапарк ⌘⌘

Veloquad.jpg Rip300.jpg

Коробка ⌘⌘

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

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

Hottabych.jpg PromiscIntegration.jpg

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

WalrusPic.jpg Ride the walrus.png

Подходы: примечания

«Лунапарк» (или «Велосипед»)
Это то, что обязательно хочется изобрести самому, причём обязательно с блэкджеком и шлюхами © Минусы достаточно ясны — будет полный кастом, мировой опыт вероятнее всего при разработке не учтётся, систему нужно будет поддерживать, а пользователей — обучать, причём со временем это будет становиться всё более и более трудоёмко. Сами обучаться и решать какие-то возникающие проблемы с помощью гугла пользователи не смогут, а если ещё и уйдут программисты, создавшие собственно сам велосипед — точно пиши пропало :)
«Коробка»
Нет, ну многие же верят в вендора, правда? Верят, что он сделает им щастье. Поэтому ещё один распространённый подход — выбрать цельный стек от какого-нибудь вендора (да-да, того самого), отвалить ему бабла, и пытаться жить. По крайней мере проблемы типа «а нам неудобно» сразу уходят (вам неудобно? вот вы и жалуйтесь в мелкософт). То есть либо уходит проблема, потому что реально это не проблема и это же можно сделать проще, либо просто уходят люди: была такие компания — пришёл менеджер из Моторолы, внедрили всем Rational, все программисты что-то вдруг взяли и уволились. Кроме этого есть и другие минусы — вендору невыгодно, чтобы вы от него уходили, поэтому будет Vendor Lock-In и хрен вы потом куда-то слезете, а если найдёте баг, то единственная мера — позвонить в саппорт, пожаловаться и послушать фразу о том, что «мы создали инцидент». А может быть есть и кто-то, у кого бюджет не резиновый и кому не наплевать на платность стека.
«Безумный интегратор»
Каждому по системе! Или по мячу, как сделал Хоттабыч, когда смотрел футбол и увидел, что игрокам видимо мячика в жизни не хватает, и они за ним гоняются. То есть нужна нам система саппорта — берём лучшую систему саппорта; нужна система управления багами — берём лучшую систему управления багами; нужна система документирования — берём отдельную систему документирования, и так далее. Потом каждая ставится в свой отдел, а потом у людей едет крыша, потому что непонятно, как же со всей этой фигней лететь? (взлететь вроде взлетели, но как теперь не упасть?) Так обычно выглядит автоматизация в большинстве банков, и они потом придумывают ESB, чтобы хотя бы всё взаимодействие постараться запихнуть в одно место.
«Оседлай моржа»
Наш подход! Берём открытую и свободную (Free as Speech), широко используемую адскими тысячами пользователей систему, пусть даже возможно не очень гламурно-красивую внешне («моржа»), применяем к ней простые доработки («осёдлываем»), и радуемся жизни. Доработки — реально простые и надо не лениться их делать, потому что свободного софта со временем становится только больше и он не имеет тенденцию умирать, в отличие от закрытого. А даже если умирает — часто воскресает кусками кода в следующем проекте.

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

(Take Any GoogleCode)

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

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

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

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

Разъяснение

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

Разгадка, по-видимому, в том, что набор из 3 систем, отвечающих каждая за свою область, настолько мощный, что ручные тесты оказывается удобнее вести в вики, конкретные прогоны — в Bugzilla, а автотесты — в системе контроля версий. Набор на самом деле мощный — если даже отрезать одну из систем, оставшиеся будут пытаться покрыть «пропавшую» область: теоретически, обсуждения и какую-то информацию можно вести и в баг-трекере, или, например, наоборот — баги в вики. Возможно даже этим всё и закончится — вдруг появится расширение Semantic MediaWiki для баг-трекинга, и все на него перейдут?

Кстати, по поводу моржа-Bugzillы: существует она с 1998 года, и была тогда даже не веб-системой, а клиентом на основе Tcl. Авторы — Mozilla — довольно инертные ребята, это вообще их свойство, в том же Firefox есть баги, тянующиеся лет по 10 (итакой баг вовсе не один), и из-за этой инертности багзилла тоже сохраняет много унаследованных черт. С одной стороны, какие-нибудь Jir'ы могут выглядеть модней, но зато, пока их авторы пилят велосипеды, Bugzilla тупо сидит на простейшем HTML, и например, если в стандарте сделают Grid, они просто на него перелезут, да и всё. Аналогично, пока другие системы придумывают какие-нибудь ненормальные Best Practices, багзилла на это не распыляется, а внедряет только то, что реально необходимо.

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

Могли ли!

Semantic MediaWiki ⌘⌘

Rdf.jpg

⌘⌘

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

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

Cutoff.jpg

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

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

[[rupedia:Bugzilla]]
{{BugInformer|}}
{{#buglist:Текущий спринт}}

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

Bugzilla ⌘⌘

Типичный Feature Frenzy:

BugzillaBugForm.png FeatureFrenzy.jpg

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

CtrlEnter.jpg

Поиск по SVN ⌘⌘

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

KittenErrorNew.jpg

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

S5MW.svg

S5: Разъяснение

В какой-то момент мы обнаружили систему HTML/JavaScript-презентаций S5 (Simple Standards-based Slide-Show System). Инструмент интересный — позволяет быстро создавать кроссбраузерные презентации. Но чего ему не хватало — так это удобного инструмента генерации самих презентаций. Причём, коли уж у нас презентации живут в вебе, сразу приходит в голову, что порождать презентации полезно из плоского текста, заодно и возможности HTML-разметки будут хороши, и исходники презентации будут ясными и простыми. MediaWiki — идеальная платформа, к которой можно прикрутить эти презентации, с сохранением всей «виковости», множества медиавозможностей, сохранения истории и так далее. Попытку сделать что-то похожее уже кто-то предпринимал, но мы сильно улучшили подход, и представляем вашему внимание расширение S5SlideShow!

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

Опросы, экзамены, закладки

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

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

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

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

Men in black.svg

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

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

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

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

Custom поля ⌘⌘

Custom поля — разъяснение

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

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

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

Scrumcards.png

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

Ballmer95.jpg

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

All inclusive! Простейший способ попробовать Mediawiki4Intranet (нашу сборку)!

Wiki4intranet-wampp-album.svg

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

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

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

Bugzilla ↔ Excel:

MediaWiki ↔ Word:

MediaWiki ↔ MediaWiki:

Почта ⌘⌘

О плохом:

О хорошем:

Exchange & Co

Нафига все до сих пор используют этот Exchange? И недёшев, и глюки имеет восхитительные, например:

По поводу управления багами через почту — фича используется, в принципе, редко, но если внезапно перекрыта сеть (банки), то фича становится необходима прямо-таки очень-очень. Тоже наш допил.

Всё это не пустые слова! ⌘⌘

Финита ⌘⌘

Вопросы?

vitalif@whalerider:/questions$ _


$this: http://wiki.4intra.net/Whalerider-ride-the-walrus

Myemail2.png

Also User:VitaliyFilippov.