Программисты и фирмы: кто кого

Elrock

2008-01-23

Одним из краеугольных аргументов ярых противников Open Source являются суждения типа этого:
"Вот я понимаю, есть мощные софтверные фирмы (Чаще всего упоминаются две, угадайте какие). У них большое количество программистов, получающих за свою работу приличные деньги. На них можно воздействовать методом кнута и пряника, добиваясь качественных результатов. Ну не могут противостоящие им программисты-дикари, разбросанные по всему миру, работающие зачастую из энтузиазма, создать что либо стоящее!" Но данное заблуждение не выдерживает никакой критики. Приведу пример из своей практики, поначалу, кажется, не имеющий прямого отношения к данному вопросу.

По роду своей деятельности я лет 10 занимаюсь продажей программного обеспечения для автоматизации деятельности предприятий (догадайтесь, какой фирмы) а также адаптацией его под нужды заказчика. Город наш небольшой население меньше 20 тыс, до нашего областного центра около 500 км.

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

Я не считаю себя профессиональным программистом, программирование и изучение новых языков программирования, для меня уже лет 15 чаще всего хобби, что-то вроде игры в компьютерные игры у геймеров. Парадоксально, но первым моим языком программирования был Assembler для процессоров Intel 8080.

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

Года так через три вышестоящая фирма моих заказчиков "созрела" и поставила задачей в централизованном порядке автоматизировать деятельность своих филиалов. За несколько лет до этого наняли фирму в областном центре (миллионном городе), у которой только штатных программистов было человека три, которые сделали "свою" программу. То ли из тщеславия, по принципу "не боги горшки обжигают", а по-моему мнению - просто из-за неопытности, программисты фирмы решились написать программу "с нуля". На это ушло у них несколько лет, потому что это гораздо сложнее чем, переделать что либо готовое. Моих клиентов принудительным порядком перевели на это "творение". Я из любопытства даже посмотрел, что там понаписано. Мало того что даже базовые основы его проектирования были неудачны и имели мало общего с реальной жизнью, сам код был написан так, чтобы опровергнуть все сложившиеся приемы программирования. Кто тому же это был не отлаженный, всего лишь несколько переделанный, а свежеиспеченный продукт, то ситуация была "ошибка на ошибке и ошибкой погоняет". Обновления и исправления от фирмы поступали практически ежедневно, а иногда и несколько раз в день. И до сих, пор, по прошествии стольких лет, работа по доводке "кипит". Ну а мои клиенты до сих пор с ностальгией вспоминают: "как хорошо было работать на твоей программе". Потом был я в той фирме-разработчике. Когда они узнали что разработкой ПО для автоматизации занимаюсь уже 10 лет, они удивились - в среднем их стаж был 1 - 2 года - из-за текучки кадров, естественной для таких фирм (зарплата у них не очень большая), они только доделывали то что начинали до них другие.

Через несколько лет подобная история приключилась еще с одними моими клиентами. Но эпилог там был очень показателен. Когда мои клиенты позвонили в свою вышестоящую организацию и сказали: "Уже несколько лет ваши программисты никак не могут довести программу до ума, а вот наш местный сделал за короткое время вполне приличную реализацию". Там им честно ответили: "Мы и сами понимаем, что дело плохо продвигается. Однако на работу с фирмой-подрядчиком потратили несколько лет и ухлопали большие деньги. Если мы доложим руководству, что все это было зря, то нас просто не поймут. Придется как и раньше тянуть лямку, в надежде что все образуется". В общем вышел чемодан без ручки - и нести тяжело, и бросить жалко.

Из этого и прочего можно сделать некоторые выводы:

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

  2. Если программист хорошо знает предмет, или, еще лучше использует программу в повседневной работе (как я, к примеру) - то и результат будет соответствующим. Это касается, в в большей мере достаточно узкоспециальных программ. Не нужна прослойка "толмачей", переводящих программистам, что хотят потребители, и наоборот. Потому-что они зачастую разговаривают на различных, непонятных друг для друга языках. В результате непонимания и рождаются разного рода "уродцы".

  3. Принцип "лучше что-либо переписать или дописать, чем написать", свойственный и для Open Source, гораздо эффективнее, чем практика софтверных фирм либо писать все самим, либо покупать чужие коммерческие наработки, что стараются делать лишь в крайнем случае. А вот использовать, к примеру многочисленные библиотеки, доступные в исходном коде, им не позволяют проблемы лицензирования. Поэтому мне понятна, даже большая, чем к Linux, откровенная неприязнь некоторых фирм, в частности Microsoft, к лицензии GPL. Цитата: "В интервью CNET на конференции TechEd 2001 он /Билл Гейтс/ заявил, что люди часто не понимают, какую угрозу представляет собой свободное программное обеспечение или, говоря точнее, лицензия GPL, под которой оно часто распространяется. Гейтс сравнил её с Пэкменом - старой компьютерной игрой, целью которой было съесть как можно больше фишек . Так же и GPL - старается съесть всё, до чего может дотянуться, сделав непригодным для коммерческого использования." (http://security.compulenta.ru/14639/). В отличие от некоторых "IT-просветителей" они видят в сообществе Open Source не клоунов - красноглазых неудачников и фанатов, впавших в ересь, а серьезных противников. А представьте себе, что будет, когда Open Source начнет массово проникать и на платформу Windows? Пользователи однозначно выиграют - потому что зачастую даже за смехотворные по понятиям пользователя Linux и BSD разработчики shareware-программ для Windows просят денег. Но многие потеряют источники доходов.

  4. Количество программистов, работающих над каким либо проектом Open Source обманчиво. С учетом того что многие пользовательские программы часто используют исходный код и более низкоуровневые библиотеки, написанные другими, реальное количество людей, вложивших в нее свой труд, гораздо больше. Плюс еще добровольные переводчики и тестеры.

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

  6. Из пунктов 2 и 5 следует - никто никому ничего не должен. Гомерический смех вызывают претензии вроде: "Пожалуйста, мне - комплект химических утилит а-ля hyperchem". В сообществе Open Source программисты чаще всего пишут софт для деятельности в своей области. К примеру, много хорошего софта для создания музыки. Из этого вывод что либо среди программистов много самодеятельных музыкантов, либо среди музыкантов есть хорошие программисты. В случае с hyperchem, либо среди химиков нет знающих программистов, и что более вероятно, среди программистов нет фанатов химии. Даже если и какая-либо фирма сделает hyperchem for Linux, то вряд ли она будет бесплатной. Подозреваю, с ядерной физикой положение еще хуже.

В заключение добавлю, что все выше написанное всего лишь мое мнение, основанное исключительно на личном опыте.

Комментарии