Ребята, а чем вы все-таки занимаетесь
По такому принципу был сделан сайт, с учетом этого постились немногочисленные публикации в соцсетях.
Изучив эту информацию, человек со стороны иногда задается вопросом... ребята, а чем вы все-таки занимаетесь??? Вы пишете то про сайты, то про CRM/ERP/MES, про расчет зарплаты, про склад, телефонию, а иной раз так и вообще про платформы и среды разработки. В ответ я обычно набираю воздуха, чтобы выдать одно короткое и емкое предложение.
И дальше наступает пауза.
Я думаю... как же мне умудриться в это предложение уместить рассказ про наши большие и сложные проекты, которые по зубам далеко не многим. Как мы умудряемся эти проекты поддерживать в состоянии "красивой"/масштабируемой архитектуры. Про проекты с особыми взаимоотношениями между Заказчиком и Исполнителем, где эти роли перемешиваются в одно целое. Где заказчик тоже затрачивает значительные усилия - он делает много шагов навстречу проекту. А исполнителей иногда принимают за сотрудников, потому что они годами участвуют в переписках и часто появляются на территории заказчика.
Ведь если про все это не рассказать, теряется весь смысл.
В конце концов, скоро будет уже 10 лет как мы это делаем. И уже самим становится интересно, а что же конкретно мы делаем, и как. И почему не как все. Почему не массово и почему активно не пиаримся, как все нормальные компании.
- А, так вы что, CRM/ERP пишете?
- Да.... типа того...
Вот представьте среднестатистическую компанию на, допустим, 100 сотрудников. Где запущен зоопарк различных систем, начиная от сайта на WordPress и заканчивая бухучетом 1С. Всевозможный учет рабочего времени, табели, CRM, САПР, планирование производства, мобильные приложения, личные кабинеты для клиентов и сотрудников, логистика, колцентр, платежные терминалы, в конце концов, контроль доступа в помещения и т.д.
Всем этим заправляет ИТ отдел, где пара человек занимается вышеперечисленным и пытается все друг с другом увязать и еще пара разработчиков безуспешно пытаются перенести все системы на что-то одно, например на 1С. Все это заправлено руководителем ИТ с дергающимся глазом. Он ежеквартально пробивает новый бюджет на то, что совсем не масштабирует предприятие и параллельно поглядывает на hh в поиске менее нервотрепной работы. Штатные разработчики буксуют, простые задачи выполняются долго и некачественно. С начала нового проекта могут пройти недели - с нулевым результатом.
И вот как раз на этой сцене обычно наш выход. С отбойными молотками. Но не для настройки всего этого хаоса, а чтобы разнести все подчистую (ну, почти все :) САПР и бухучет 1С мы оставляем) и постепенно разработать и внедрить новую систему на единой платформе, специально предназначенной для подобных целей.
Постепенно, но быстро!
На единой платформе!
Как правило, через полгода все модули уже работают и начинается этап, когда сотрудники достают из закрамов припасенные идеи (раньше было не до них).
Отдельно следует отметить, что мы внедряем систему поэтапно. Сначала минимальный пилотный функционал, затем последующие доработки. Если заказчик настаивает, чтобы сначала разработали все, а потом внедрили, то мы (скорее всего) откажемся от проекта.
Полгода. С итоговым бюджетом соизмеримым с затратами на тех двух разработчиков.
Понятное дело, глаз у ИТ начальника дергаться перестает. Семейная жизнь налаживается. А hh тут больше никто не открывает. Штатные разработчики оказываются втянутыми в новый интересный проект. Все счастливы, все довольны.
***
Чуть выше это была лирика. Сейчас я пишу эти строки и понимаю, что по большому счету тут нет ничего особенного.
Конечно, совсем недавно это было невозможно. Слишком трудоемкий процесс разработки ПО требовал уж очень больших денег. Недостаточно высокоуровневая архитектура плодила бесконечные баги. Чтобы написать сложное ПО требовались годы. За это время проект превращался в свалку кода, которую было все сложнее развивать (кстати, в очень многих платформах, включая широко распространенные :) эта проблема не решена). Изначально заложенная архитектура в стиле "кто на что горазд" в первые же месяцы себя дискредитировала и в последующие годы, вместо пользы, доставляла сплошные неудобства и дополнительные барьеры в развитии. Разработчики уходили, а новые не торопились ввязываться в эту помойку. Многим это знакомо.
Потому-то и шли по пути интеграции разных систем в одно лоскутное одеяло. И не везде, кстати, такая интеграция была двусторонней. Где-то требовался старый добрый бумажный блокнот или ексель. Например, платежный терминал (вместо кассира) не может определить и отобразить на экране долг курьера и не может сформировать проводки по факту получения налички, он может только принять деньги, распечатать чек, а дальше курьер с этим чеком идет к человеку-оператору. Автоматизация не полная. И это при том, что прием денег в кассу это самая простая формализованная операция, которую можно автоматизировать на 100%. Соответственно, приходилось писать свое приложение для терминала, увязывать его с основной системой. Тратить на это бюджет.
И ведь действительно, посмотрите вокруг, куча предложений по интеграции чего угодно с чем угодно. Для многих ИТ компаний это целая ниша - сложные интеграции. Причем все, как правило, этим козыряют, типа мы очень крутые, занимаемся сложными интеграциями.
Мы конечно тоже этим занимаемся, там где по другому не обойтись, например интеграция с САПР SolidWorks, с Asterisk или с 1С. Но все-таки стараемся перенести максимум систем на единые собственные рельсы. Это дает огромные преимущества. Отдача от ИТ возрастает многократно – автоматизация начинает приносить плоды.
Что лучше? Содержать тяжеленную дорогую систему, в которую вносить изменения это сплошные мучения? Или внедрить что-то легкое, но решающее все ваши задачи и при этом легко модифицируемое?
Конечно второе. И в наше время это более чем реально.
Технологии разработки и управления проектами ушли далеко вперед. Нет необходимости внедрять монстра ради отдельных его фич. Можно просто реализовать ровно то, что требуется. Легкое, быстрое, с нуля, на специальных современных платформах. Все-таки 21 век за окном. Мы пошли еще дальше и создали свою такую платформу. Она развивается уже лет 10 и прошла испытания боем в сложных и больших проектах. По большей части, именно благодаря этой платформе мы и можем уложиться в сжатые сроки/бюджеты.
От рутины мы избавлены практически полностью. Стартуя проект, мы можем начать выдавать результаты хоть на следующий день.
Один из наших, пожалуй, самых успешных проектов, про который я рассказываю при каждом удобном случае, был запущен всего за месяц, при общем объеме работ 1 чел/год. Минимальный функционал для пилотного старта, реализованный на платформе, вполне пригоден для полноценной работы. В нем отсутствуют ошибки и баги (ну, кроме возможных ошибок, касаемых непосредственно бизнес логики). Разве такое возможно при традиционной разработке, где клик на любую кнопку может вызвать крах системы? Конечно нет.
В общем, экономия очевидна. Не говоря уже про гораздо меньшие риски срыва проекта. Через месяц после начала работ можно с уверенностью сказать, жизнеспособен ли проект.
Еще хочется пару слов написать про нашу методологию. Вообще, на наш взгляд, любая методология хороша, когда она формируется на основании уже налаженной с годами работы. Грубо говоря, сделать классификацию всего живого на земле проще, если это все живое уже существует :). Вряд ли у нас получилось бы сделать наоборот. Исключение – то, что нельзя проверить, например, изучение черных дыр и тому подобного. Здесь просто другого выхода нет. Приходится принимать за факт непроверенные теории для того, чтобы от них отталкиваться и двигаться дальше. Но ИТ это не черная дыра, тут все понятно и четко, а каждый промах стоит бизнесу денег.
У нас это и водопад и Scrum и Agile и Kanban и все прочие модные слова вперемешку.
· По возможности затаскиваем заказчиков в свой Confluence, для проработки проекта.
· Создаем задачи исполнителям в JIRA, причем даже мелкие.
· Выпускаем по несколько релизов в день. Релизы автоматизированы с авто формированием WhatsNew и рассылкой уведомлений.
· Можем переделать половину функционала, оставаясь в бюджете.
· Работа в проекте в сплоченной команде.
· Непрерывное внесение доработок и устранение рисков.
· Полная готовность к изменяющимся условиям проекта (поэтому ТЗ у нас, как правило, носит формальный характер).
· В сложных проектах разработка короткими спринтами.
· Свободное общение внутри проекта между всеми участниками (для этого нам и нужен Confluense), когда любой исполнитель знает историю зарождения и проработки его задачи, всегда понимает саму ее суть и может внести свои предложения.
· Активное взаимодействие с пользователями.
· Отсутствие кода ЯП, в который было бы необходимо вникать.
· Особое отношение к качеству и внешнему виду клиентских приложений (любимая наша шутка: красота и простота первична, бизнес логика вторична).
Я честно скажу, у нас нет методологии :) Она у нас основана на практическом опыте. Мы просто знаем свое дело и умеем делать сложные проекты, причем быстро и качественно.