среда, 23 сентября 2009 г.

Война против "велосипедов"

Я работаю в одной компании, занимающейся написанием программного обеспечения в основном в области логистики. Работаю я уже 3 год, прошел через несколько проектов и узнал о тех, которые были до меня. И так уж повелось, что для каждого проекта заводилась своя внутренняя вики, которая по окончании проекта архивировалась и складировалась в таком виде на сервере. Проходило время, люди уходили и приходили, и опыт, накопленный по данному проекту постепенно забывался. Начинался новые проект и конвейер по производству велосипедов запускался вновь.Я думаю, подобная ситуация существовала не только в нашей компании, но и существует во многих других. Лично меня эта ситуация долгое время не устраивала, но к сожалению я ничего не мог поделать - мнение junior developer`ов редко учитывается. Но опять шло время, я немного подрос по лестнице, и у меня ко всем обязанностям прибавилась еще одна - UI expert. Что это такое. Это роль эксперта-аналитика в области технологий для создания пользовательских интерфейсов. В мои обязанности входит как обзор существующих технологий (RIA, Swing и js фреймворки), так и консультации других проектов, а так же составление аналитических обзоров по их требованиям. Все эти обзоры вносились в специальный раздел одной из проектных вики и каждые две недели составлялся викикаст с обзором самых интересных статей.Данная активность оказалась более чем полезна компании, я набирал "баллы" и в определенный момент с помощью поддержки начальства война против велосипедов была развернута. Было решено сделать единое хранилище данных, где бы содержала и аккумулировалась вся накопленная и найденная информация. Фронт был развернут по двум направлениям: единая вики и внутренний блог.


Вики

Первым шагом было решено перейти от множества разрозненных вики к одной, где бы были разделы для каждого проекта, общий раздел для информации о компании, раздел для экспертиз (UI, server side и прочих), раздел для QA команды, а так же раздел с различными полезными советами и библиотекой компонент внутреннего репозитория maven. Когда было решено, что такая вики необходимо, стал вопрос в выборе движка. Было множество споров: как должны храниться страницы - в виде файлов или записей в бд, какую разметку выбирать и многие другие. Разрешить эти споры удалось благодаря такому ресурсу как http://www.wikimatrix.org/. Что это за ресурс. На нем расположена информация примерно о 50 различных движках и есть возможность сравнить интересные вам движки. В таблице сравнения можно найти такие пункты как: General Features (Version, Last Release Date, License, Development status ....), System Requirements, Datastorage, Development/Support, Syntax Features и многие другие. Кроме того, сюда стекается информация обо всех новостях, связанных с данными движками, есть возможность посмотреть имеющиеся реализации и спросить мнение экспертов.

После долгих сравнений мы решили остановиться на DokuWiki (http://www.dokuwiki.org). Данный движок понравился как своими возможностями по умолчанию, так и возможностью расширения.

Основные характеристики

  • Работа с текстовыми файлами — не требуется поддержка баз данных
  • Простой синтаксис дополнен кнопками разметки, которые облегчают редактирование
  • Обширные возможности разметки, может быть включена поддержка HTML, PHP.
  • Редактирование страницы по частям
  • Автоматическое сохранение черновика при редактировании страницы
  • Автоматическое создание оглавления для страницы и списка всех страниц Вики
  • Неограниченная история изменений страницы (поддаётся настройке)
  • Возможность загрузки файлов, изображения могут отражаться в тексте
  • Настройка прав доступа (чтение, запись, создание страниц, загрузка файлов, удаление страниц) для категорий пользователей и пользователей в отдельности для отдельных страниц и пространств имён
  • Поддерживается отправка последних изменений по RSS
  • Страницы разделяются по пространcтвам имён
  • Ссылки внутри Вики и на внешние ресурсы (технология InterWiki)
  • Лёгкость навигации
  • Полнотекстовый поиск собственными средствами, индексирование страниц
  • Быстрый поиск по названиям страниц (по AJAX технологии)
  • Многоязыковая поддержка интерфейса и текста вики (но не имён страниц)
  • Защита от спама с помощью чёрного списка слов и CAPTCHA
  • Вся настройка за исключением первого запуска производится с помощью локализованного веб-интерфейса
  • Большое количество плагинов, расширяющих базовый функционал
  • Поддержка OpenSearch(англ.)
  • Существует определённый набор готовых шаблонов внешнего вида. Самостоятельное редактирование внешнего вида приветствуется. (все страницы написаны с помощью php) (http://ru.wikipedia.org/wiki/DokuWiki)

Некоторые сспользуемые плагины

В определенный момент встал политический вопрос о переезде со старых вики. Основная проблема в том, что перебивать руками такой объем текста задача не из легких. И было приятно узнать, когда выяснилось, что разработчики DokuWiki уже позаботились об этом в разделе Tips and Tricks (http://www.dokuwiki.org/tips), где в одном из пунктов описаны различные инструменты для удобного переезда.

Блог

Создание вики приносило свои плоды, но главный недостаток вики - отсутствие общения. А ведь общение и мозговой штурм основные инструменты при решении проблем. Поэтому было так же решено поднять и свой внутренний блог. Опять же вставал вопрос выбора движка. Одним из вариантов было даже использование плагина для DokuWiki. Но уже полюбишийся дизайн Хабра оказал свое влияние - был выбран движок LiveStreet (http://livestreet.ru). В плюсах этого движка и как уже было сказано удобный и привычный дизайн, опять же набор регулярно пополняющих плагинов, подробные руководства и помощь на самом сайте. Все это несомненно сделало данный движок нашим фаворитом. Приведу список основных возможностей с сайта разработчика:

Основные возможности

  • Использование UTF-8
  • Ведение персональных блогов
  • Возможность создания коллективных блогов
  • Система рейтингов блогов, топиков, комментариев, пользователей
  • Система голосования за блоги, топики, комментарии, пользователей
  • Функциональные комментарии на Ajax'е с возможностью навигации
  • Полнотекстовый поиск по сайту с использованием Sphinx
  • Возможность добавлять топики в избранное
  • Автоподстановка тегов
  • Коллективная внутренняя почта
  • Система контроля доступа(ACL) к разным возможностям сети(создание блога, возможность голосования и т.п.)
  • Возможность создать закрытый сайт
  • Система инвайтов
  • Топики-ссылки
  • Топики-опросы
  • Администрирование своих блогов
  • Назначение модераторов блогов
  • Настройки оповещений на емайл
  • Ограничение по времени на голосования за топики и комментарии
  • Возможность экранирования ссылок от поисковиков
Что же публикуется в нащ внутренний блог. Сюда идут все новости по проектам, по изменениям в самой компании, обзоры экспертиз, обзоры новых технологий (например ведется очень крупный блог по maven), блог Help!, где задаются наболевшие вопросы, и конечно же есть личные блоги каждого.
Немаловажным фактов было заинтересовать людей, чтобы они стали посещать этот блог регулярно. Для это ежедневно составляется и кидается в общую рассылку дайджест, содержащий все новые статьи. Таким образом, через неделю использования блога треть сотрудников уже была зарегестрирована на
блоге, а половина из них активно писала.

Итоги

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

Related Posts by Categories



Комментариев нет:

Отправить комментарий