ESPN DeportesChepo de la Torre: No pagamos el precio por ser los mejoresESPNRice bests Boone's belief by slugging homers 40, 41The Jerusalem PostIsrael Election 2026: What does Itamar Ben-Gvir's Otzma Yehudit stand for?InquirerEx-DPWH exec in Zaldy Co case to cite lack of equipment as defenseBollywood HungamaKaran Johar’s Rs. 480 crore jump: How he went from 5th to 4th on Hurun’s Bollywood Rich ListRTP DesportoDinis Ferreira vice-campeão do mundo de triatlo de junioresPunchJUST IN: Anthony Joshua, Tyson Fury to fight in Cardiff December 11Complete SportsNFF To Celebrate Simon’s 100th Super Eagles AppearanceGlobal NewsKenneth Law’s sentencing hearing to hear from more victims’ familiesWirtualna PolskaMetropolita przemyski apeluje o modlitwę w intencji ofiar z Jarosławian-tv"Es ist beängstigend": Ex-England-Stürmer Carroll: "Wurde sexuell missbraucht"Interia"Będzie ukarany z całą surowością". Premier reaguje po tragedii w klasztorze
The Daily Newsstand · Free, Always
Thursday, September 24, 2026

Создание коммерческого ПО, в современных условиях

Translate

В этой статье я бы хотел поделиться своим взглядом на разработку коммерческого ПО небольшими трудовыми коллективами.

И так, начну, пожалуй, и начну издалека.

Я человек старой формации, учился как сейчас говорят "хард скилам", и посвятил учебе изрядный кусок своей жизни.

Жизнь у меня была сложная, путь школа -> институт -> работа преграждала масса препятствий,

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

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

Большая часть специалистов нашего поколения (кому сейчас 40–50 лет), воспитывалась на тех же установках, одной из которых была: "знание - сила".

Долго ли коротко ли, в итоге жизнь довела меня до информационных технологий.

Когда я пришел в IT нейронные сети были в книгах по математике, а интернет был доступен через модем, программирование изучали на Спектрумах, или если повезет на 286/386 Интеле.

Разумеется, начинали с ассемблера.

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

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

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

Программист под микроконтроллеры изучал их архитектуру, шины, протоколы и прочее.

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

Абстракции нагромождались с ускорением, росло количество библиотек на все случаи жизни.

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

Появлялись средства быстрой разработки ПО, такие как легендарный Borland Delphi, который сильно упрощал многие вещи, (правда товарищи считали меня неполноценным программистом, они то писали на C++ в Visual Studio тогда еще, наверное, 6).

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

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

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

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

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

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

Кто-то занялся проектами с открытым исходным кодом.

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

Учеба + упорство + трудолюбие -> мастерство -> множество попыток и, может быть, ты ступишь на тропу, которая, может быть, приведет тебя к успеху.

Причем под успехом понимается не наличие денег, а создание какого-то достойного продукта, а деньги подразумевались автоматический - ведь хороший продукт точно купят, ведь купят?

Однако же мир оказался совсем не такой.

Продукт нужен не самый лучший, но через год, а сегодня и недорого.

Основатель компании хочет получать прибыль, а не содержать сотрудников.

Компания может 10 лет быть убыточной, но постоянно привлекать капитал инвесторов.

Ну и сейчас к этому прибавился ИИ, а именно:

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

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

А если он будет послезавтра, то он уже не нужен, потому как завтра сделает то же самое кто-то другой.

Мы это видим не только на рынке ПО, но и в других сферах.

В телекоммуникациях сложные и дорогие решения отмирают, уступая место более простым и дешевым (привет Ethernet).

Ну а теперь переходим к фабуле, что делать нам?

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

Проблема:

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

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

Но даже если мы станем активно использовать ИИ инструменты, мы все равно вряд ли сможем составить конкуренцию новому поколению специалистов.

И это хорошо, это их мир, они строят свое будущее, (мы свое построить не сумели, по крайней мере так как задумывали).

Однако же на мой взгляд не все потеряно.

Наш подход к созданию ПО (да и в целом к выполнению работы), все еще востребован в некоторых узких нишах.

В разрезе ПО это различные ответственные системы, АСУТП, системы с ограниченными ресурсами, устаревшие, но все еще работающие системы, одним словом, довольно большой круг задач, где "старомодный" подход может быть эффективнее "молодежного".

Отдельно хочу затронуть тему доступности ИИ инструментов.

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

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

Да, можно использовать локальные модели, но это не одно и тоже.

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

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

Предвосхищая комментарии определенного толка, сразу скажу следующее:

Я не имею в виду конкретные страны и/или компании, да мне бы хотелось жить в мире, где все друг с другом сотрудничают и честно конкурируют.

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

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

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

В этой статье я коснусь только создания ПО хотя это пока малая доля моей деятельности.

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

Про второе я планирую написать отдельную технически наполненную статью, а тут расскажу о около сетевых вещах.

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

Во всех трех случаях сложились следующие условия:

1. ограниченный бюджет

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

3. желательно сопровождать продукт - а значит хорошо в нем разбираться

4. максимально прозрачное ценообразование

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

Вторые два более разумные.

Рассмотрим случай разработки сенсора для системы мониторинга PRTG, для коммутаторов Huawei/FutureMatrix.

Что же сподвигло меня на создание этого сенсора? ну прежде всего мне он нужен самому, а раз нужен мне то надо присмотреться к потенциальному рынку.

Тут придется опять немного отвлечься и упомянуть вот что:

Когда-то давно, в 2020 году, я уже разрабатывал различное ПО для мониторинга и сбора данных с оборудования, исключительно для собственных нужд.

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

За шесть лет ее существования она показала себя довольно хорошо и на базе нее было создано большое количество различных утилит и сенсоров.

Разумеется, для нового сенсора использовалась именно она.

Несмотря на то, что PRTG в России и был то ограничено популярен, а сейчас и подавно, тем не менее он по-прежнему используется, и в небольших компаниях есть даже новые инсталляции - благо его бесплатная версия на 100 сенсоров, позволяет оперативно закрыть потребность в подобном ПО в небольшой компании.

Ну и в конце концов, есть еще Казахстан, Узбекистан, Армения и много других стран, где вполне возможно подобные сенсоры будут востребованы.

Нам нужно ответить на два вопроса:

1. За что покупатель будет готов платить?

2. Какие преимущества перед бесплатным ПО или собственной разработкой?

Начнем со второго. Собственную разработку отбрасываем, наша целевая аудитория — это компании, которые выбрали PRTG вместо Zabbix а значит они уже испытывают дефицит кадров/времени.

Насчет бесплатного ПО, опять же Zabbix отбросили, остаются встроенные в PRTG средства.

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

Что касается первого пункта то вот что мы сможем предложить:

1. Экономия на лицензиях PRTG. Об этом тоже ниже.

2. Хорошая документация, с примерами настройки.

3. Оптимизация опроса оборудования

4. Поддержка

Опять же, пояснения начну с последних двух пунктов.

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

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

pcap

pcap

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

Документация — это отдельная история.

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

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

Ведь внедрение ИИ позиционируется как возможность экономии на зарплатах сотрудников в том числе, почему тогда покупка ПО позволяющего делать то же самое плохая идея?

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

Экономика:

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

И положим это стек из двух коммутаторов, они подключены куда-то, например двумя оптическими портами.

Мониторинг состояния таких устройств обычно включает в себя следующее:

Температура

Состояние вентиляторов и блоков питания

Иногда загрузка процессора и памяти

Состояние интерфейсов

Неплохо было бы получать данные об уровне сигнала на оптических портах

А также неплохо бы понимать состояние стека.

В контексте PRTG потребуется добавить по одному сенсору на каждый интерфейс, для отслеживания состояния порта.

А вот с состоянием стека (стековых портов, членов стека и их ролей и прочего) можно использовать SNMP сенсор позволяющий указать нужный OID.

Но чтобы его использовать, предварительно придется использовать утилиту snmpwalk для получения нужных OID.

Ну и можно вручную создать lookup файл.

Проверить допустимые пределы значений и выставить лимиты.

Однако на каждый стековый порт и каждый SFP модуль, будет использоваться одна лицензия.

Да и сам процесс довольно трудозатратный.

Итого для мониторинга стека из двух коммутаторов, с 4 стековыми портами и двумя оптическими аплинками, понадобится минимум 12 лицензий, (4 на стековые порты, 2 на аплинки, 2 на данные с DDM SFP модулей и по 2 для данных о температуре и состоянию вентиляторов).

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

И если у покупателя в сети 10 таких узлов, то ему потребуется добавить 120 сенсоров или купить наш сенсор и использовать 10 лицензий PRTG.

Ниже представлены реальные снимки экрана с работающей сети:

scrn1

scrn1

scrn2

scrn2

Стоимость сенсора при этом должна быть выгоднее покупки расширения лицензии на PRTG.

Прочие мотивы использования стороннего сенсора:

Выше я уже упомянул что ручное добавление SNMP сенсоров с указанием OID, установкой порогов и прочего, процесс трудозатратный и не совсем коррелирует с идеологией PRTG – как простой в настройке системы.

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

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

Документация, она заслуживает отдельного абзаца.

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

Поэтому я документации уделяю очень много времени, стараюсь ее сделать максимально понятной и наглядной.

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

Общий вид сенсора

Общий вид сенсора

DDM SFP

DDM SFP

Settings

Settings

Да это трудоемко, но в перспективе этот метод будет экономить время на модификацию документации.

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

Заключение:

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

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

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

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

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.