К вопросу, почему везде так много багов, всё лагает, продукт выходит сырым, а известные баги не чинятся моментально.
Большинство IT-специалистов - наёмные рабочие. Сотрудники тех или иных компаний. Комания - бизнес. Задача бизнеса - приносить прибыль его владельцу. Задача IT-специалиста - приносить прибыль бизнесу, за поределённую плату, выполняя свои непосредственные обязанности.
Где же тут конфликт интересов? Давай посмотрим на создание продукта глазами бизнеса и глазами IT-специалиста.
Задача: создать сайт для автосалона с формой обратной связи.
Бизнес:
Век глобальной цифровизации, всё давно online, сайт принесёт мне больше клиентов и прибыли. Будем делать. Собирается команда, устанавливаются сроки на создание сайта, на эти сроки выделяются средства.
Кого будем нанимать? Тут вступает в игру IT-специалист.
IT-специалист: Само собой искать качественных инженеров и желательно сделать сайт быстрым и удобным, ещё и задействуем вот эти прогрессивные технологии.
Бизнес: Качественны инженер дорого стоит, бюджет не резиновый. Найти его сложно, а сроки поджимают. Делать сайт быстрым и удобным - отличная идея. Новые технологии - да, можно. Что для этого надо?
IT специалист: Без хороших инженеров мы не сможем сделать качественный продукт.
Бизнес: Максимум 2 мидла и сроки неделя.
IT специалист: Но...
Бизнес: Никаких возражений, бюджета больше нет. Что там с технологиями, сколько это будет нам стоить?
IT специалист: Вышел новый мощный фрэймворк, он маленький и очень гибкий, можем на нём написать сайт, но нужно 2 месяца на написание своего движка, тесты, дебаг...
Бизнес: А можно быстрее? У нас 3 месяца всего.
IT специалист: Можно, есть готовые конструкторы, на них можно сделать сайт за месяц. Но это будет не так эффективно, как написать с 0 и с использованием нового фрэймворка.
Бизнес: На готовых конструкторах сайт будет работать так, как указано в ТЗ? Форма обратной связи будет?
IT специалист: Да, будет, но это не эффективно, можно лучше.
Бизнес: Отлично, 3 месяца даже с запасом. А что по железкам?
IT специалист: Я знаю отличный хостинг облачный, всё будет летать и прекрасно масштабироваться.
Бизнес: И сколько он нам будет стоить?
IT специалист: "Называет сумму"
Бизнес: Дорого, я тут видел в рекламе отличное предложение, ещё и по скидке, посмотри, на нём запустится?
IT специалист: Да.
Бизнес: Отлично, набирайте команду и начинайте делать.
Дедлайн.
Бизнес: Сайт готов?
IT специалист: Готов, но осталось протестировать часть функционала, покрыть автоматикой тут и тут, ещё можно оптимизировать тут и тут. И есть пара багов, нужно закрыть.
Бизнес: Он работает?
IT специалист: Да.
Бизнес: Отличная работа, послезавтра запуск.
Данный пример сильно утрированный, но отображает суть той самой разницы интересов. Бизнесу важна прибыль с минимальными вложениями. Бюджет бизнеса не бесконечный и каждый потраченный день на разработку продукта - это минус средства из бюджета бизнеса. Поэтому бизнесу крайне важно соблюдение сроков выполнения тех или иных задач. Бизнесу дешевле и выгоднее нанять JS или Wordpress разработчика после вуза, который на коленке состряпает сайт, чем нанять качественного C#/Java разработчика.
Инженеру же важно сделать качественно и оптимально, использовать современные технологии и все best practices.
А качественно и оптимально - значит дорого и зачастую долго. Оптимизировать и улучшат можно до бесконечности и пока продукт на стадии разработки - он убыточен для бизнеса. Намного выгоднее выпускать продукт по частям и стабилизировать, выпуская обновления и патчи.
Опытные IT спецалисты это прекрасно понимают, но вот новичкам тут сложнее. Он учили, что багов быть не должно, учили, что C++ быстрее JS и не понимают, почему выбирают чаще JS, почему так популярны wordpress и подобные CMS, почему выдаются неоптимальные решения и т.д.
Да, этот пост больше для новичков, но как показывает практика, даже опытные инженеры не всегда осознают эту самую разницу между целями бизнеса и IT специалиста.