Автоматизированное управление проектами на основе redmine

Содержание:

Введение

Сегодня мы будем устанавливать Redmine в ОС Ubuntu

На самом деле, не важно какую версию Ubuntu Вы будете использовать, я пробовал воспроизвести все эти шаги на версиях 16 и 18, разницы в процессе и версиях не было

Для тех, кто только знакомится с операционной системой Linux и не знаком с Redmine, эта информация может быть полезна:

Redmine — это гибкое веб приложение для управления проектом, которое включает в себя диаграммы Ганта, календарь, вики, форумы, настройку ролей и уведомления по электронной почте.

Если у Вас нет необходимости иметь личный Redmine, то Вы можете воспользоваться бесплатным сервисом https://www.redmine.org/.

Некоторые из основных особенностей Redmine:

  • Поддержка нескольких проектов.
  • Контроль доступа на основе ролей.
  • Гибкая система отслеживания задач.
  • Диаграмма Ганта.
  • Календарь.
  • Новости, документы и управление файлами.
  • Ленты и уведомления по электронной почте.
  • Вики и форумы по проекту.
  • отслеживание времени.
  • Пользовательские поля для вопросов, временных записей, проектов и пользователей.
  • Интеграция SCM (SVN, CVS, Git, Mercurial, Bazaar и Darcs).
  • Отслеживание выпусков.
  • Создание задач по электронной почте.
  • Поддержка нескольких аутентификаций LDAP.
  • Самостоятельная регистрация пользователя.
  • Многоязычный интерфейс.
  • Поддержка нескольких баз данных.

Ubuntu — это дистрибутив Linux, построенный на базе другого дистрибутива Linux — Debian, и распространяющийся под свободной лицензией GNU/GPL. В общем-то, думаю всем ясно, что дистрибутив распространяется свободно, и любой пользователь может просто загрузить его для личного пользования. Ubuntu разрабатывается компанией Canonical и поставляется в двух версиях: LTS (дистрибутивы с долгосрочной поддержкой от разработчиков) и простые версии, поддерживаемые не более года. Кстати говоря, совсем скоро ожидается релиз нового LTS-выпуска: Ubuntu 18.04 LTS.

Не стоит забывать про огромную популярность данного дистрибутива. Очень долгое время он являлся первым в мировом рейтинге дистрибутивов Linux, который составлялся, как раз-таки, из соображений популярности того или иного продукта. Более 20 миллионов пользователей отдают предпочтение именно Ubuntu. Операционная система используется и на домашних ПК, и на серверах огромных компаний.

Пропатчите обновления версий

Redmine использует следующую схему нумерации версий: xyz Major/Minor/Patch. Каждая младшая версия имеет собственную стабильную ветку, в которой исправления и патчи безопасности будут применяться с течением времени (до тех пор, пока эта версия все еще поддерживается). В нашем случае это ветвь .

Время от времени эта восходящая ветвь будет получать некоторые новые коммиты. Ваша задача — включить новые коммиты в локальную ветвь для развертывания.

Хотя возможно и просто регулярно дополнять восходящую ветвь, я предлагаю использовать для поддержки собственного набора изменений поверх стокового кода Redmine:

Перебазирование локальных изменений поверх «голого» Redmine:

Команда rebase:

  • Отменит все локальные изменения в .
  • Обновит , чтобы отразить изменения, произошедшие в .
  • Повторно применит все локальные изменения поверх «голой» версии.

Итогом будет являться чистая история, в которой ваши (локальные) коммиты всегда находятся поверх последних (восходящих) коммитов Redmine.

Техническая реализация

  1. Включить талон на выполнение задачи в план. т.е. в определенный спринт. Для этого создается настраиваемое поле «Спринт» типа «Список со множественными значениями». Перечень значений — номера недель, вроде «Неделя 35», т.к. у нас спринты недельные (множественность выбора нужна в случае, если задача выполняется в течение нескольких спринтов);
  2. Указать, сколько времени в течение спринта предполагается потратить на выполнение данной задачи (поскольку задача, например, может иметь оценку трудоемкости в 50 чч, а спринт содержит всего 40 рабочих чч.). Для этого создается настраиваемое поле «Оценка времени на спринт» типа «Целое» или «С плавающей точкой», в зависимости от того, как точно вы оцениваете трудоемкость задач;
  3. Определить последовательность выполнения задач. Для этого создается настраиваемое поле «Очередность выполнения» типа «Целое». В этом поле просто ставиться номер задачи в очереди на выполнение в рамках текущего спринта, т.е. для первой задачи на выполнение — 1, для второй — 2 и т.д. Далее происходит ранжирование перечня по этому полю стандартными средствами Redmine в списке задач.

Поступление заявок в Redmine

На примере расскажу, как мы организовали поступление заявок в Redmine.

Наш отдел КИС делится на 3 группы:

  • Группа разработки;
  • Группа аналитики и сопровождения – сюда входят сотрудники, которые производят уровень поддержки «два с половиной». Они консультируют, анализируют проблему, в случае необходимости «читают» код, могут написать запросы для анализа данных, а также исправить ошибки в коде. В итоге нам удается исключить отвлечение программистов от мелких проблем, а также с помощью аналитиков мы отделяем программистов от заказчиков и обратно, т.к. все, наверное, сталкивались с проблемами взаимоотношений между ними.
  • И группа администраторов БД 1С.

Итак, поступление заявок в Redmine у нас осуществляется через написание обычного письма на выделенный почтовый ящик. Для организации отдельных почтовых ящиков мы в каждом отделе и в каждой группе выделили свою структуру «Проектов», например:

Базовая поддержка — Служба поддержки

Все запросы передаются через окошко Службы поддержки или электронный адрес support@easyredmine.com. После входа на страницу Службы поддержки доступна База знаний.

Устранение неполадок

У нас есть 24 рабочих часа, чтобы проанализировать ваш запрос и либо решить проблему, либо предложить пути ее решения.

Консультирование и запросы, касающиеся функций:

Запрос анализируется и обрабатывается, результаты сообщаются в течение примерно 5 рабочих дней.

Баги:

  • Критически важные баги (не позволяющие работать с программным обеспечением) устраняются в кратчайшие сроки (максимум 2 рабочих дня).
  • Устранение менее срочных багов проводится во время следующего релиза.

Приступим к установке Ubuntu

На самом деле, установка Ubuntu вполне тривиальна и не должна вызывать у Вас вопросов. 

Я не буду подробно описывать все этапы установки, но вот Ваш примерный Roadmap:

1) Скачать iso дистрибутив с официального сайта тут;2) Записать на флешку при помощи Rufus (можно использовать UltraISO и подобные, но могут быть артефакты);3) Вставить в ПК и начать установку;4) Внимательно читать все пункты и делать правильный выбор (чаще всего оптимальные решения выбраны по умолчанию).

Если Вам не хочется ставить себе Linux, но очень хочется его попробовать, то у меня для Вас есть отличные новости!Сегодня я буду использовать готовый виртуальный образ Ubuntu 18 для моих примеров.Рекомендую каждому читателю, даже не обладающему знаниями Linux, попробовать проделать все действия вместе со мной!

Готовый образ с предустановленной версией практически любого дистрибутива Linux Вы можете скачать с osboxes.org. Для виртуализации мы будем использовать VirtualBox под Windows. Скачать его можно тут.Скачиваете Ubuntu 18.04.3 Bionic Beaver (64bit) с osboxes.org/ubuntu и двойным нажатием устанавливаете ее в VirtualBox.И да, мы используем полноценную Ubuntu Desktop с оболочкой и всеми радостями жизни. В идеале Вы должны использовать Ubuntu Server(терминал и никакой оболочки), но для наглядности и удобства мы будем использовать Ubuntu Desktop..

Не забывайте в настройках виртуальной машины выделить максимальное количество видеопамяти, 4гб оперативки и пару ядер процессора.

Для всех образов osboxes пользователь по умолчанию:User: osboxes.orgPassword: osboxes.org

Требования¶

Операционная система

Redmine должен работать на Unix, Linux, Mac, Mac Server и Windows поскольку Ruby доступен для этих платформ. Конкретные инструкции доступны здесь.

Ruby интерпретатор

Соответствие версий Ruby и версий Redmine:

Версия Redmine Поддерживаемая версия Ruby Необходимая версия Rails
текущий trunk ruby 1.9.3, 2.0.0, 2.1, 2.2 Rails 4.2
3.0 ruby 1.9.3, 2.0.0, 2.1, 2.2 Rails 4.2
2.6 ruby 1.8.7, 1.9.2, 1.9.3, 2.0.0, 2.1, 2.2, jruby-1.7.6 Rails 3.2

