В этом посте мы расскажем о планах развития Space на текущий год. Мы хотим быть уверены, что движемся в правильном направлении и что функциональность, над которой мы работаем, — именно то, что вам нужно. Официальный выпуск Space 2020 запланирован на 3–4 квартал этого года.
Сейчас Space предоставляется бесплатно в рамках программы раннего доступа. Во время публичного запуска, нам было важно показать возможности Space как интегрированной среды для командной работы, поделиться основными концепциями и ценностями продукта. Поэтому на презентации Space мы продемонстрировали некоторую функциональность, которая, на наш взгляд, крайне важна для процесса разработки, но пока недоступна пользователям.
Что войдет в релиз Space 2020
I. Automation: CI/CD
Когда мы представляли Space, мы говорили о полнофункциональном решении для непрерывной интеграции и развертывания, а также о возможностях автоматизации общего назначения, поскольку считаем их важными аспектами разработки программного обеспечения. Однако мы решили отложить выпуск этой функциональности до тех пор, пока не доведем ее до соответствующего качества. Сразу предупредим, что в Space 2020 не будет полнофункционального CD-решения с поддержкой pipelines и deployment targets. Сейчас наша цель — предоставить базовое CI-решение.
Вот что мы планируем реализовать в первую очередь:
- Поддержка контейнеров: если задачу можно выполнить в контейнере, значит, скорее всего, ее можно выполнить в Automation. В контейнерах вы сможете запустить любую команду (включая команду по умолчанию), любой скрипт или произвольный Kotlin-код.
- Расширенная поддержка Gradle: отображения результатов тестов Gradle, специальные команды для упрощенного запуска сборок Gradle.
- Служебные контейнеры: запускайте дополнительные контейнеры, например контейнеры баз данных, вместе с основным.
- Интеграция с другими модулями Space: используйте Space API для работы с другими модулями прямо из скрипта автоматизации. Например, отправьте сообщение в чат в случае неудачной сборки.
- Интеграция с Packages: публикуйте артефакты Maven в репозиториях в разделе Packages.
II. Рабочий процесс: задачи, чеклисты и персональный список задач
Процесс управления проектами в Space состоит из трех основных этапов: нисходящего планирования, восходящего анализа и выполнения. Здесь наша цель — обеспечить полноценную функциональность на каждом этапе и согласование этапов между собой. Внимательно изучая обратную связь, мы поняли, что управление проектами — очень востребованная функциональность, и работа в этом направлении для нас в приоритете.
Чеклисты
Мы собираемся переработать концепцию чеклистов, чтобы больше адаптировать их к работе по разбиению крупных частей функциональности (эпиков) или итераций (спринтов, версий). Так чеклисты будут лучше соотноситься с эпиками и этапами работы. Мы также работаем над интеграцией с задачами, чтобы вы могли преобразовать любой элемент из чеклиста в новую задачу или связать его с существующей в один клик.
Задачи
- Массовое обновление задач: визуальный интерфейс для выбора и редактирования сразу нескольких задач, включая изменение статуса, исполнителя, тегов, сроков выполнения и т.д.
- Возможность использовать зоны ответственности проектов и их исполнителей (responsibilities) в задачах и чеклистах.
- Улучшенное управление дедлайнами: фильтры, уведомления.
- Поддержка настраиваемых полей.
- Улучшения интерфейса.
Персональный список задач
Если вычеркивать задачи из списка дел — самый приятный момент вашего рабочего дня, вам пригодится персональный список задач в Space.
Список задач — это удобный инструмент для краткосрочного планирования. В него можно одним кликом добавлять различные действия, например: выполнить код-ревью, ответить на сообщение в чате, почитать свежие посты в блоге, оставить комментарий к задаче, прочитать статью или документ в базе знаний — то, что нужно сделать сегодня или завтра.
Список задач снижает уровень информационного шума и позволяет распланировать рабочий день за пару кликов. Он будет работать и в мобильной версии.
III. База знаний
Одна из самых ожидаемых возможностей Space — это база знаний, находящаяся в разработке. Книга — ключевой объект в базе знаний Space. Книги могут быть сгруппированы по темам, например гайдлайны по дизайну или практические советы для PMM-ов; по местоположению, например мюнхенский офис JetBrains; или по проекту, например Space, платформа IntelliJ и т.д.
Первая версия базы знаний будет включать:
- Мои документы:
- Документы можно опубликовать в блоге или добавить в книгу.
- Документами можно делиться.
- Книги и статьи.
- Документы проекта — книги внутри проекта.
- Совместное редактирование — Markdown или WYSIWYG (в зависимости от оригинального формата документа).
- История публикаций.
IV. Расширяемость Space
Мы уделяем много внимания поддержке расширяемости. Приложения — это основной способ расширяемости Space.
Ближайшие планы для приложений:
- Входящие webhooks,
- Слеш-команды и взаимодействия в чатах,
- Поддержка уведомлений из внешних инструментов,
- Улучшения HTTP API.
Мы работаем и над правами доступа:
- Более гибкая схема предоставления прав доступа: для отдельных репозиториев, книг и т.п.;
- Управление правами доступа к приложениям;
- Постоянные токены для простых сценариев доступа через HTTP API;
Вот что планируется сделать для аутентификации:
- Двухфакторная аутентификация и пароли приложений,
- SAML 2.0,
- Ограничение неудачных попыток авторизации и CAPTCHA.
Импорт данных
Наша задача — обеспечить простую и удобную миграцию в Space таких ресурсов, как участники, команды, места, проекты, репозитории, документы, база знаний, роли, задачи и т.д.
Мы планируем обеспечить простой импорт из файлов широко используемых форматов (например, CSV, JSON или XML). Space будет поддерживать единовременный импорт. Мы предполагаем, что более продвинутые варианты миграций, например визарды, будут реализованы нашими технологическими партнерами.
Распространение приложений
Мы предоставим механизм распространения приложений через Marketplace.
Другие важные направления развития Space
I. Плагин для IDE на платформе IntelliJ
Основное внимание в работе над плагином сейчас мы уделяем поддержке код-ревью из IDE. Она включает:
- Просмотр открытых ревью с возможностью отфильтровать их,
- Уведомления о назначенных ревью,
- Редактирование описания и списка ревьюеров,
- Комментарии и ответы,
- Создание нового ревью ветки.
Другие возможности:
- Начальная настройка проекта,
- Поиск пакетов,
- Поиск отсутствующих ссылок на пакеты в проекте прямо в IDE,
- Редактирование скриптов автоматизации Space в IDE и локальный запуск.
II. Встречи и календари
Сегодня каждый из нас пользуется каким-нибудь календарем. Поэтому мы работаем над интеграцией Space с популярными календарями:
- Google Календарь,
- Календарь Microsoft Outlook.
Еще одна важная задача — обеспечить поддержку календарей Space в автономном режиме. Для этого мы собираемся поддержать:
- Приглашение внешних людей,
- Отправку приглашений,
- Ответы на приглашения,
- Уведомления о предстоящих событиях (в десктоп версии и на мобильных устройствах),
- CalDAV API для всех событий в календаре.
Новые возможности
- Унифицированное отображение встреч, отпусков и отсутствия по другим причинам;
- Встречи, продолжающиеся весь день;
- Улучшение в управлении регулярными встречами: можно удалить или изменить отдельную встречу.
III. Чаты и мобильные приложения
Чаты — это центр уведомлений. Поскольку уведомления поступают из всех модулей Space, нам важно оптимизировать механизм их работы, включая умную группировку, гибкие настройки и настройки по умолчанию. Это также одна из главных задач в работе над мобильными приложениям (для iOS и Android).
В наши планы относительно чатов и мобильной версии входит:
- Полнотекстовый поиск по чатам;
- Гибкая группировка уведомлений, связанных с задачами, код-ревью и личными сообщениями, в соответствии с рабочими процессами компании;
- Аудио- и видеозвонки;
- Больше подписок на различные события, например новые коммиты или задачи автоматизации;
- Приложения в чатах (боты и интеграция с внешними сервисами);
- Улучшения производительности;
- Возможность отмечать целые команды, проекты и всех сотрудников, работающих в одном месте;
- Унифицированный статус пользователя: информация об отсутствии, встречах и текущих; действиях (например, работа в IDE или написание поста в блоге), а также настраиваемые статусы.
IV. Внешние участники
Многие пользователи просили нас добавить поддержку внешних участников — людей, которые не являются сотрудниками организации, но авторизованы в Space и имеют ограниченный набор прав. Это могут быть лица, заинтересованные в продукте, клиенты, партнеры и т.д.
Что еще планируется:
- Репликация Git-репозиториев по регионам;
- Настраиваемые рабочие процессы при изменении репозитория;
- Поочередное код-ревью;
- Возможность устанавливать правила для код-ревью: количество ревьюеров, их роли и т.п.;
- Автоматическое создание код-ревью и правила его проведения;
- Поддержка NuGet и NPM;
- Правила очистки репозитория пакетов;
- Поиск уязвимых зависимостей;
- Полнотекстовый поиск по чатам, блогам, командам, задачам, коду и документации;
- Продвинутый анализ данных для предоставления контекстных предложений: разные часовые пояса, график отсутствия и т.п.
Что думаете?
Вот что мы собираемся включить в релиз Space 2020. Надеемся, что вы нашли здесь много полезных функций, которые помогут вашей команде или компании перейти на Space.
Нам важно, что вы думаете. Делитесь своим мнением в комментариях.
Если вы еще не пробовали Space, подайте заявку на участие в программе раннего доступа. В текущей версии Space предоставляется бесплатно.