×Закрыть

«Ми принесли державі понад 28 млрд гривень». Як працює ІТ-команда Prozorro.Продажі

Я Олександр Акуленко, заступник начальника відділу інформаційних технологій і телекомунікацій «Prozorro.Продажі». Це формальна назва посади. Фактично я відповідаю за створення і розвиток продукту. У цій статті розповім, як з інструменту для продажу активів банків-банкрутів Prozorro.Sale перетворились на інструмент для продажу та оренди будь-якого майна та активів. Ви дізнаєтесь, як зробити зі стартапу успішну реформу.

На мою думку, інформація про те, як розпоряджаються державним та комунальним майном, кому його продають або здають в оренду, має бути за замовчуванням відкритою для всіх громадян. Ключова ідея електронної торгової системи Prozorro.Sale і полягає в тому, щоб допомогти державі ефективно розпоряджатися майном, а громадянам — відстежувати цей процес.

Я приєднався до команди у листопаді 2016 року, за тиждень до проведення першого реального аукціону, і став шостим членом команди. У нас була підтримка з боку донорів і перших майданчиків, але ресурсів вистачало тільки на запуск першої версії системи. Одне з питань, яке мені ставили на співбесіді: «Чи є у тебе можливість принести власний стілець для роботи?» :)

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

Сергій Бут, фінасовий директор, та Олександр Акуленко, заступник начальника ІТ-відділу

Що таке «Prozorro.Продажі»

Дворівнева електронна торгова система (ЕТС) «Prozorro.Продажі». Ми визначаємо загальні правила роботи системи, відповідаємо за розробку і роботу центральної частини. Але не взаємодіємо безпосередньо з організаторами та учасниками аукціонів. Цим займаються комерційні майданчики, які за допомогою API підключаються до ЕТС. Наразі їх близько 40.

Схожий підхід усуває корупційні ризики, забезпечує конкуренцію і рівний доступ до торгів для всіх охочих, а також дає змогу надавати якісний сервіс організаторам та учасникам аукціонів. Кожен майданчик самостійно займається розробкою своєї частини. Відповідно у кожного свій стек і підходи до організації роботи.

На нашому боці залишається взаємодія зі стейкхолдерами, синхронізація з іншими відділами (з юристами та проєктними менеджерами), проєктування нових типів процедур продажу та аукціонів, підготовка технічних завдань для підрядників і майданчиків, координація і синхронізація їх роботи, тестування майданчиків, участь у розробці юридичних документів, якщо необхідно описати правила роботи системи або навпаки — спроєктувати та зафіксувати нові правила гри, відповідно до яких потрібно буде здійснити розробку й оновлення ЕТС.

Як усе починалось

Робота системи «Prozorro.Продажі» розпочалася із продажу активів ліквідованих банків у 2016 році. Ініціатором її створення став Фонд гарантування вкладів, якому потрібно було ліквідувати понад 90 банків-банкрутів. Не просто ліквідувати, а отримати ринкову ціну за продаж активів та забезпечити прозорість і довіру до цього процесу.

На той час система публічних закупівель Prozorro вже вийшла на національний рівень і її використання стало обов’язковим. Так і з’явилась ідея використати такий самий підхід і в інших державних сферах.

У червні відбулося підписання меморандуму щодо намірів співпраці у побудові в Україні прозорої та ефективної системи реалізації активів неплатоспроможних банків і банків, що ліквідуються. До меморандуму приєдналися Фонд гарантування вкладів фізичних осіб, Національний банк, Міністерство економічного розвитку і торгівлі та ГО «Трансперенсі Інтернешнл Україна». На базі ГО і сформували проєктний офіс, який займався запуском реформи і який потім трансформувався у державне підприємство «Prozorro.Продажі». Вже восени запустили електронну торгову систему і приєднали до неї перші комерційні майданчики.

Першу версію системи розробляв підрядник, який брав участь і в запуску системи для напряму закупівель — Quinta Group. На створення першої процедури продажу пішло три місяці. Бізнес-логіка була реалізована на Python, працювали с нереляційною базою даних CouchDB. Систему розгортали в AWS, активно використовували рішення EC2, S3, ELB, CloudWatch, CloudFront.

За час роботи продали майна та активів на більше як 28,5 млрд грн, середнє зростання стартової вартості під час аукціону становило 24%. Один з останніх прикладів — продаж готелю «Дніпро». Це найбільший аукціон в історії «Prozorro.Продажі». Стартова ціна з 80 млн грн злетіла аж до 1,111 млрд грн.

Такий вигляд має завершальний етап аукціону. Це був найбільший аукціон в історії «Прозорро.Продажі» — продаж готелю «Дніпро»

