Почему инхаус иногда побеждает?
Коротенький обрывок разгона на эту тему: ⁃ Взять готовый инструмент, который бы отвечал всем твоим требования и нуждам, и радоваться жизни да не знать с ним горя – это иллюзия. Мы либо убеждаем себя в том, что функционал подходит, либо смиряемся с тем, что чего-то не хватает, либо стреляем из пушки по воробьям. По сути же узко заточенный инструмент решает задачи всегда эффективнее, чем универсальный. Самый идеальный пример – это разница между ножом, отверткой и мультитулом. Спору ноль, иногда удобно иметь все в одном месте (например в походе), но если ты каждый день режешь хлеб или крутишь шурупы – выбирать мультитул странно! Впрочем как и выбирать отвертку, если нужно собрать гипсокартонное перекрытие – шуруповерт бы справился с этой задачей куда лучше. Отсюда желание сэкономить и купить вундерфавлю в мире ПО, которая закроет все и вся – утопия. А мастера фантасты продают эти утопии за триллионы вечнозеленых и рады стараться. ⁃ Бытует мнение, что написать под себя инструмент, который будет эффективно решать поставленную задачу не всегда возможно. Потому как например сесть и сваять собственный BI – это не в тапки класть задачка. Или сесть и написать собственную СУБД или очередь, или оркестратор. Или стоп, а как тогда появляются oss решения?... ⁃ Дошкольнику крайне трудно решать интегралы, а студенту первого курса очень непросто осознать объем работы для успешной диссертации. Есть вещи, которые невозможно решить без наличия опыта и знаний, но далеко не всегда покупка готового решения выгоднее покупки опыта и знаний для разработки собственного решения. ⁃ Но как понять, что выгодно и когда? Мне кажется тут зависимость примерно следующая – если ваш продукт, строится как набор костылей и велосипедов из опенсорса и гистов с стаковерфлоу, но прям ценность от того, что вы это все склеили очень не маленькая - вполне даже имеет смысл сесть и решить эту задачу целиком самостоятельно. Как минимум получится хороший молоток или отвертка, может даже шуроповерт. А вот если ваш продукт строится поверх какой-то одной технологии или ему совершенно не важно что за технология стоит у него в кишках ибо вся ценность это бизнеслогика, вот тогда создавать все целиком своё нужно только по лицензионным соображениям. (т.е. в экономически обоснованном сценарии) ⁃ Для большинства компаний создавать свою СУБД - борщ. Но создавать собственный сайт уже не борщ (хотя когда-то, не так давно, на собственные движки смотрели с прищуром). А есть компании, кто выпускают в свет крутые проекты, рожденные сначала только для решения своих задач, которыми мы все потом с удовольствием пользуемся. И не нужно бояться такие проекты делать. Иногда, подчеркну, иногда - купить чужое, это привязать к своей ноге гантели. А иногда влезть в долгострой - это отдыхать не в доме, а в бытовке. ⁃ Все нужно взвешивать и все должно быть обосновано. Не забывайте, что множество крутых инженерных проектов до первой версии дотянуто очень маленькими командами.
Не надо бояться делать собственные решения с нуля. ИТ настолько не совершенная помойка, что возможно именно ваше решение станет тем золотым яйцом, которого все так давно искали. А может и нет. =) Но по-любому надо все посчитать и пробовать.
Ответ на заголовок – потому что в гипотезе множественных открытий есть те, кому больше везет и те, кому повезло меньше. Это величина не нормирована. И иногда побеждают инженеры-изобрететали из инхауса.