Сообщество - Лига программистов

Лига программистов

2 101 пост 11 909 подписчиков

Популярные теги в сообществе:

3

Разница распределения стоимости в строительстве, машиностроении и программировании — основа для внедрения итераций

Серия про IT и не только

Очень часто, когда обсуждают подходы к проектированию и проектному управлению проводят аналогии со строительством или машиностроением. Не стала исключением и моя статья про аджайл https://pikabu.ru/story/mifyi_i_realnost_est_li_osnovanie_protivopostavlyat_agile_i_waterfall_13485192
Конечно всякие аналогии имеют свои границы применимости, но в случае сравнения строительства и разработки ПО об этой границе забывают. Между тем она есть и даже люди далекие и от первого и от второго быстро поймут эту разницу, если просто о ней написать.
Основная разница заключается в сравнении стоимости проектирования и создания итогового продукта. Для сравнения я также решил привести пример из машиностроения с созданием серийного продукта. Имеются фундаментальные различия экономических моделей этих отраслей в аспекте тиражирования решений и распределения стоимости по этапам жизненного цикла.
Для подкрепления мнения некими данными я попросил нейросеть Qwen набросать примерные оценки по стоимости.

Стоимостная характеристика трех отраслей: строительство, машиностроение, разработка ПО.

Строительство: много материальных затрат на этапе производства

В строительстве классическое распределение затрат выглядит так:

  • Проектирование: 5-10% от общей стоимости

  • Материалы: 50-60%

  • Строительно-монтажные работы: 30-40%

  • Пуско-наладка и сдача: 5-10%

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

Машиностроение: баланс между разработкой и производством

Машиностроение занимает промежуточное положение:

  • НИОКР и проектирование: 20-30%

  • Создание прототипов и испытания: 15-25%

  • Освоение производства (оснастка, станки, линии): 30-40%

  • Серийное производство: 10-20% на единицу продукции

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

IT-разработка: "бесплатное" тиражирование

В IT-разработке принципиально иное распределение:

  • Проектирование и анализ: 30-40%

  • Разработка: 40-50%

  • Тестирование и внедрение: 20-30%

  • Поддержка и развитие: 15-25% годовых от стоимости разработки

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

Почему в IT можно начинать с весьма "сырого" продукта?

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

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

Но в IT физических ограничений нет. Вы можете начать с простого веб-сайта-одностраничника, добавить базу данных и админку (MVP), интегрировать платежные системы и мобильное приложение (первая версия приложения), а затем создать распределенную облачную платформу с искусственным интеллектом. Каждый этап строится на предыдущем, но при необходимости можно переписывать отдельные компоненты полностью без полного перезапуска проекта.

Это возможно благодаря:

  1. Нулевой стоимости копирования - можно создать сотню экспериментальных версий без финансовых потерь

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

  3. Быстрому циклу обратной связи - пользователи тестируют изменения в реальном времени

Стоимостные риски и их управление

Строительство: страхование через детализацию

В строительстве основной риск — физическая невозможность или чрезвычайная стоимость исправления ошибок. Поэтому:

  • 80-90% рисков управляются на этапе проектирования

  • Используются детальные 3D-модели и BIM-технологии

  • Предусматриваются запасы прочности в конструкциях

  • Стоимость изменений после начала строительства кратно превышает стоимость проектирования

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

Машиностроение: управление через прототипирование

В машиностроении риски распределены между разработкой и производством:

  • Создаются физические прототипы для проверки концепций

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

  • Используются CAD/CAM системы для виртуального моделирования

  • Освоение производства идет поэтапно с постоянной доработкой

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

Разработка ПО: управление через итерации

В программировании и разработке ПО риски управляются иначе:

  • Риск несоответствия требованиям минимизируется через постоянную обратную связь

  • Технические риски снижаются через рефакторинг и технический долг

  • Рыночные риски управляются через A/B тестирование и постепенный rollout

  • Безопасность обеспечивается через непрерывное тестирование и обновления

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

Распределение стоимости по этапам

Распределение стоимости по этапам

Практические примеры от нейросети Qwen

Строительство: Burj Khalifa
Стоимость проектирования составила около $100 млн из общего бюджета $1.5 млрд. Изменения в процессе строительства были минимальны — любое отклонение от проекта могло привести к катастрофе. Тиражирование невозможно — это уникальный объект.

Машиностроение: Tesla Model 3
Разработка и освоение производства обошлись в $2+ млрд. Но при производстве 500,000 автомобилей в год себестоимость единицы становится конкурентоспособной. Изменения в процессе производства требуют остановки линий и перенастройки оборудования.