Ще один приклад: «Укрпошта», яка на перших 7 аукціонах з продажу нерухомості у червні 2020-го заробила майже 90 млн грн. Водночас початкова сума лотів становила 25,3 млн грн.

Для створення прототипу системи продажів ми використали напрацювання, які вже були у Prozorro. На перший погляд ідея здавалася простою: взяти наявний аукціон із публічних закупівель і «перевернути» його навпаки. Звичайно, завдання виявилось набагато складнішим, адже, окрім самого аукціону, треба було розробити все необхідне для проведення процедури продажу. Так ми почали розвивати свою систему окремо, з урахуванням специфіки аукціонів та окремих напрямів роботи.

Специфіка проведення аукціонів:

  1. Різні бізнес-процеси у різних напрямах роботи. У простих випадках достатньо провести аукціон і завантажити у систему договір купівлі-продажу, у складних — пройти шлях від публікації об’єкту приватизації у реєстрі до фіксації оплати та етапу виконання вимог організатора після завершення аукціону.
  2. Наявність кількох різновидів аукціонів з різною механікою роботи, які використовують відповідно до особливостей активів, що продаються. Наприклад, використання гібридного нідерландського аукціону з можливістю зниження стартової вартості на першому етапі аукціону для активів, у яких складно визначити ринкову стартову ціну.
  3. Автоматизація частини стадій. Наприклад, автоматичне проведення серії аукціонів з поступовим зменшенням стартової ціни, якщо попередній аукціон не відбувся через відсутність учасників.
  4. Робота з приватними документами у деяких випадках. Водночас за замовчуванням у більшості напрямів усі документи організаторів та учасників мають бути публічними.
  5. Різні вимоги до опису активів і валідації даних у різних напрямах роботи тощо.

Напрями, за якими працює «Prozzoro.Продажі», та суми, на які було реалізовано майна

Як працює ІТ-команда

Зараз IT-команда складається з 8 людей: BA, PM, системний адміністратор, двоє QA, спеціаліст з безпеки, CTO, Head of Product Development. Безпосередньо у штаті ДП «Prozorro.Продажі» розробників немає, основні завдання з розробки та адміністрування системи виконують підрядники. Сьогодні їх кілька, і вони відповідають за різні частини системи. Робота розділена так:

  1. Основна розробка системи: Python, MongoDB, React для фронтенду модуля аукціонів.
  2. Адміністрування системи: Amazon Web Services, CouchDB, MongoDB, OpenStack Swift Drive, Kubernetes. Стара версія працює в AWS, нову запускаємо у ЦОД на території України. До повного переходу на роботу з новою версією системи за всіма напрямами роботи адміністратор має одночасно забезпечувати функціонування старої версії.
  3. Тестування системи та майданчиків. Оскільки у штаті усього два QA, для виконання низки робіт з тестування періодично залучаємо сторонніх QC та QA-спеціалістів.
  4. Розробка та адміністрування публічного порталу: PHP, Python, ElasticSearch. Його досить давно не оновлювали й запустили з обмеженими ресурсами. Цього року плануємо почати масштабне оновлення порталу.
  5. Розробка та підтримка модулю аналітики: Qlik Analytics.

Основна комунікація з підрядниками та майданчиками відбувається у Slack, для роботи із задачами використовуємо Jira та Gitlab, для організації зустрічей — Google Meet.

Крім повсякденного спілкування щодо поточних завдань, проводимо регулярні зустрічі з підрядниками для синхронізації, планування подальшої роботи та обговорення важливих технічних і організаційних питань. Постійно експериментуємо з підходами та намагаємось оптимізувати як процеси всередині команди та компанії, так і процеси взаємодії з партнерами.

Особливість роботи над системою, яка визначає підходи до розробки — законодавче регулювання більшості напрямків (на рівні законів України або постанов Кабінету міністрів). З фіксацією конкретних термінів початку роботи за новими напрямами або змін до вже наявних.

Наше завдання — реалізувати всі необхідні зміни на центральному рівні, перевірити готовність майданчиків до роботи після внесення оновлень та синхронно з ними викласти зміни на продуктове середовище. І це все в умовах обмежених ресурсів. Тому використовуємо гібридний підхід до управління проєктами та розробки. Де це можливо, застосовуємо Scrum. Частина процесів більше схожа на Waterfall. Активно працюємо з MVP та пілотними проєктами. Це подібно до процесів у колег із Prozorro. Попри те, що це інша організація, у нас все ще багато спільного.

Представник IT-команди, зазвичай це Head of Product Development, інколи ще CTO, BA, QA або PM, бере активну участь у роботі над новим напрямом (наприклад, запуском малої приватизації або оренди державного та комунального майна через «Prozorro.Продажі») ще на етапі обговорення концепції всередині команди, підготовки законопроєкту або постанови КМУ. Це один з найкритичніших етапів, бо якщо тут щось не врахувати або написати вимоги, які потім технічно буде складно або дорого реалізовувати, виправити це буде майже неможливо. І це одна з ключових відмінностей від роботи у комерційному секторі.

Відтак формується ТЗ для розробки центральної частини ЕТС. Залежно від термінів, доступних ресурсів і конкретних даних це може бути або MVP для виконання основних вимог, збору та аналізу статистики та подальшого розвитку, або вже фінальна версія процедури продажу. Бувають випадки, коли фінального тексту документа, який визначає правила роботи, ще немає і є вірогідність внесення суттєвих виправлень. А терміни запуску вже є. Тоді ми беремо на себе певні ризики, формуємо ТЗ з урахуванням можливих змін, обговорюємо це з розробниками системи та майданчиків, окреслюємо варіанти та намагаємось розробити каркас процедури так, щоб у разі внесення змін не довелося все переписувати. ТЗ презентуємо розробникам і майданчикам, за потреби уточнюємо щодо технічної реалізації без принципової зміни бізнес-логіки. Далі створюється беклог задач, план запуску процедури на тестовому середовищі та план виходу на production.

Паралельно оновлюємо вимоги до майданчиків і складаємо план їх тестування. Як тільки віддаємо першу версію API нової процедури на тестовому середовищі, починається активна розробка на стороні майданчиків. І тестування їх у міру готовності. Якщо процедура складається з великої кількості етапів або ми дуже обмежені в часі, запуск функціоналу і тестування проводимо частинами. У найпростішому випадку це публікація інформації про аукціон і робота із заявами на участь, безпосередньо проведення аукціону та кваліфікація переможців після завершення торгів.

Після готовності перших майданчиків проводимо демо функціоналу організаторам аукціонів, враховуємо побажання до інтерфейсів майданчиків, якщо вони є, і запускаємо перші аукціони на проді. Збираємо статистику та зворотний зв’язок, дивимось, що можна поліпшити, вносимо зміни у систему або беремо участь у підготовці пропозицій для внесення змін до законів або постанов КМУ для того, щоб забезпечити розвиток системи у майбутньому.

«Prozorro.Продажі» — платформа, яка об’єднує системи електронної комерції. Всі організатори публікують інформацію про аукціони в центральній базі, після чого вона показується на всіх під’єднаних майданчиках. Відкриття даних спричиняє асиметрію інформації (у нашому випадку — інформації про предмет торгів і умови проведення аукціону в різних учасників). Щойно прибираємо асиметрію, все працює ефективніше: велика кількість підключених майданчиків забезпечує рівний доступ до аукціонів для всіх охочих і чесну конкуренцію. Це дає змогу організаторам продавати активи за ринковою ціною. А учасникам — придбати активи, доступ до яких раніше був обмежений або взагалі відсутній.

Під час розробки центральної частини ЕТС використовуємо рішення на базі open source. Вихідний код системи теж опубліковано у відкритому доступі під ліцензією Apache 2.0. Це один з наших принципів. Загалом вважаю, що державний сектор має віддавати перевагу open source рішенням. А вихідний код продуктів, створених за кошти платників податків або донорські кошти, має бути за замовчуванням відкритим (крім обмежених випадків, пов’язаних з державною таємницею та безпекою). Інформація про аукціони доступна у відкритому доступі у відкритому API. Всі охочі можуть використовувати ці дані для аналітики та моніторингу або ж створення додаткових сервісів.

Динаміка доходу. На сьогодні уже реалізовано майна на 28,71 млрд грн

Що далі, спитаєте ви...

Нещодавно ми завершили підготовку до проведення аукціонів з розподілу квоти підтримки «зеленої» енергетики. Запускаємо новий тип аукціонів для підвищення ефективності продажу необробленої деревини. Завершуємо останні приготування для проведення аукціонів з оренди державного та комунального майна, відповідно до постанови Кабінету міністрів, яку було нещодавно ухвалено. Займаємось проєктуванням системи для роботи з переліками майна, яке планують передати в оренду. Це дає змогу всім охочим спостерігати за тим, наскільки ефективно держава та органи місцевого самоврядування розпоряджаються майном. І маємо багато інших планів.

