Atlassian Confluence — мощное решение для развертывания Enterprise Wiki в организации (хотя, нет никаких технических проблем с тем, чтобы использовать его и дома — лицензия на 10 пользователей стоит всего 10 американских долларов в год). И лично мне Confluence нравится тем, что имеет дружелюбный интерфейс и позволяет интуитивно понятно редактировать контент, с легкостью дополняя его визуальными составляющими, что позволяет в итоге получить красивые и удобные для просмотра страницы. Кстати, этот пост тоже написан в Confluence.
Как известно многим, визуализация имеет большое влияние на то, как контент будет восприниматься. В последнее время в любых соцсетях и тематических сообществах прослеживается четкий тренд: если ваш пост не содержит визуальной информации, например, тех же картинок с котиками, его мало кто будет читать. А если он еще и длиннее одной страницы… Итак, пользоваться графикой нужно. И тут я сошлюсь на пост комрадов из DevExpress, где они привели интересные факты о визуализации (увы, без пруфов, но цифры на мой взгляд очень похожи на правду):
- 90% информации человек воспринимает через зрение
- 70% сенсорных рецепторов находятся в глазах
- около половины нейронов головного мозга человека задействованы в обработке визуальной информации
- на 19% меньше при работе с визуальными данными используется когнитивная функция мозга, отвечающая за обработку и анализ информации
- на 17% выше производительность человека, работающего с визуальной информацией
- на 4,5% лучше воспоминаются подробные детали визуальной информации
Учитывая столь очевидную полезность грамотной визуализации и корпоративную направленность Confluence, попробуем немного порисовать прямо на страничках вики. Рисовать там можно достаточно много вещей, но вот «из коробки» функционал позволяет разве что нарисовать графики и вставить картинки. Но это нас не остановит, поскольку в экосистеме Atlassian силами сторонних вендоров производится огромное количество аддонов на любой вкус и цвет, причем даже самый крутой и дорогой продукт можно взять и попробовать бесплатно в течение месяца. И так, если память не изменяет, до шести раз подряд, что дает совершенно легальные полгода на раздумья, что будет легче — начать себе отказывать в удобстве от аддона или
Диаграммы в Confluence
Как я упоминал выше, «из коробки» порисовать не очень-то получится. Зато, если мы обратим свое внимание на аддоны, то для рисования разного рода диаграмм их найдется немало. Попробуем рассмотреть те, которые больше всего на слуху и первые попались в заботливые руки поисковой выдачи. В этот список попали:
- Confluence Diagramming by Creately
- Draw.io Diagrams for Confluence
- Lucidchart for Confluence
- Gliffy Diagrams for Confluence
- Graphviz Diagrams for Confluence
Первые четыре продукта, с моей точки зрения, очень похожи друг на друга. Возможно, даже имел факт «заимствования» тех или иных элементов функциональности друг у друга. Они понимают формат Visio, что позволяет не ломать голову над вопросом «а зачем нам все наши диаграммы перерисовывать» — можно просто импортировать имеющиеся файлы. Очень похож и процесс рисования диаграмм — из библиотек изображений на страницу добавляются элементы, связи между ними, подписи. Многие из поставщиков аддонов предлагают использовать их веб-версии диаграмм.
Несколько особняком стоит Graphviz Diagrams от Боба Свифта. Этот продукт несколько нарушает принципы экосистемы Atlassian, где все реализовано очень просто и интуитивно понятно, но в нем есть свой особый шарм. Да, вам потребуется не просто добавить аддон в Confluence, но еще и поставить на ваш сервер библиотеку визуализации графов graphviz. Зато потом вы сможете использовать мощный язык DOT для автоматической визуализации ваших данных (наверняка на Хабре есть люди, которые без графов и DOT жизни не представляют).
Примеры того, как можно нарисовать диаграммы при помощи аддонов для Confluence и веб-версий диаграмм:
Объединяет эти аддоны тот факт, что с помощью любого из них можно нарисовать недурственные диаграммы и схемы (или просто импортировать из Visio), но вот графики у них как-то не задались. Либо такая функциональность (построение графиков по таблице с данными) отсутствует, ограничиваясь схематичными представлениями графиков, либо реализована неудобно и рядовому пользователю будет непросто этим воспользоваться.
Пример того, как можно использовать язык DOT и библиотеку Graphviz:
A -> B
C -> B
B -> C
D -> A
A -> D
e;
subgraph clusterA {
a -- b;
subgraph clusterC {
C -- D;
}
}
subgraph clusterB {
d -- f
}
d -- D
e -- clusterB
clusterC -- clusterB
Трудно сказать, какой аддон лучше выбрать. Скорее всего, на выбор повлияют какие-то вторичные для функционала вещи. Например, способность работать на сервере автономно без доступа в Интернет или гибкое лицензирование, позволяющее не покупать сразу 500 лицензий в большой организации, где рисованием подобных диаграмм занимается пять человек. В наше время и цена лицензии часто имеет решающее значение. Я попытался свести основные нефункциональные характеристики в таблицу:
Да/Нет | Да | Нет | $2000/Нет | Да | Нет | |
Да/Да | Да | Нет | $3000/Бесплатно | Да | Да | |
Да/Да | Да | Да | Гибкая/Бесплатно | Да | Да | |
Да/Да | Нет | Нет | $6000/$3000 | Да | Да | |
Да/Нет | Нет | Нет | $580/Нет | Нет | Нет |
Графики в Confluence
Погуглив "confluence charts", на первой странице я получил вот что (откровенно говоря, негусто):
- Chart Macro от Atlassian (самое приятное, что этот продукт уже включен в Confluence «из коробки» и за него не нужно доплачивать)
- Table Filter and Charts от StiltSoft
- Lucidchart (этот продукт упоминался выше, к сожалению, графики с его помощью быстро и удобно не порисуешь, иначе он был бы однозначным моим фаворитом)
Поэтому будем рассматривать первые два.
В любом случае, для того, чтобы нарисовать график, вам потребуется таблица с данными. Эта таблица может появиться в Confluence совершенно разными способами, например быть созданной с нуля, импортированной из CSV, копипастой из Excel и даже сформированной запросом из СУБД при помощи SQL for Confluence. Как сформированы данные в таблице — решающего значения не имеет, они просто должны быть. А из уже имеющихся данных мы можем построить графики.
Chart Macro из поставки Confluence
Это встроенный в Confluence макрос, который умеет отрисовывать следующие типы графиков:
- Pie Chart
- Bar Chart
- 3D Bar Chart
- Time Series Chart
- XY Line Chart
- XY Area Chart
- Area Charts
- Gantt Chart
Макрос имеет большое количество настроек для того, чтобы ваш график выглядел именно так, как вам нужно. Он покрывает все распространенные сценарии, в которых вам нужно нарисовать графики, но есть ложка дегтя (даже две) — это обязательный переход в режим редактирования страницы, даже если нужно только немного поменять настройки графика, и огромное количество этих самых настроек, что неподготовленного пользователя может напугать. Правда, эти ложки дополняются бочкой меда — бесплатность и документация с примерами, которая позволяет понять, как же оно работает и построить самые простые графики.
Вот так, например, выглядит Area chart:
… а вот так 3D Bar chart:
… можно посмотреть соотношение продаж разной рыбы в виде наглядной диаграммы Pie chart (круговой диаграммы):
Table Filter and Charts
Аддон разработан компанией StiltSoft, которая является Atlassian Expert и Atlassian Verified Vendor. У него есть свои плюсы и минусы. В плюсах отмечу следующее:
- аддон позволяет не только строить графики, а еще и имеет мощный механизм фильтрации таблиц (и даже умеет строить сводные таблицы с аггрегацией данных)
- очень просто настраивается
- настройки можно менять прямо из режима просмотра, не переходя в режим редактирования страницы (и сохранять их из режима просмотра)
- график можно скачать в один клик
Но, как водится, должен быть и минус. Он всего один — за аддон нужно платить (процесс установки аддона в Confluence очень прост и считать его минусом трудно).
Аддон нам предлагает три макроса:
Первый из них позволяет «на лету» прямо из режима просмотра фильтровать сложные таблицы в Confluence. Фильтрация есть и в режиме редактирования, что иногда может быть удобно. Макрос Pivot Table позволяет построить сводную таблицу, содержащую аггрегированные и суммированные значения из больших таблиц с повторяющимися значениями. И, наконец, самое интересное — Chart from Table. Вот он-то и умеет рисовать графики, вот список возможных графиков:
- Pie
- Donut
- 3D Donut
- Column
- Stacked Column
- Bar
- Stacked Bar
- Line
- Area
- Time Line
- Time Area
Примеры графиков, полученных с помощью Chart from Table
Уже знакомая по Charts круговая диаграмма про рыбу:
Fish Type | 2011 |
---|---|
Herring | 9500 |
Salmon | 2900 |
Tuna | 1500 |
Вот так выглядит график типа stacked column (гугл утверждает, что это гистограмма):
2009 | 2010 | 2011 | |
---|---|---|---|
Revenue | 12.4 | 31.8 | 41.1 |
Expense | 43.6 | 41.8 | 31.1 |
… а вот так выглядит столбчатая диаграмма с накоплением (multi-column chart):
Q1 2015 | 207 | 42 | 381 | 20 | 14 | 664 |
Q2 2015 | 278 | 31 | 247 | 58 | 39 | 653 |
Q3 2015 | 227 | 27 | 200 | 23 | 31 | 508 |
Q4 2015 | 257 | 20 | 237 | 58 | 40 | 612 |
Получившийся график можно скачать в один клик как картинку, или можно прямо из режима просмотра поменять настройки графика, используя панель настроек. Панель настроек можно скрыть, равно как и таблицу с исходными данными.
К-к-к-комбо!
Самая мякотка, непосредственно затрагивающая тему графиков. Компоненты аддона (три макроса, входящие в комплект — графики, фильтрацию и сводные таблицы) можно смело и умело комбинировать. Что позволяет строить графики уже недоступные стандартному макросу Charts в достаточно легкой и непринужденной манере. Можно запросто построить график по отфильтрованной сводной таблице, например. Для этого вкладываем таблицу в макрос Table Filter (здесь можно будет фильтровать данные, уменьшив их количество), затем вкладываем Table Filter с таблицей в макрос Pivot Table (он построит сводную таблицу), и в качестве вишенки на торте получившуюся конструкцию помещаем в макрос Chart from Table (этот макрос нарисует график). Звучит страшновато, конструкция похожа на известную всем по сказкам Кощееву смерть. Тем не менее, в реальности все это делается достаточно быстро.
После того, как мы один раз выстроили иерархию данных и макросов — мы можем прямо из режима просмотра страницы менять настройки фильтрации исходных данных, настройки сводной таблицы и настройки графика — все будет тут же пересчитываться и перерисовываться. Настройки можно тут же сохранить, а можно поиграться и оставить как есть — страница вернется в исходное состояние при перезагрузке.
Погодите, а как же JIRA?
И здесь у ребят из Atlassian есть решение прямо «из коробки». Для начала, если вы еще не настроили — вам потребуется application link между Confluence и JIRA, стандартный для продуктов Atlassian. После этого Confluence сможет получать данные из JIRA. Для визуализации же этих данных в состав Confluence включен макрос JIRA Charts (который, к слову, поддерживает фильтры JIRA и даже jql-запросы для получения нужных вам данных). А для графического отображения полученных данных есть три типа графиков:
- Pie Chart from JIRA (стандартная круговая диаграмма)
- Created vs Resolved Chart from JIRA (созданные и решенные задачи)
- JIRA Two-Dimensional Chart (двумерная диаграмма)
Пример стандартной круговой диаграммы, отражающей количественное соотношение задач по товарищам, которые их выполнили:
… а вот так выглядит сравнительная диаграмма созданных и решенных задач:
Пример двумерной диаграммы (по сути простая таблица):
Разумеется, полученные из JIRA данные можно обработать и отрисовать при помощи макросов, входящих в состав Table Filter and Charts. Можно, разумеется, применять фильтры уже в процессе получения данных из JIRA, чтобы не тащить и потом не фильтровать лишнее. А можно по-простому затянуть минимально отфильтрованные данные и дофильтровать их по месту, потом привести к формату сводной таблицы и построить график либо по исходным отфильтрованным данным, либо по уже получившейся сводной таблице. А если что-то выглядит не так, как ожидается — аккуратно и быстро поменять настройки фильтров или графиков. Комбо!
Вместо заключения
Навыки правильной визуализации данных, когда все графики и картинки приходятся к месту и помогают, а не мешают восприятию информации, нужно нарабатывать. Но с хорошими инструментами их нарабатывать гораздо проще, потому что отвлекаться на сам процесс рисования придется меньше. Надеюсь, после этой статьи кто-нибудь перестанет считать Confluence очередной унылой корпоративной википедией и начнет использовать всю мощь этого решения, вовлекая в процесс окружающих.