IT разработка: Facebook
Начинался как простой сайт для студентов Гарварда. Стоимость тиражирования для миллиарда пользователей — доли цента на пользователя в месяц. Изменения вносятся ежедневно без остановки сервиса. Первоначальная разработка стоила тысяч долларов, текущая стоимость компании — сотни миллиардов.

Почему аналогии вредны в проектном управлении и как найти баланс

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

практические советы для IT проектов:

  1. Архитектурный фундамент - закладывайте понятную архитектуру с возможностью масштабирования, но не надо сразу ударяться в создание микросервисов и прочие архитектурные излишества https://t.me/limsaccreditation/1857

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

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

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

Вывод

Итерации и необходимость обратной связи в it сфере обусловлены фундаментальными причинами, связанными со стоимостью этапов проектирования и разработки. Без итеративного подхода можно впустую прожигать бюджет на никому не нужное проектирование и дальнейшую разработку продукта, которым никто не будет пользоваться.
Как написали в комментариях к мой предыдущей статье, сам Уинстон Ройс — автор термина Waterfall — в той самой статье 1970 года описывал недостатки каскадной модели, предлагая заменить их итеративной моделью. Таким образом дело не в Agile и настроениях разработчиков, итерации - это самая эффективная модель разработки с экономической точки зрения.

Показать полностью 1
1
Вопрос из ленты «Эксперты»

Как оплатить GooglePlay Console и Apple Developer?