Нові типи аукціонів запускаємо вже on-premise, у дата-центрі на території України для того, щоб мати змогу пройти сертифікацію КСЗІ (комплексної системи захисту інформації) відповідно до вимог законодавства. Ми вирішили скористатись цією нагодою і написати систему «з нуля», враховуючи попередній досвід. Відмовились від прив’язки до сервісів AWS, використали Python 3.8 замість 2.7, підтримка якого була завершена на початку року, перейшли з CouchDB на MongoDB, частково змінили архітектуру системи, побудували повноцінний процес CI/CD. Реалізували можливість конфігурувати частину налаштувань аукціонів. Поступово плануємо перенести і всі теперішні напрями роботи в нову систему. Якщо все піде за планом, повне перенесення завершимо у другому кварталі 2021 року.

LinkedIn

32 комментария

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

О, только узнал, что этот отель за ~1.11млрд купили Na’Vi

Мы тоже узнали уже после продажи. Был ещё один повод порадоваться. Надеюсь у нового владельца получится реализовать все планы.

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

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

О да, драйва тут хватает.
Первые пару лет думали, что ещё немного, и основные задачи сделаем, а дальше станет скучно. Но пока всё только интереснее и сложнее становится.

Це — майже дефіцит бюджету за минулий рік. Тобто ви вивели кошторис в нуль, грубо кажучі.
Шкода, що це виглядає дуже сумно на тлі 2 трлн грн бюджетного дефіциту команди тяп-ляп-в-продакшн

на тлі 2 трлн грн бюджетного дефіциту

это дефицит какого бюджета ? какой страны ?

Украины за 2019 год. 39, кажется.

Так вроде весь бюджет 1 трлн. Как может быть

2 трлн грн бюджетного дефіциту

Точно. Не туда посмотрел. Это гос долг 2 трлн. Дефицит 250 млрд, что тоже овердохрена по сравнению с прошлыми годами. А главное — смена тренда. Списано на корону.

За час роботи продали майна та активів на більше як 28,5 млрд грн, середнє зростання стартової вартості під час аукціону становило 24%. Один з останніх прикладів — продаж готелю «Дніпро».

і Фонд державного майна продав на більше як 28,5 млрд грн, один з останніх прикладів теж — продаж 100% акцій ПрАТ «Готель «Дніпро» :-)
то це вже напевно 57 млрд грн загалом? :-)

Продажі Фонду держмайна входять у загальну суму продажів )
bi.prozorro.sale/ — тут можна подивитись на загальну статистику роботи

так чей мопед, а кто просто разместил объяву?

Загальна сума продажу всіх організаторів, в тому числі Фонду держмайна більше 28.5 млрд грн (станом на 29.07.2020).
Всі аукціони з продажу об’єктів малої приватизації (стартова вартість аукціону до 250 млн грн) відбуваються через ПроЗорро.Продажі.
Стартова вартість готелю «Дніпро» — 80 млн грн. Ціна продажу — 1.1 млрд грн. Після аукціону до суми продажу додався 1.1 млрд.

PS До речі, сьогодні зранку завершилась перевірка переможця і протокол аукціону успішно підписали www.facebook.com/...​80/posts/2969771263121554

перейшли з CouchDB на MongoDB, частково змінили архітектуру системи,

Зачем поменяли бд?

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

Основная причина — нехватка consistency в CouchDB. Что, с учётом критичности потери документов, для нас было очень важным фактором. Плюс сыграли роль предпочтения и опыт команды разработчиков, которые занимались построением новой версии системы. Так как многое приходилось писать с нуля, на объём работы смена СУБД если и повлияла, то в сторону уменьшения. Планируем написать статью с техническими деталями работы системы, там отдельно остановимся на этом вопросе.

очевидно же
что это попередники сделали на CouchDB
а у текущих подрядчиков стандартный стек — документы в NoSQL монге, а метрики из заббикcа в SQL-е

Если кого интересует история Прозорро в целом, то очень рекомендую вот эту книгу (хотя сейчас ее и грустно читать):
nashformat.ua/...​v-ukrainskij-vladi-709323

Титанічну роботу проробили. Лупайте сю скалу!

Ми принесли державі понад 28 млрд гривень

Как это отразилось на зарплатах и бонусах сотрудников? Только пожалуйста без сказок про патриотизм.

Вангую, що ніяк, але, справедливості заради, їм це навряд обіцяли.

Це так само як поліціянт зловить в понеділок хабарника на хабарі в 500$, а в пятницю його колега іншого розбійника на хабарі в 5000k$ і отримають обидва однакову зарплату в кінці місяця + премію.

