
Иными словами, люди имеют сильную склонность предполагать, что программное обеспечение имеет ценовые характеристики, характерные для производства других товаров. Но оба этих предположения с очевидностью являются ложными.
Начнем с того, что код, написанный на продажу — только вершина айсберга программного обеспечения. В эпоху до появления микрокомпьютеров 90 % всего кода в мире были написаны для внутренних нужд в банках и страховых компаниях, и это было общепризнано. Очевидно, даже не должно обсуждаться то, что другие отрасли промышленности намного более программоемки сейчас, и доля товарно-денежных отношений соответственно понизилась по отношению к общему количеству — но мы скоро увидим, основанное на опыте свидетельство тому, что приблизительно 95 % кода все еще пишется для внутренних нужд.
Этот код включает в себя большинство информационно-управляющих систем, финансовых программ и программ для управления базами данных, в которых нуждается каждая средняя и большая компания. Он включает в себя код низкого уровня наподобие драйверов (почти никто не зарабатывает деньги, продавая драйверы, к этому мы возвратимся позже). Он включает в себя все виды кода в ПЗУ для все более и более возрастающего количества микропроцессорных устройств — от станков и лайнеров до автомобилей, микроволновых печей и тостеров.
Большая часть такого кода для внутреннего использования объединена со средой, окружающей его, способами, которые делают использование в других условиях или копирование его очень трудным. (Это верно независимо от того, является ли «окружающая среда» набором процедур, принятых на конкретном предприятии, или топливным инжектором комбайна.) Таким образом, поскольку окружающая среда изменяется, требуется много работы для того, чтобы, непрерывно поддерживать программное обеспечение в соответствии с ней.
Это называют «сопровождением», и любой разработчик программного обеспечения или специалист по системному анализу скажет вам, что оно составляет большую часть (более 75 %) оплаченной работы, которой занимаются программисты.