Я разработал приложение для своей компании для Android и iOS, но вот создание аккаунтов стало огромной проблемой(

Кто-то знает, как можно создать эти аккаунты за разумные деньги из России, кроме как искать людей с зарубежными картами? Может у кого то есть опыт оплаты через посредников?

15

ПАРИС. Стартап, созданный инженерами для инженеров (Часть 1)

Всем привет! Меня зовут Кирилл.
Я — инженер, преподаватель СГУПС и один из тех самых «энтузиастов», которые решили создать российскую программу для расчета и проектирования мостов.
Сегодня расскажу историю о том, как амбициозность, неопытность и упорство приводят к результату, но через 6 лет.
Заваривайте чай ☕, берите печеньку 🍪 будет честно, больно и местами смешно.

Глава 1. Хочешь сделать хорошо — сделай сам

Всё началось в 2020 году. Это был год коронавируса, локдаунов и… свободного времени. Тогда мы с коллегой Ильей уже закончили обучение в СГУПС на факультете "Мосты и тоннели", писали кандидатские в аспирантуре, работали в СибНИИ мостов. Наша работа и диссертации были связаны с расчетами мостов, но даже комбинация трёх коммерческих программ не закрывала всех задач. Постоянно приходилось дополнять функционал при помощи Excel или на коленке собранных программ.

Однажды, после очередных танцев с бубном, которые сопровождали расчет грузоподъемности автодорожного пролетного строения, мы решили сделать свою расчетную программу. Такую, где всё будет “по-человечески” — для себя.

Ну а чего?
— Принцип МКЭ понятен,
— Кое-какие наработки есть,
— Stack Overflow под рукой 💻

Мы были уверены: через год всё заработает🤣 .
Вдвоем! Без ChatGPT, Cursor и т.п.!

Глава 2. Python нас предал

Разделили задачи:
— Илья — ядро расчётов на Python,
— Я — интерфейс на C# + WPF.
Связали их через Python.NET.

Для интерфейса я использовал крутые open-source решения:

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

За это время были реализованы простейшие алгоритмы МКЭ расчета на Python. Естественно на Python тоже нещадно использовались открытые математические библиотеки (NumPy, SciPy, FEniCS).

Примерно через 7 месяцев собрали что-то, что выглядело как программа. Можно было создать простую модель (консольную заделку или балку на двух опорах), покрутить ее, посчитать, даже сохранять. При этом внутри — хаос, программа падала при любом неосторожном действии пользователя (Try…catch? Не слышали), для запуска на другом компьютере требовалась установить Python и все сопутствующие библиотеки.

Также не было:

  • модуля сечений,

  • подвижных нагрузок,

  • единиц измерения,

  • отмены действий,

  • визуализации результатов…

А главное Python, его библиотеки, обертка Python.NET — оказались безумно тормознутыми.

ПАРИС. Стартап, созданный инженерами для инженеров (Часть 1)

Мы смотрели на экран, грустили и думали:
«А оно нам вообще надо?»
Стало приходить понимание реальных сроков реализации проекта.  Решили сделать паузу.

Глава 3. Всё х**ня — переделать!

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

На C# переписал архитектуру с нуля:

  • добавил поддержку единиц измерения,

  • реализовал менеджер команд,

  • кастомизировал хранение данных,

  • выделил общие классы и интерфейсы,

  • добавил защиту от падений.

Вообще четкое структурирование проекта и корректное применение ООП сильно упростило поддержку и обновление кода.

А на стороне Python Илья несколько месяцев пытался его ускорить: новые версии, другие библиотеки, кастомные функции. Но ничего не давало стабильного прироста скорости.

Тогда пришло решение: переходим на Cython.

Быстро? Да.
Просто? Нет.
Но это сработало.

В конце 2021 года мы получили программу, которую уже можно было презентовать. Что мы и сделали. Так родился ПАРИС — Программа Автоматизированного Расчёта Искусственных Сооружений.

ПАРИС. Стартап, созданный инженерами для инженеров (Часть 1)

Что дальше?

Во второй части вы узнаете:

  • как прошла первая презентация

  • зачем перешли на клиент-серверную архитектуру

  • где нашли бесплатных тестировщиков

Если вы тоже запускали свой IT-стартап, напишите в комментариях: сколько раз вы всё удаляли и начинали с нуля?

Показать полностью 2

Прикладное джиноводство: учимся формулировать желания. Александр Дайняк (Солверы и все, что с ними связано)

Серия Математика добра

Как объяснить компьютеру, чего вы хотите — не диктуя каждый шаг? Солверы — это современные джинны: они исполняют желания, но нужно уметь их формулировать. Иначе получится как в сказках про Аладдина и Хоттабыча. Александр Дайняк — кандидат физико-математических наук — показывает декларативное программирование на языке MiniZinc. От арифметического ребуса MATH + IS = COOL до задачи коммивояжёра и реальной медицинской задачи обмена донорскими почками.

⏱️ Таймкоды:

0:00 — Вступление, конференция «Математика добра»

1:12 — Императивное vs декларативное программирование

4:48 — MiniZinc: язык и онлайн-среда (play.minizinc.dev)

6:29 — Что такое солвер (решатель)

8:31 — Пример: арифметический ребус MATH + IS = COOL

16:54 — Ограничение all_different

24:28 — Переменные выбора (decision variables)

25:21 — Задачи оптимизации и целевая функция

30:02 — Задача коммивояжёра (TSP): постановка

36:46 — Три способа кодирования переменных

46:17 — Модель TSP в MiniZinc: данные и код

56:04 — Вывод оптимального маршрута

1:02:20 — Снятие симметрии: зачем и как

1:13:40 — Задача обмена донорскими почками (kidney exchange)

1:21:45 — Модель kidney exchange в MiniZinc

1:26:17 — Заключение: профессия математического моделиста

1:27:02 — Благотворительность и завершение

🔗 Попробовать MiniZinc: https://play.minizinc.dev/

Telegram (анонсы и розыгрыши): https://t.me/mathloversclub28

Подробнее о конференции (расписание и бонусы): https://www.notion.so/mathloversclub/2025-2ce28c0e8517819882...

Все записи конференции — в нашем профиле на Stepik: https://stepik.org/users/645988571/teach #математика #оптимизация #программирование #MiniZinc #научпоп

Показать полностью

Джун, Мидл, Сеньор - кто вы?

На днях читал вот эту замечательную книжку в русском переводе:

Джун, Мидл, Сеньор - кто вы?

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

Показать полностью 1
3
Вопрос из ленты «Эксперты»

Помощь с Pyside6

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

Есть вот такой интерфейс:

Картинка только для понимания.

Картинка только для понимания.

По задумке при нажатии кнопки Menu блок c Select'ами исчезает, а рабочая область Tab1 расширяется на всю ширину окна. Вот так:

 Показано зеленой линией.

Показано зеленой линией.

Я облазил все свойства QTabWidget но нужного не нашел. Может среди Вас, друзья, есть кто направит на путь истинный и подскажет что.
Сейчас я вообще сомневаюсь что такое возможно через QTabWidget. Может действительно лучше реализовать все через обычный Qwidget, а отображение в нем переключать по кнопкам вместо tab

Показать полностью 1

Вайб-кодинг в новогодние праздники

Получится?

Вайб-кодинг в новогодние праздники

И вообще, почему это вайб-кодинг? Я называю это кофе-кодинг. Пьёшь кофе. Машина работает. Потом ты снова пьёшь кофе. И разбираешь, что она там придумала.

Правда, сейчас я пью ром. Но это почти то же самое.

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества