Зачем я сделал Оргнавигатор
История создания Оргнавигатора: почему одного телефонного справочника оказалось недостаточно и зачем понадобился отдельный инструмент для работы с сотрудниками, подразделениями и помещениями организации.
Сначала немного честности
Довольно долго я не мог решить, как рассказывать об Оргнавигаторе.
Можно было сделать как в других продуктах: написать «наша команда разработчиков», рассказать о профессиональном коллективе, архитектуре продукта и больших планах. Звучит солидно, но никакой команды сейчас нет.
Оргнавигатор делаю только я.
Долго думал, не стоит ли это скрывать. Но за много лет работы я успел заметить одну вещь: в корпоративном общении часто слишком много попыток казаться кем-то другим. Компании изображают масштаб, которого у них ещё нет, специалисты — команды, которых нет, а небольшие проекты стараются выглядеть большими корпорациями.
Мне такой подход не очень близок.
Поэтому здесь будет просто: сейчас Оргнавигатор разрабатывает один человек — я.
При этом я не начинающий программист, который решил попробовать сделать свой первый проект. У меня многолетний опыт разработки веб-приложений и большой опыт рыботы в крупной компании.
И именно там появилась идея Оргнавигатора.
Справочник, которым я пользуюсь каждый день
В компании, где я работаю, больше 10 000 сотрудников.
При таком количестве людей довольно быстро понимаешь, что без хорошего внутреннего справочника работать сложно.
У нас такой справочник есть. Его много лет назад создал один из сотрудников, и со временем он превратился в действительно незаменимый инструмент.
Я пользуюсь им практически каждый день.
Можно найти сотрудника, посмотреть его контакты, понять, в каком подразделении он работает, и разобраться в организационной структуре. Для большой компании это намного удобнее, чем пытаться искать нужного человека в почте, корпоративном портале или среди множества файлов.
В общем, справочник свою задачу выполняет. Но со временем стало понятно, что чего-то ему не хватает.
Организация изменилась, а справочник — не очень
Компания постепенно меняется. Когда-то было вполне естественно считать, что сотрудник работает в конкретном отделе и находится в конкретном офисе. Сегодня это уже далеко не всегда так. Появились сотрудники, которые числятся в одном подразделении, но работают в разных городах. Кто-то постоянно находится в офисе, кто-то работает удалённо, кто-то регулярно перемещается между площадками.
Изменилась и сама информация, которую хочется видеть в справочнике. Контакты есть не только у сотрудников. Они могут быть и у подразделений, и у местоположений.
Постепенно возникали всё новые вопросы, на которые обычный справочник уже не очень хорошо отвечал. Например, мне может понадобиться не просто найти сотрудника, а составить список людей из нескольких подразделений с определёнными полями, добавить к ним собственные комментарии и регулярно использовать его в работе. Или увидеть, кто из коллег собирается в отпуск в ближайшее время.
Когда сотрудники одной команды находятся в разных городах, такая информация становится вполне практической. Она помогает понимать, кто сейчас доступен, с кем можно запланировать совместную работу и когда лучше не назначать важную задачу.
Это уже совсем не телефонная книга.
Почему нельзя было просто добавить эти возможности
На первый взгляд всё просто: нужно было взять существующий справочник и добавить несколько новых функций. Но чем больше я смотрел на задачу, тем очевиднее становилось, что дело не в отдельных функциях.
Чтобы нормально поддержать новые сценарии, пришлось бы менять саму архитектуру приложения. Сотрудник перестаёт быть просто строкой со списком контактов.
Появляются самостоятельные сущности:
- сотрудники;
- подразделения;
- помещения;
- здания;
- местоположения;
- контакты;
- связи между объектами.
Появляется необходимость хранить дополнительные свойства, строить выборки, связывать данные между собой и учитывать разные варианты организационной структуры.
А изменение архитектуры работающего приложения — это уже совсем другая задача. Особенно если приложение много лет используется большой организацией и является важным рабочим инструментом.
Такой проект потребовал бы значительных затрат времени и денег.
И тогда я подумал: а что, если сделать отдельный продукт?
Не ещё один корпоративный портал
Мне не хотелось создавать большой корпоративный портал. Таких систем и так достаточно. В них можно найти документы, новости, заявки, отчёты, календари и множество других вещей. Оргнавигатор задумывался гораздо проще.
Мне нужен был инструмент, который решает одну задачу. Но решает её хорошо.
Эта задача — быстро получить актуальную информацию о сотрудниках, подразделениях и помещениях организации.
Если мне нужно найти человека — я должен найти его. Если нужно понять структуру подразделения — я должен её увидеть. Если нужно разобраться, кто работает в конкретном месте — справочник должен помочь и с этим. Без десятков лишних разделов и функций, которые не относятся к основной задаче.
Что получилось
У меня уже был многолетний опыт разработки веб-приложений. Поэтому я довольно хорошо представлял, как должна быть устроена система, которую хотелось получить. Но я сознательно не стал сразу пытаться реализовать всё.
Сначала сделал минимальную версию - ту, которой достаточно для большинства малых и средних компаний. В ней есть практически вся базовая функциональность - информация о сотрудниках, подразделениях и помещениях организации. Это позволило быстрее запустить продукт и раньше получать обратную связь от реальных пользователей.
Затем в Оргнавигаторе стали появляться "корпоративные возможности". Например, учёт действий пользователей и работа со списками, о которых я писал выше.
Что будет дальше
Проект продолжается.
Сейчас я активно развиваю его, добавляя новые возможности и проверяя их на реальных сценариях использования. Мне интересно сделать не просто программу со стандартным набором функций телефонного справочника, а действительно удобный инструмент, которым самому хотелось бы пользоваться каждый день.
И, пожалуй, это главная причина, по которой я вообще начал делать Оргнавигатор.