Або, як на мене, більш вдалий приклад: бригада робочих збудувала дорогу до унікального природного заповідника, що стимулювало туризм і надходження до бюджету збільшились на 1млн$. Чи повинна бригада отримати додаткові гроші за те, що результат їх роботи стимулював наповнення бюджету?

Така сумма надходження була очікуваною як результат їх роботи(Прозоро).

Частково погоджуюсь, частково ні. Більшість рішень приймаються і ініціюються в середині команди, а не спускаються згори. Саме ефективність роботи команди дозволила досягнути поточного результату. Крім підтримки системи, члени команди займаються «проштовхуванням» ряду напрямків, беруть участь у розробці постанов кабінету міністрів і законопроектів, які регулють продаж або оренду майна. Так само з дизайном аукціонів, один з нових типів аукціонів, який дозволив підвищити ефективність продажу майна, розробили саме ми разом с Фондом гарантування вкладів та Київською школою економіки. І т.д.

Ви однозначно молодці і вважаю, що ви досягли успіху вже.
Трохи наївне, але все ж питання, продовження попереднього: А чи пробували ви особисто як СТО або хтось інший із менеджменту, якось проштовхнути ідею, отримувати певні «винагороди» у вигляді премій чи чогось аналогічного за особливо великі продажі чи за результатом квартального/річного підсумку, типу як держава виплатила премії Нафтогазу за перемогу в Стокгольмському арбітражі над русаками?

Дякую!
Проштовхуємо таку ідею. Є ряд організаційних і юридичних складнощів, але у майбутньому можлива реалізація певної «бонусної» моделі.

У більшості співробітників компанії ринкові зарплати (у порівнянні з комерційним сектором, а не тільки держпідприємствами). Ефективність роботи команди як раз дозволяє це забезпечити. У топ-менеджменту зп нижчі за ринкові, це один з мінусів роботи на державу. Тут вже у кожного своя мотивація. Без патріотизму довго протриматись складно, але він не єдина причина.
Крім можливості зробити щось корисне для громадян і країни, особисто мене мотивує участь у масштабних проектах, різноманніття задач, унікальний досвід, взаємодія з велокою кількістью професіоналів з різних сфер. На якийсь час цього вистачить, а далі буде видно.
Звісно, з ринковою зарплатою все інше робити було б комфортніше, але іншої держави у нас немає і ніхто крім нас її не побудує. Якщо у нас вийде — колись це зміниться. Не вийде — буде що згадати )

Дуже хочется вам вірити. Але дивлячись на те як інші люди на державу працюють, а особливо, на те ЗА що вони працюють, то віриться тяжко. Якщо ви говорите правду, про те що вас спонукае до праці, то низький вам уклін та щира подяка, а якщо ні — ну то вам тоді п***х на те що я вважаю.

Дякую! На жаль, дійсно негативних прикладів дуже багато. Але є й позитивні приклади, які дають додаткову мотивацію продовжувати щось робити.
Плюс ми намагаємось будувати систему, у якій мінімізовано людський фактор і у якій, навіть якщо хтось захоче хось зробити, про це можна буде досить легко дізнатись. Як мінімум, за рахунок 40 незалежних майданчиків, через яких відбувається взаємодія з системою, розкриття інформації та участі громадськості у контролі роботи системи (Transparency International Ukraine та багато громадських організацій у регіонах). Рано чи пізно люди, які супроводжують та розвивають систему зміняться, не хочеться, щоб все трималось виключно на чесності і мотивації.

Раніше в стрічці публікували гарний технічний контент, тепер «ось це»

у дата-центрі на території України для того, щоб мати змогу пройти сертифікацію КСЗІ

Звісно це ж підвищить безпеку, тепер коли з українського дата-центру будуть безпідставно вилучати техніку то у вас буде сертифікат КСЗІ, сертифікат то краще

Ще й досі пам’ятаю як ваші рекрутери шукали QA а винагороду приховували бо так прозоро: ми шукаємо до себе AQA з конкурентною винагородою

Дякую за коментар.
Сертифікат, звісно, не панацея і не підвищить безпеку сам по собі. Проте його наявність — вимога поточного законодавства. Особисто мені було б комфортніше ресурси, витрачені на сертифікацію і все, що з нею пов’язано, витратити на розвиток продукту. Але якщо ми хочемо продовжувати працювати і робити реформу, нам потрібно пам’ятати і про законодавство.

Щодо технічного контенту — ми плануємо підготувати матеріали безпосередньо про особливості розробки системи, інфраструктурні рішення, більше розповісти про продукт і типи аукціонів у системі і т.д.
Ця стаття скоріше інтро і загальний огляд того, що є зараз.

Подписаться на комментарии