База данных

  • MySQL 5.0 и выше (рекомендуется)
  • PostgresSQL 8.2 или выше
    • убедитесь, что тип данных установлен в ISO (настройка по-умолчанию для Postgres). Вы можете установить ее используя:
    • некоторые ошибки в PostgreSQL 8.4.0 и 8.4.1 вызывают ошибки в Redmine(#4259, #4314), они исправлены в PostgreSQL 8.4.2
  • Microsoft SQL Server *новое*

    поддержка запланирована для версии 2.3.0 (но она уже доступна в trunk для ранних версий)

SQLite 3 (не для многопользовательского использования!)

Не обязательные компоненты

  • Бинарники системы управления исходным кодом (SCM) (например svn), для просмотра хранилища(должны быть доступны в PATH). Прочитайтехранилища Redmine для получения информации о совместимости и требованиях.
  • ImageMagick (чтобы включить возможность экспорта диаграммы Ганта в png изображение)
  • Ruby OpenID Library (чтобы активировать поддержку OpenID). Требуется версия 2 или выше.

Варианты использования таймера

Таймер кроме основной функции фиксации временных затрат позволяет ответить и на другие вопросы:

На чем я остановился в прошлый раз?

наброски скд. Не идут остатки
Проконсультировался с бухгалтером, следует учесть корректировки
Учитываю корректировки

Тогда при «возвращении» к задаче можно легко при помощи этих крючков «погрузиться» в нужный контекст.

Отвлекают по другим задачам.

Как узнать сколько вы тратите на работу именно по этой задаче? Вы честно включили таймер, поработали десять минут и тут вас отвлекли. Например, подошел коллега и спросил мелочь, которая вылилась в полноценное обсуждение и отняла где-то час. Знакомо? В итоге таймер зачел время, но совсем по другой задаче. 

В тот момент когда коллега подошел и задал вопрос можно переключиться на другую задачу «Консультирование коллег», которая всегда где-то в дежурных. В итоге таймер зачтет деятельность по обеим задачам.

Можно сформировать отчет по задачам для печати.

Более функциональный отчет по сравнению с Redmine для совещаний. 

Версии¶

Projects versions allow you to track and plan changes. You can assign issues to versions and then view the list of assigned issues for each version on the roadmap.You can also assign a wikipage to a version which will be added to the roadmap and the version overview.

Note: the roadmap menu-item shows up in the project-menu only when the issue tracking is enabled for the project and at least one is configured in the projects settings.

Name: The text you want to be displayed to identify the version. This field is required.

Description: A short description to describe the version. This field is optional.

  • Status: the status lets you control how issues can be assigned to the version:

    • open: no restriction (default)
    • locked: can not assign new issues to the version
    • closed: can not assign new issues and can not reopen assigned issues

Wiki Page: The name of a wikipage assigned to the version. This field is optional.

Date: The due date for the version to be completed. This field is optional.

  • Sharing: this option lets you share the version with other projects, so that issues from these other projects can be assigned to the shared versions. Each version can be shared with:

    • subprojects: all the descendant projects
    • projects in the project hierarchy: ancestors + descendants (needs versions management permission on the root project)
    • projects in the project tree: root project + all its descendants (same as above)
    • all projects (can be set by admin users only)
---------------------------------------------------------------------------------
| None          | Subprojects   | Hierarchy     | Tree          | All projects  |
|               |               |               |               |               |
|      X     X  |      X     X  |      o     X  |      o     X  |      o     o  |
|      |     |  |      |     |  |      |     |  |      |     |  |      |     |  |
|    --X--   X  |    --X--   X  |    --o--   X  |    --o--   X  |    --o--   o  |
|   /  |  \     |   /  |  \     |   /  |  \     |   /  |  \     |   /  |  \     |
|  X   V   X    |  X   V   X    |  X   V   X    |  o   V   o    |  o   V   o    |
|     / \       |     / \       |     / \       |     / \       |     / \       |
|    X   X      |    o   o      |    o   o      |    o   o      |    o   o      |
|   /           |   /           |   /           |   /           |   /           |
|  X            |  o            |  o            |  o            |  o            |
---------------------------------------------------------------------------------

V = project with the shared version
o = projects that can assign issues to the shared version
X = projects that can't assigne issues to the shared version

From the versions list, you can click on Close completed versions to automatically set the status of all the completed versions (due date reached and no open issues) to closed.

Просмотр задач¶

На странице просмотра задачи вы можете увидеть текущее состояние работы над задачей и что уже сделано в процессе решения задачи. Сообщения отображаются в хронологическом порядке, начиная от самых старых и заканчивая самыми новыми. Можно цитировать сообщения других, а также редактировать свои.

Связанные задачи

Связывание задач позволяет разработчикам избавиться от дублированных задач путем их объединения друг с другом, либо обозначить последовательность решения задач.

связана с — Просто добавляет ссылку на другую задачу

дублирует — Связывает задачи так, что при закрытии задачи оригинала — будет закрыта и задача дубликат Например, если задача B дублирует задачу A: — закрытие B оставит A открытой — закрытие A автоматически закроет B

дублируется — Обратное от дублирует Например, если задача A дублируется задачей B: — закрытие B оставит A открытой — закрытие A автоматически закроет B

блокирует — Связывает задачи так, что закрытие блокированной задачи невозможно, пока не будет закрыта задача-блокиратор Например, если задача B блокирует задачe A, A не сможет быть закрыта, пока не закрыта B.

блокируется — Обратное от блокирует

  • предыдущая — Связывает задачи, определяя порядок их выполнения, где задача A должна быть завершена за x дней до того как задача B должна быть запущена Например, если задача A предыдущая задаче B, вы не сможете установить дату начала задаче B равную или меньше дате окончания задачи A.
  • следующая — Обратное от предыдущая Например, если задача B следующая задаче A (например A заканчивается 21.04, а B начинается 22.04) и вы устанавливаете +2 дня к окончанию задачи А, то даты начала и окончания задачи B сдвинуться на +2 дня тоже.

Администраторы могут установить пользователей для добавления и редактирования таких отношений.

Наблюдатели

Показать список всех пользователей, которые следят за этой задачей. При обновлении задачи, данным пользователям будут разосланы уведомления.

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

Администраторы могут установить пользователей, чтобы добавлять/удалять наблюдателей.

Связанные редакции

Если администратор указал , то при использовании разработчиком этих слов или слова комментарий к коммиту будет отображен на странице задачи в блоке Связанные редакции (в основном справа от первого ответа).

Styling text using CSS¶

Textile can style text using CSS. Examples as follows:

Three primary colors of light are %{color: #f00}red%, %{color: #0f0}green% and %{color: #00f}blue%.

p{border: solid 1px #000; padding: 0.5em;}. The quick brown fox jumps over the lazy dog.

table{width: 100%}.
|={width: 30%; background-color: #aaf;}. column 1 |={width: 70%}. column 2 |

displays:

Three primary colors of light are red, green and blue.

The quick brown fox jumps over the lazy dog.

column 1 column 2

Allowed CSS properties

Redmine allows the following properties. Other properties are not allowed for security reasons (see r2192).

  • background
  • background-*
  • border
  • border-*
  • color
  • float
  • font
  • font-*
  • height
  • margin
  • margin-*
  • max-height
  • max-width
  • min-height
  • min-width
  • padding
  • padding-*
  • text
  • text-*
  • width

Helpdesk или как автоматизировать поддержку клиентов в Redmine

Чем вам может быть полезен Helpdesk в Redmine:

  • Helpdesk автоматом создаст тиккет из email клиента (или из контактной формы).
  • Заодно создаст и карточку контакта (если это новое обращение).
  • Вы сможете привязать задачу к контакту (история обращений по клиенту).
  • Сохраните время и отвечайте готовыми ответами (шаблоны ответов).
  • Организуйте уровни поддержки (SLA).
  • Отслеживайте метрики службы поддержки (время первого ответа и т.д.).
  • Попросите клиентов оценить работу саппорт менеджера (оценка менеджеров).
  • Настроить авто-ответы (указать ожидаемое время ответа или ссылку на FAQ).
  • Вы можете установить всплывающее окно и начать диалог с клиентом первыми (Pop-up форма обратной связи).

Кому и для чего нужен Redmine?

Для руководителя — это возможность оперативного управления:

    • прослеживаемость процессов работы над проектами;
    • распределение временных затрат в разрезе проектов и задач;
    • просмотр загрузки сотрудников на месяц или период.

Для исполнителя — упорядоченная работа благодаря:

  • хранению всей сопутствующей по проекту документации — договоры, соглашения, счета, коммерческие предложения и другое;
  • прослеживанию полного цикла отношений (требований) с заказчиком;
  • теги и фильтры позволят за пару кликов найти необходимую информацию, вне зависимости от размера базы данных;
  • wiki для каждого проекта;
  • форумы для каждого проекта.

Система Redmine предоставляет следующие функциональные возможности:

  • ведение множества проектов одновременно;
  • гибкая система доступа, основанная на ролях;
  • система отслеживания ошибок;
  • диаграммы Ганта и календарь;
  • ведение новостей проекта, документов и управление файлами;
  • оповещение об изменениях с помощью RSS-потоков и электронной почты;
  • вики для каждого проекта;
  • форумы для каждого проекта;
  • учёт временных затрат;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
  • лёгкая интеграция с системами управления версиями (SVN, CVS, Git, Mercurial, Bazaar и Darcs);
  • создание записей об ошибках на основе полученных писем;
  • возможность самостоятельной регистрации новых пользователей;
  • многоязычный интерфейс (в том числе русский);
  • поддержка СУБД MySQL, Microsoft SQL Server, PostgreSQL, SQLite, Oracle.

На сегодня главные задачи, которые решает система Redmine в НИЛ «КСА»:

  • документирование процесса проектирования;
  • ведение записей;
  • справочная и информационная база;
  • календарь и органайзер проекта;
  • планирование задач и этапов;
  • контроль достижения результатов;
  • оповещение в случае сбоев и задержек.

Все работы по проектированию выполняются с использованием системы Redmine.

Почему Redmine?

  • Это сладкое слово «халява». Redmine бесплатен, правда, с оговоркой, что к нему есть платные плагины, которые вы сами для себя выбираете. В любом случае у вас появляется какое-то прогнозирование затрат, потому что если вы купили плагин и не меняете платформу Redmine, то какое-то время этим плагином можно пользоваться без дополнительных вложений. А если вам, например, нужно его обновить, то вы платите за это обновление и используете его дальше. Обновление платформы Redmine происходит раз или два в год, а обновляться или нет – это уже по вашему желанию.
  • У Redmine интуитивно понятный интерфейс. Мы у себя внедрили Redmine не только как продукт для управления ИТ, но и как продукт, куда поступают заявки от пользователей для различных отделов. Например, выделена отдельная ветка для заявок административно-хозяйственного отдела.
  • Есть возможность управления приоритетами в различных аналитических формах, в том числе и индивидуально по задачам.
  • Управление временем и ресурсами. Я думаю, что это – основной блок для руководителя. Он позволяет понимать, насколько загружен его отдел, с какими задачами какие затраты связаны и как можно классифицировать затраты, но об этом ниже.
  • Аналитика и отчеты в Redmine выражены слабо, но есть обширный API. Можно взять данные из базы по API, выгрузить их в свою систему и получить любые отчеты.
  • Гибкие настройки, кастомизация и автоматизация ручных операций с помощью плагинов.
  • Интеграция с Git – это один из важных показателей. Хранилище нашей базы подключено к GitLab, и в любой задаче Redmine можно посмотреть логи (связанные редакции): кто, когда и что изменил по этой задаче, с переходом в GitLab.

Для информации: Git — это распределенная система управления версиями. Она отслеживает, фиксирует и хранит информацию (версии) об изменениях в любых файлах и каталогах, а также следит за целостностью данных. В нашем случае речь идет об исходном коде 1С.

Вот так выглядит список связанных редакций:

Настройка и тестовый запуск Redmine

Настройка базы данных

Файл является примером как должен выглядеть конфиг подключения к БД. Создадим конфиг:

Запишем в конфиг данные для работы с БД:

Сборка зависимостей и решение проблем

Теперь надо собрать все зависимости RoR приложения:

Используя PostgreSQL в качестве СУБД команда может закончится ошибкой связанной с модулем :

Решение нашел здесь, а именно:

Для MySQL тоже возникает проблема с модулем mysql2 (детали ошибки аналогичны как и для PostgreSQL). Решение нашлось здесь, а именно:

Еще была проблема с nokogiri, решение нашел здесь, а именно:

Не забываем опять запустить

Инициализация БД

Теперь нужно сделать : сгенерировать случайный ключ для сессий, создать структуру БД и инициализировать данные в БД:

Тестовый запуск

Пробуем запустить Redmine на webrick:

Если запуск прошел успешно, то на 3000 порту можно посмотреть сайт ( или ).

В продакшене не рекомендуется использовать webrick, поэтому двигаемся дальше.

Unicorn

В запишем зависимость:

Создадим конфигурационный файл для unicorn:

И вставляем туда текст конфига:

И опять:

Создаем директории в соответствии с конфигом и меняем владельца:

Теперь выполнив (если нет ошибок), можно запускать unicorn (из директории ):

Уничтожить процесс unicorn можно по :

Или вот еще варианты уничтожения процесса Unicorn.

Nginx

Ставим nginx:

Пишем в конфиг nginx (у меня путь ), в секцию (при этом виртуальные хосты должны быть отключены):

Или вот полный конфиг (для доступа к Redmine по ip адресу):

Перезагружаем nginx:

Если nginx запустился без ошибок, то пробуем обратится на сайт по адресу (или по ), Redmine должно работать.

Младшие и старшие обновления

Теперь, когда есть новая стабильная ветвь (скажем, ), делайте то же самое — перебазируйте ваши изменения поверх неё. Команды git будут немного отличаться из-за изменения восходящей ветви:

Перенос локальных изменений в новую стабильную ветвь

Эти команды вначале создают две новые локальные ветви для версии 3.3: одну из восходящей, а другую — из локальной ветви 3.2. Затем они перебазируют локальные изменения поверх . Локальные изменения здесь — это разность между и (что по-прежнему является ). Теперь содержит Redmine 3.3 плюс любые локальные изменения.

Для новой старшей версии требуется сделать то же самое.

Еще немного о функциях Redmine

Из дополнительных полезных функций в Redmine хотелось бы выделить:

Режим аутентификации – либо по ad, либо по логину и паролю;

  • Объединение пользователей в группы. С помощью этого инструмента можно сформировать внутри Redmine иерархическую структуру предприятия. Существуют плагины по интеграции с учетной системой и клонированием ее структуры в группы;
  • Ролевая модель прав, с множественной разноуровневой настройкой;

Настройка Workflow (жизненного цикла) каждого трекера для каждой роли;

  • Также существуют плагины для интеграции с системами мгновенного обмена сообщениями, такими как Telegram, и SMS-шлюзами. По любому каналу связи можно присылать оповещения, например по возникшим инцидентам, мониторинговые сведения и т.д.;
  • При наличии компетенции есть возможность просто самим сделать любые плагины.

Настройки SCM¶

  • изменить имена команд по-умолчанию, если бинарники SCM в используют нестандартные имена (Windows .bat/.cmd не работают)
  • определить полный путь к бинарникам

Пример(для Subversion):

Переопределение имени команды:

scm_subversion_command: "svn_replacement.exe" 

Абсолютный путь:

scm_subversion_command: "C:\Program Files\Subversion\bin\svn.exe" 

Настройка хранилища вложений

Вы можете задать путь, где Redmine будет хранить вложения, который отличается от стандартного ‘files’, используя параметр .

Примеры:

attachments_storage_path: /var/redmine/files
attachments_storage_path: D:/redmine/files

Configuration¶

Redmine settings are defined in a file named .

If you need to override default application settings, simply copy to and edit the new file; the file is well commented by itself, so you should have a look at it.

These settings may be defined per Rails environment (//).

: don’t forget to restart the application after any change.

SCM settings

  • override default commands names if the SCM binaries present in the variable doesn’t use the standard name (Windows .bat/.cmd names won’t work)
  • specify the full path to the binary

Examples (with Subversion):

Command name override:

Absolute path:

Attachment storage settings

You can set a path where Redmine attachments will be stored which is different from the default ‘files’ directory of your Redmine instance using the setting.

Examples:

Автозагрузка

Почитать о том, что происходит ниже можно здесь и здесь.

Идем в и создаем файл :

Записываем туда:

Вкратце:

  • PIDFile — , по которому будет отслеживаться жизнь процесса

  • User и Group — юзер и группа, от которых будет производится запуск

  • ExecStart — команда запуска

  • ExecReload — команда перезагрузки

  • ExecStop — команда остановки

  • RestartSec — рестартовать процесс через N времени в случае если процесс отвалился

, , могут быть путями до bash скриптов. Именно так и было мной сделано (потому что прежде выполнения команд старта/перезагрузки необходимо было разворачивать окружение, сделать это в файле конфига не представлялось возможным :))

Создаем файлы скрипты в меняем владельца и группу, и ставим права на запуск:

для запуска unicorn (запускаем , переходим в директорию с redmine — установится нужное окружение, запускаем unicorn):

для остановки сервиса:

для перезапуска сервиса (останавливаем и запускаем):

Теперь просмотрев статус сервиса можно увидеть:

Включаем сервис:

Теперь можно //.

Запустим сервис:

Бог ты мой, у меня конфликты!

Рано или поздно (вероятно, уже во время первого обновления до новой младшей версии) вы столкнетесь с конфликтами слияния. Во время ребазирования Git применяет коммиты один за другим и останавливается каждый раз, когда применение коммита происходит с ошибками. В этом случае команда покажет проблемные файлы.

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

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

Определимся с терминологией

СпринтОперативный план сотрудникаВ первую очередь необходимо понять — для кого нужен оперативный план и какая от него польза?

Предпосылки для успешного применения оперативных планов

  • Группа исполнителей выполняет однотипные специализированные задачи (как на конвейере). Пример — небольшие доработки ПО по заявкам пользователей в третьей линии техподдержки;
  • Задачи не являются сверхсрочными (могут некоторое время находиться в очереди);
  • Приоритет задач меняется редко;
  • Сверхважные задачи, которые автоматически встают в начало списка и сдвигают остальные задачи, приходят редко;
  • Длительность задач обычно не превышает времени спринта (в основном меньше).

Получается, что оперативный план нужен для

  • Сотрудников групп, которые работают с большим количеством небольших по длительности выполнения задач, а сами задачи могут поступать из различных источников;
  • Менеджеров вроде технических директоров и начальников отделов, которые хотят знать, насколько загружены сотрудники, верно ли выбраны приоритеты задач.

Изменения в версиях

Версия 1.5 (30.05.2020)

Поддерживается работа с переадресацией запросов

Версия 1.4 (27.05.2020)

  • Добавлен «Отчет по задаче» для печати связанных задач
  • Исправлена ошибка при открытии обработки с неправильными настройками соединения

Версия 1.3 (15.03.2020)

  • Возможность быстрого переключения между задачами двумя кликам
  • Настройка выбора заполнения при старте таймера вида деятельности и комментария под себя: очищать, заполнять последними, оставить как есть           
  • Интерфейс:

               — Кнопка открыть текущую задачу в Redmine
               — Кнопка скрыть решенные задачи (настраиваемый список статусов)
               — Настройка расположения кнопок таймера
               — Настройка изменения размера шрифта кнопок таймера
 Версия 1.2 (12.02.2020)

  • Добавлена настройка расположение кнопок таймера под разные ширины экрана
  • Добавлены настройки поведения заполнения при старте таймера

 Версия 1.0 (03.01.2020)

Базовый функционал

Управление командой

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

Что вы можете делать в Redmine с помощью модуля People:

  • вести учет сотрудников;
  • подбирать нужного сотрудника;
  • планировать отпуска сотрудников;
  • планировать праздничные мероприятия;
  • отправлять оповещения команде;
  • формировать счет по затраченному времени в проекте.

Итак, открываем список контактов (сотрудники) в Redmine и по тегу «Ux-Ui» отбираем потенциальных дизайнеров. Нам предстоит выбрать из 15 человек. Смотрим портфолио и последние работы на наличие IOS проектов — осталось 5.

Отбрасываем капризных и дизайнеров-хипстеров, потому как если их вариант не примут с первого раза — расстроятся и раскиснут. Как мы это узнали? Из истории прошлых проектов — комментарии менеджеров и коллег.

Отбрасываем тех, кто работает в настоящий момент в компании на фул тайме, так как сроки не позволят работать по выходным и когда муза придет. У оставшихся 2-х кандидатов есть все шансы — отправляем им детали проекта и запрашиваем ценник. В итоге выбираем одного.

По итогам работ, на основании затраченного времени выставляем счет, который тут же можно отправить по почте.

Структура «Проектов»

Мы используем Redmine не по стандартному руководству. Как пример, в рамках системы понятие «Проект» – это отдельная ветка в иерархии структуры. Мы же используем дерево «Проектов» как классификацию уровней. На верхнем уровне находится отдел-исполнитель, ему подчиняются обслуживаемые департаменты, далее идут системы, подсистемы и сервисы.

Примерно так выглядят части дерева:

В отделе системного администрирования также используется свой подход иерархии «Проектов». Работа выстроена на основе классификации предоставляемых сервисов – это помогло решить проблему с сервисным управлением. Поэтому в ветке ITSM иерархия «Проектов» – это каталог бизнес-сервисов. Для удобства они пронумерованы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector