Расскажу вам сказку про разделение прав доступа на уровне небольшой организации, которая успешно растет в большую корпорацию.

Программист Семен устроился однажды в молодую, перспективную компанию, с дружным, слаженным коллективом. По крайней мере, HR-менеджер все так описала, приятным голосом на собеседовании. Оказалось, что это филиал в пятом колене дочки какой-то крупной нефтяной корпорации. И сотрудники банально перепродавали трубы и всякие металлические конструкции, которые собирали по всей России-матушке у разных заводиков.

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

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

Семену пришлось засучить рукава и погружаться в дремучий легаси-код.

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

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

Программист залезает в исходный код и видит, что пользователи навалены общей кучей. И программист-новичок берет логин пользователя Вася и везде в коде ставит условие, чтобы Вася не мог удалять записи. А Коле можно редактировать и удалять. Начальнику можно удалять. Директору можно все, поэтому на него проверку не ставим. Вроде разрулил, показал директору, попробовали удалять под логином Васи – не дает, значит все правильно теперь можно спокойно работать дальше.

Проходит месяц, Васю все-таки увольняют и нанимают Машу. Маша совсем не злая, она просто немного не шарит. И пока болтает с подружкой в вотсапе, иногда промахивается и удаляет не те записи! Директор снова в бешенстве, вызывает программиста на ковер и спрашивает: «Ах, ты паршивец! Я тебе за что деньги плачу! В прошлом месяце ты все исправил, чтобы нерадивые не могли удалять, почему Маша удалила? Почини немедленно!»

Семен покраснел, помялся, пробубнил что-то про сложность кода и отправился в свою каморку исправлять проблему.

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

Так появилось следующее разделение:

Администраторы – могут все.

Начальники отделов – могут все, но только с теми записями, которые создали его подчиненные.

Работники – могут все, но только со своими записями.

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

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

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

Так незаметно пролетело полгода, все радостные и довольные работали не покладая рук. Трудолюбивые и добросовестные создавали добавленную стоимость, нерадивые и зловредные не могли этому помешать.

Но однажды директор в сауне встретился с новыми деловыми партнерами. Там он узнал, что Россия-матушка богата не только нефтью, но и лесом, который замечательно продается в Китай.

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

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

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

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

Все вы играли в «Морской бой» или «Шахматы». Есть ось X и Y. На поле мы располагаем корабли или шахматные фигуры, а чтобы определить местоположение достаточно знать всего два значения X и Y.

В случае нашей большой корпоративной системой, мы представим, что группы сотрудников — располагаются на оси X, а функции, которые доступны каждой группе на Y. Теперь, чтобы делегировать права на выполнение операции группе, нужно просто поставить одну галочку напротив нужной группы и функции.

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

Дела у компании пошли в гору. Отдел маркетинга тоже постарался. Машины поставляли быстро, качество отличное. Правда, потребовались потом запчасти искать для ремонта, но и тут наш герой Семен не подкачал, быстро накидал новый интерфейс для заказа и поставки запасных частей.

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

Но это уже история про микросервисы, про которые я расскажу в следующих главах.

Вывод

Финальная мысль, которую я хочу донести до аудитории и во что я верю: для создания действительно мощной корпорации необходимо растить собственную IT-систему, которая будет каждой строчкой кода оплетать бизнес-структуру компании. Я размещал эту статью на других площадках, везде твердили про 1c – что она может все это сделать на раз-два. Для бухгалтерии, возможно, 1с в России лучшее решение. Но для бизнес-архитектуры руководителю необходимо вырабатывать собственное видение, тогда будет рост.

Когда предприниматель до атома понимает, что движет тем или иным процессом, а главное, как на это можно повлиять, тогда появляется тот самый рычаг для «поднятия Земли». И пусть на это уйдет десять или двадцать лет, но шанс не быть смытым конкурентами при очередном кризисе возрастает, когда ты действуешь не как 99% компаний на рынке.

Комментарии (24)


  1. kraamis
    23.01.2022 12:47
    +2

    Так Вася хороший или он мудак?


    1. ZhilkinSerg
      23.01.2022 12:49
      +12

      Это ладно, меня больше интересует, как маленькие компании вырастают в корпорации.


  1. Tzimie
    23.01.2022 12:56
    +2

    А секретарша у директора красивая?


  1. mSnus
    23.01.2022 14:35

    Тема Cisoc не раскрыта

    А вообще это, видимо, сказ о том, как @nmivan должность сказителя делегировал делегировал, да не выделегировал..


  1. lair
    23.01.2022 17:04
    -1

    Финальная мысль, которую я хочу донести до аудитории и во что я верю: для создания действительно мощной корпорации необходимо растить собственную IT-систему, которая будет каждой строчкой кода оплетать бизнес-структуру компании.

    А что такое "собственная IT-система"? Правильно настроенная коробочная — это собственная или нет?


    1. Rumantic Автор
      23.01.2022 17:12
      -2

      Думаю, что любая коробка уже обязывает и навязывает собственное видение для предпринимателя. Ему ничего не остается, как быть ведомым по какому-то пути, которому следуют все пользователи коробки.

      Конечно, не нужно писать свой Windows и изобретать язык программирования, нужно взять готовые технологии (Java EE, например) и строить собственную систему.


      1. lair
        23.01.2022 17:51
        -1

        Конечно, не нужно писать свой Windows и изобретать язык программирования, нужно взять готовые технологии (Java EE, например) и строить собственную систему.

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


        1. Rumantic Автор
          23.01.2022 17:58
          -2

          Конечно, а как иначе вырастить большую компанию, которая будет обходить конкурентов?

          Придется пилить свое и вкладывать много ресурсов в это.


          1. lair
            23.01.2022 18:00
            +1

            Конечно, а как иначе вырастить большую компанию, которая будет обходить конкурентов?

            Вкладывать ресурсы в профильный бизнес, нет?


            Придется пилить свое и вкладывать много ресурсов в это.

            Почему придется-то? Прекрасно живут компании, которые покупают ERP-системы (вы список клиентов SAP или Dynamics или NetSuite видели?).


            1. Rumantic Автор
              24.01.2022 04:52

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


              1. lair
                24.01.2022 05:00

                Только все эти титаны, работающие на SAP, Dynamics и т.д. уже до внедрения были большими корпорациями.

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


                А вот в маленькой компании поставить SAP нереально из-за дороговизны и отсутствия специалистов.

                Ну поставьте не SAP, а другую ERP (хотя даже у сапа есть предложение для SMB), в чем проблема-то?


                Спецы, которые шарят в SAP все уходят в газпромы, тяжмаши и прочие промы.

                А спецы, которые способны сами написать ERP, что делают в маленькой не-разработческой компании?


          1. lair
            23.01.2022 18:23

            Забавно, кстати, продолжить вашу аналогию для компаний, которые занимаются разработкой ПО. Для них аналог ERP — это багтрекер.


            Значит ли ваш подход, что каждая компания, разрабатывающая ПО, должна написать свой багтрекер? Свою систему управления версиями? Свой CI/CD?


            1. Myclass
              23.01.2022 21:30
              +1

              Я соглашусь со всеми вашими словами. Но. Также как и автор переходит на крайность, так и вы. Покупка и допиливание вроде до ума - тут тоже нет никакой гарантии, что это произойдёт. В одной фирме воочию наблюдал 5 летний проект перехода с одной версии на новую в SAP. В это время была создана своими руками альтернатива. Всё думаю зависит от исходной ситуации, устаконившейся ит-культуры, актуальных комманд и их опыта для возможных создаваний или поддержки таких сложных проектов как CRM или ERP. И если этих условий нет и не ожтдаются, а только хотелки, то и результат будет не тот, что ожидать будут. Но точно также и с собственной разработкой. Здесь тоже вероятность небольшая - довести всё до более менее успешного конца. Поэтому не всё однозначно.

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


              1. lair
                23.01.2022 21:32

                Также как и автор переходит на крайность, так и вы.

                А на какую крайность я перехожу?..


                1. Myclass
                  24.01.2022 16:45

                  в интерпретации. Ваши слова «Вкладывать ресурсы в профильный бизнес, нет?». Если-бы амазон занималось-бы только продажей книг — не было-бы той амазон, какая она сейчас. Поэтому и говорю, подтверждать сказанное автором — не есть правильно, но и то, что он говорит — тоже иногда работает. Да ещё и как! Но как и сказал — я с вами согласен.


                  1. lair
                    24.01.2022 16:47

                    в интерпретации. Ваши слова «Вкладывать ресурсы в профильный бизнес, нет?».

                    Это ваша интерпретация. Я не говорил "только в профильный бизнес".


                    Ну и да, амазон, когда он занимался только профильным бизнесом — то есть только торговлей книгами — не обходил конкурентов?


                    1. Myclass
                      24.01.2022 17:24

                      соглашусь, так послышалось.


  1. DabjeilQutwyngo
    24.01.2022 04:40
    +1

    Тем, кто верит в 1С и прочие "системы из коробки", можно дать куда более простые задачи, чтобы их фанатизм сильно поубавить: соединить бэк-офис с сайтом с синхронизацией в режиме реального времени и завести продукцию, несколько более разнообразную и сложную по своему устройству, чем обувь. Скажем, есть продукт, и у него есть разные формы выпуска, предполагающие разную цену. Свойства продукции образуют сложную структуру. Продукты объединены в линейки и различаются ещё и по версиям (потому что разный техпроцесс изготовления, что имеет значение для потребителя). Кроме того, различаются по странам и имеют срок годности. Разновидностей продуктов, линеек и форм выпуска порядка 10000 различных по каждому измерению. Новые версии появляются каждый год.

    И это ещё не затрагивали ключевую задачу продаж: делать товарные предложения с разными коммерческими условиями для одной и той же продукции разным контрагентам и торговым площадкам. А там и управление акциями на продукцию сразу возникает.

    Ну и чтобы окончательно добить фанатиков 1С и "систем из коробки" по этой теме, поставьте им задачу управления комплектами. Не наборами, предусмотренными в 1С, а именно комплектами, которые описываются фиксированным набором пар (товарное предложение; количество). А товарное предложение может быть и на комплект, т.е. может строиться сложная структура. Количество может варьироваться по некоторым правилам, зависящим от объёма заказа или заказа какой-то другой продукции, а может быть фиксированным.

    Можно пойти дальше и продолжать издеваться над бизнес-процессами, зашитыми в 1С. Она ведь, типа, так гордится своей функциональностью склада. Скажем, вы не можете себе позволить игнорировать цену закупки: у вас несколько поставщиков одной и той же продукции, ещё и по разным коммерческим условиям. Поэтому цену требуется хранить для каждой поставки и учитывать при каждой продаже, чтобы контролировать сделки по маржинальности (не говоря уже про массу других свойств и характеристик). Разумеется, списывать остатки требуется по конкретным поставкам. А о переоценке товара, чтобы везде назначить одну цену, не может быть и речи.

    Но и это не самое страшное для 1С: её единственная бизнес-модель торговли – закупка на склад для последующей реализации. В пику этой бизнес-модели фанатам 1С поставьте задачу продажи под заказы покупателей: т.е. на основании заказа покупателя производится закупка и списание остатков, а впрок и на будущее не закупается из-за неприемлемого риска, что потом не выкупят. И всё это должно взаимодействовать с сайтом в режиме реального времени и показывать актуальные остатки, чтобы, скажем, Яндекс.Маркет не забанил, когда их роботы будут проводить проверку. Хотя маркетплейсов куда больше, это исключительно для примера, где проверка сделана наиболее тщательно.

    Так что да: кто не делал такую функциональность, слабо представляют себе её реальную трудоёмкость, хотя в ней нет ничего сложного, когда всё в твоих руках. Делать же универсальную систему типа 1С или "системы из коробки" намного сложнее, чем воплощать определённые бизнес-процессы. И самое большое ограничение любого бизнеса, особенно в части развития и скорости роста – это аккурат "система из коробки": её разработчики всегда зашивают определённую самую простую бизнес-модель, совершенно непригодную для маломальски развитого и эффективного бизнеса. Изменить или адаптировать "систему из коробки" часто стоит намного дороже, чем написать свою. Хотя бы потому что не контролируешь важнейшие модули и функции системы, которые никто не будет менять.

    Рассуждения на тему профильности бизнеса – отличная уловка для тех, кто не знает о проблемах "систем из коробки" и реальной цены их интеграции с другими системами. Исполняющие механизмы определяют жизнеспособность всего, что на них будет работать. Достаточно изучить пример Google: с чего это они сделали свою ОСь для смартфонов и свой браузер? Очевидно, чтобы занять место исполняющих устройств и начать диктовать остальным тренды развития того, что бегает на исполняющих устройствах. Итогом этого стал захват стандарта HTML в 2017 году вместе с ещё тремя компаниями, и проект Chromium, в который закомитить код можно лишь с разрешения Google, фактически. И теперь компании осталось лишь выкинуть остальных производителей браузеров, чтобы установить полностью свои правила в отрасли. А ведь сперва это был просто поисковик и рекламная платформа. Где реклама, а где ОСь для смартфонов? Вот и все рассуждения про профильность бизнеса: кто первый поверил – тот проиграл.

    PS
    Ваш директор выбрал жизнеспособную стратегию. Однако может упереться, как всегда, в торможение развития своей ИТ-системы, если игнорировать технологии и процессы разработки. А судя по посту, такого игнорирования было много на начальном этапе. Причём терять будет на стоимости внесения изменений, т.к. очень многое делается путём эксперимента через реализацию, т.е. самый дорогой путь выяснения и прояснения требований.


    1. lair
      24.01.2022 05:12
      -1

      Можно пойти дальше и продолжать издеваться над бизнес-процессами, зашитыми в 1С.

      А вы с другими системами, кроме 1С, работали? А то у вас все примеры как-то ей ограничиваются...


      Так что да: кто не делал такую функциональность, слабо представляют себе её реальную трудоёмкость, хотя в ней нет ничего сложного, когда всё в твоих руках.

      Хм. Вот у нас есть компания, торгующая вином и прочим алкоголем где-нибудь в США. Весь ее IT-отдел — три человека, из которых один — IT-директор. Сколько у них времени уйдет на написание простенького фронтенда (чтобы был интернет-магазин), бэкенда (чтобы можно было заниматься магазином, всеми финансами, складом), расчета налогов и отправки ну скажем через USPS? Мобильное приложение, так уж и быть, приятный, но не обязательный бонус.


      Достаточно изучить пример Google: с чего это они сделали свою ОСь для смартфонов и свой браузер?

      И сколько у Google в этот момент уже было ресурсов?


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


      1. DabjeilQutwyngo
        25.01.2022 23:16
        +1

        А вы с другими системами, кроме 1С, работали?

        Странный вопрос: в посте было рассмотрено предложение 1С, в комментариях 1С и "системы из коробки" как "правильное решение" лишь ради идеи "не самопал"/"не самопис". Смысл комментария – в ответе на эти утверждения разом из накопленного опыта, когда делаем что-то чуть более сложное, чем это представляют себе разработчики "систем из коробки".

        Разумеется, видел, спрашивал, копался, анализировал, работал, интегрировал, разрабатывал для них и делал свои решения и адаптации: InSales, МойСклад, ЕКАМ, Битрикс, Cleverence (это из наиболее позднего опыта). Готовые платформы для создания нишевых мобильных приложений, транспортные компании, агрегаторы сервисов доставки (по стране и миру), логистические сервисы и маркетплейсы перечислять не буду: со многими довелось иметь дело, все они как "яйца Фаберже" со схожими проблемами, восходящими к одним и тем же "абстракциям" и упрощениям, порождающим проблемы, в итоге. Мне не встретилось ни одного решения "из коробоки", не требовавшего серьёзной доработки функциональности, чтобы быть пригодным для уже существующего бизнеса (т.е. от 5 лет ему, это не стартап). Все они сделаны как замануха, чтобы потом заказывали их доработку, но лишь ту, что понятна и удобна разработчикам в рамках созданной экосистемы.

        Вот у нас есть компания, торгующая вином и прочим алкоголем где-нибудь в США.

        Какие у неё требования к управлению торговлей? Явно куда меньшие, чем обозначены в моём комментарии. Конечно при таком уровне "сложности" достаточно любой из перечисленных систем или аналогов. А из поста ясно, что это вовсе не случай компании ТС с самого начала. Не было у меня предложения универсального или стандартного решения. И из поста ясно, что в деятельность компании входит не только торговля, как в вашем примере.

        В вашем примере, в любом случае, компании придётся делать свой дизайн для сайта и мобильного приложения, как минимум, т.е. шаблон и выражать свою бизнес-логику через бизнес-процессы, зашитые в готовое решение. Далее всё упрётся в требуемые функциональные возможности, особенно для торговли, а это и есть ограничения роста и развития бизнеса. И быстро выяснится, что необходима их разработка в любом готовом решении "из коробки".

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

        сколько у Google в этот момент уже было ресурсов?

        При чём тут ресурсы? Наличие ресурсов не отменяет идею профильности бизнеса и использование систем, разработанных кем-то другим. Та часть моего ответа была посвящена рассмотрению этой идеи. Кроме того, как раз, чтобы вырасти, Google сделала сама свой PageRank, поисковик и систему для продажи рекламы. Т.е. когда ресурсов у неё ещё "не было" (хотя были, конечно, но "это другое").

        Т.е. всё, что вы назвали, никоим образом не опровергает написанное в моём комментарии.


        1. lair
          25.01.2022 23:35

          Какие у неё требования к управлению торговлей?

          Типовые, ничего крышесносного.


          В вашем примере, в любом случае, компании придётся делать свой дизайн для сайта и мобильного приложения, как минимум, т.е. шаблон и выражать свою бизнес-логику через бизнес-процессы, зашитые в готовое решение. Далее всё упрётся в требуемые функциональные возможности, особенно для торговли, а это и есть ограничения роста и развития бизнеса. И быстро выяснится, что необходима их разработка в любом готовом решении "из коробки".

          Прекрасно. Так сколько времени у них на это уйдет?


          При чём тут ресурсы?

          При том, что они уже были большой корпорацией.


          Кроме того, как раз, чтобы вырасти, Google сделала сама свой PageRank, поисковик и систему для продажи рекламы.

          Странно, а я думал, что PageRank и поисковик — это как раз профильный бизнес гугля на тот момент...


  1. rina_sokol1
    24.01.2022 10:38
    +1

    Оригинальная подача. Мысль очень хорошая. Согласна)))) столкнулась недавно с тем, что надо именно свою систему. То что есть на рынке подходит, конечно, но вот всё немного не то. Из-за чего путаницы возникает))


  1. SanGali
    24.01.2022 10:38
    +1

    Я не профи конечно, но не проще для Васи в 1С тогда?


  1. NavernoeDa
    24.01.2022 10:58
    +1

    что-то история вообще не связана с изначальной темой, но всё же и без этого мне было интересно