5.4.06

Жертвы тиража

За последние несколько лет в России и СНГ увеличилось количество программистов, использующих Delphi. При этом резко пострадало качество - достаточно посмотреть на частые вопросы, которые задаются на форумах (студенты не в счет). Также, как результат, резко упала зарплата по вакансии "программист, Delphi", в некоторых местах при приеме на работу даже собеседование стало чисто формальным. Возможно, эта тенденция справедлива и для других языков программирования, но по ним я не располагаю подобными сведениями.

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

К нам в техническую поддержку все чаще обращаются пользователи тиражируемых систем, построенных с использованием СУБД InterBase и Firebird, с жалобами на плохую производительность. Объемы баз данных в этих случаях являются весьма средними, что не дает повода для сомнений в производительности самих СУБД или аппаратных средств. Вы можете посмотреть на статистику по размерам БД в системах на IB/FB за 2003-2005 год, в презентации, которую я "озвучивал" на семинаре Корпоративные базы данных 2005 - "большие" базы данных в основном существуют в организациях, которые сами для себя разрабатывают ПО.
При помощи инструмента, который мы разработали примерно год назад, стало возможным оценивать производительность систем на IB/FB со стороны базы данных. То есть, посмотреть, что вытворяют приложения над БД, и хорошо ли они это делают. Применяя этот инструмент к тем самым тиражируемым системам, оказывается, что ситуация весьма печальна.
Одновременно, грустные мысли овладевают и при случайном ознакомлении со структурой таких БД - таблицами, процедурами и т.п.

То есть, получается следующая картина. У разработчиков "своих" систем проблем практически нет - если они и возникают, то достаточно быстро решаются через техподдержку, форумы и т.п. А в отношении тиражируемых систем
  • с проблемами к нам обращаются покупатели, а не разработчики
  • разработчики зачастую игнорируют проблемы с производительностью, возникающие у покупателей
  • разработчиков таких систем не видно на форумах, не обращаются они и в техподдержку
  • только 5-7% разработчиков, прошедших у нас обучение, занимаются тиражируемыми решениями (остальные разрабатывают "свои" системы)
Плюс к этому, квалифицированные разработчики часто покидают проект после доведения его до 70-80% готовности, в результате по конечному продукту часто даже среднего уровня техническое сопровождение не производится.

И, после начала продаж, тиражируемая система редко когда модифицируется. Бывают случаи, что одно и то же решение продается в неизменном виде несколько лет (исключим высококачественные системы, до сих пор функционирующие, к примеру на InterBase 4.1/4.2).

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

p.s. я не называю имен, но боюсь, что если ситуация не изменится, придется по просьбе покупателей публиковать "черные списки". Это не угроза, но нельзя же так порочить доброе имя инструментов разработки и СУБД, правда?

26 комментариев:

Анонимный комментирует...

Интересно узнать об уровне стоимости таких систем для покупателя (к вопросу о цена/качество). :-)

Юрий

Анонимный комментирует...

Складывается впечатление, что Россия становится страной безбожной халтуры. Куда ни кинь -- хоть качество жилищного строительства (я чуть больше года назад въехал в свежевыстроенную квартиру в подмосковье), про отечественные автомобили вообще умалчиваем, что в области разработки ПО. Один небольшой пример -- довольно известная компания, подразделение по разработке ПО. Предложения отдельных разработчиков, навести порядок в процессах разработки, наталкивается на абсолютное напонимание других, и менеджмента. Неудачи в проектах напрямую связываются с тем, что "заказчики -- козлы". Большинство проектов переделываются -- т.к. до конца не определены требования к ПО. Примеры ТЗ которые я видел -- ввергли меня в ужас -- одни картинки предпологаемого пользовательского интерфейса ... и все. И как это потом тестировать? Зато ОЧЕНЬ много самомнения, типа мы крутые практики -- в книгах пишут фигню всякую, курсы -- вообще отстой -- ничего не дают. А инструментарий для поддержки процессов разработки -- вообще происки производителей инструментов, и толку от них нет. "ТЗ учиться писать??? Вы что ..."
Особая тема уровень управления проектами. Если вы думаете что они _управляют_ проектами -- то глубоко ошибаетесь -- они "разводят заказчиков" :-). Планирование, сроки сбрасывается на тимлидеров -- типа сами планируйте, только через 2 месяца все должно быть. Разработчики, пишущие на Java, об ООАП имеют отдаленное представление. Слово "паттерн" -- используется как ругательное :-). Где уж там про архитектуру задуматься ... а тоже хотели делать из заказных решений -- коробочные -- даже впаривать их сейлы начали потенциальным покупателям как коробки ... но по цене полноценного дивелопмента ... правда один из заказчиков обломал -- дык это даже не заставило задуматься!
Сдается мне, что непрофессионализм становиться модным. Непрофессиональные менеджеры создают условия для непрофессиональных процессов, где "ушлые ребята" могут ловить "рыбку в мутной воде" :-), но при этом они еще и ВОИНСТВЕННЫ, доказывая что они этакие прагматики и "плавали-знаем". Такие -- низачто не будут спрашивать в форумах, ибо искренее уверенны в соббственной непоКОБЕЛИМОСТИ :-).

Dmitry Kuzmenko комментирует...

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

Dmitry Kuzmenko комментирует...

ко второму комменту могу добавить - пусть Алексей Ковязин (ibsurgeon.blogspot.com) расскажет как он на прежнем месте работы участвовал в собеседованиях при приеме на работу новых сотрудников. Чистый цирк. Цирк в том смысле, что народ хочет какие-то совершенно немеряные зарплаты при отсутствии элементарных знаний, и бывает что совершенно осознавая несоответствие, на "авось".

Анонимный комментирует...

Дмитрий, хочешь я пришлю тебе статистику БД системы стоимостью в мегабакс? :) Оценишь качество и цену :)

Анонимный комментирует...

За последние несколько лет в России и СНГ увеличилось количество программистов, использующих Delphi.

А откуда такие данные, если не секрет? Если только по впечатлениям, то лично у меня впечатление, что количество программистов увеличилось вообще, но в процентном соотношении, количество программистов Delphi - стало гораздо меньше.
Что же касается возросшего непрофессионализма, то тут опять же, ИМХО, процентное соотношение остается прежним.
А зарплата, действительно снизилась, т.к. студенты и мастеры-ломастеры устраивают демпинг... работая в большинстве случаев - за еду. Не знаю, как в Москве, а в России - точно за еду, причем к концу месяца им, обычно, кушать хочется сильнее. Зарплата профессионалов снижается соответственно, т.к. юзеру(заказчику) в большинстве случаев, все таки, без разницы что там программа использует... Oracle или DBase, главное чтоб работало.


kdv said...
цены часто дифференцированные, например, базовый комплект от 8 до 25 тысяч рублей, и дальше примерно по 5-8 тысяч рублей за доп. рабочее место. Это чистая стоимость софта.


А зарплата у создателя "своего" софта, будет примерно в 1.5-2 раза выше... и будет отчисляться ему ежемесячно.
Вопрос на самом деле в том, готовы ли вы платить такие деньги, чтобы запрос который исполнятся "5 минут", "летал" после оптимизации за 5 скунд?
ИМХО, все зависит от ситуации. Кому-то это действительно важно, а кто-то готов "подождать". ИМХО, сфер где это действительно важно, где действительно нужны люди которые будут разбирать каждый план выполнения, каждого запроса, прогнозировать селективности индексов, пересобирать статистику и проч. и проч. - не так много.

К нам в техническую поддержку все чаще обращаются пользователи тиражируемых систем, построенных с использованием СУБД InterBase и Firebird, с жалобами на плохую производительность.
Наверное это какие-нибудь сотые процента от всех пользователей "кривых" систем под IB/FB в России. Вряд-ли можно делать на этом основании, какие-либо выводы.

Анонимный комментирует...

Кстати контору, про которую написано во втором постинге -- похоже разгоняют ... напрочь ...
Бизнес по-русски ... сначала купили одну контору, слили с имеющейся ... теперь всех разгоняют ...

Dmitry Kuzmenko комментирует...

Аркадию:
за других программистов не скажу, по Delphi действительно впечатление увеличения количества. Думаю, что это увеличение числа программистов общее.

Про запрос 5 минут и 5 секунд - я рекомендую прочитать
www.ibase.ru/devinfo/getstat.htm , там написано и про фатальные случаи, и про (хотя бы одну) причину их возникновения.
Я считаю, что она основная - разработчики просто НЕ тестируют продаваемую систему на объемах данных, сравнимых с объемами данных покупателя.
Известно что на мелкой БД запросы можно писать наперекосяк (типа select max...), и на производительности это не скажется. А когда данные вырастут, то производительность будет падать в геометрической прогрессии. И тут мало того, что запросы придется переделывать, но еще и структуру таблиц. Если это делается "потом", то встает проблема апгрейда структуры БД, и так далее...
То есть, я не предлагаю авторам софта оптимизировать каждый раз для каждого покупателя, хотя такой сервис может быть. Но и не говорю, что нельзя написать систему, которая будет нормально работать на больших объемах данных у разных клиентов.

насчет "сотых процента" - я как раз пишу о том, что разработчики "своих" систем более открыты. А разработчики тиражируемых систем все в себе. Независимо от качества тиражируемых систем.

Ну и потом, я же не писал, что все тиражируемые системы плохие. Вовсе нет.

Анонимный комментирует...

Вашу добрую маму...
Зажрались Вы в Москве. На мой взгляд - программистов стало меньше на порядок.
Я не могу найти людей в Калуге на стартовые $350. Я согласен взять студентов. Доучим, диплом сделаем на уровне.
На чем они писали до этого - мне фиолетово, привьем корпоративный стандарт. Если есть опыт работы с Delphi - съэкономим два месяца на обучении.
Самое смешное - наши партнеры пытаются набирать людей в Мск - типа пинки и зуботычины и зарплату раздадут они, а поставить и принять задачу - я.
Так вот - на стартовую цену $700 объявляются только гоблины чистой воды.
Стоимость программиста, да и администратора зависит совсем не от распространенности Delphi

Dmitry Kuzmenko комментирует...

эээ, батенька. "Готовые" программисты в Калуге и других "околомосковских" регионах исчезли как класс еще лет пять назад. Причины
1. низкие зарплаты
2. перевод предприятий на "готовое" ПО

Так что выход пока один - выращивать своих, что вы делаете совершенно правильно.

Анонимный комментирует...

У нас постоянно что то до конца не дорабатывается. У нас умер класс постановщиков задач,проектировщиков баз данных. Три в одном флаконе -это естественно потеря качества. Появился релиз Firebird 2 - где документация ---нет ,её и на 1.0 не было, на 1.5 нет о чем может быть речь. Многие технические вопросы сами бы отпали, тем более глупые.О Delphi, вы читали книги о продукте. Практически в каждой книге одно и то же ,но под разным соусом. Нет ни одного анализа сложных систем

Анонимный комментирует...

А чего вы хотели в стране где человек почитавший книгу для чайников или для хакеров и ругающийся странными терминами не осознавая их смысла уже программист. К нам на фирму например недавно являлся программист с 5! летним опытом работы и сходу заявил что программирует на HTML. Шеф смеялся часа 2 и после этого вы хотите сложные системы?

Анонимный комментирует...

Насчет количества программистов на Delphi сомнение: почему - то программистами являются также разработчики сайтов. А это в корне неверно.
Далее полностью согласен насчет оптимизации запросов - всегда надо исходить из реального объема данных заказчика. В свое время прокололись на этом и IB/FB ни причем. Проверяли на Oracle - падает производительность. Отсюда мораль - быть программистом и разработчиком БД - это не одно и то же.

Анонимный комментирует...

Выращивать своих тоже не вариант. Год-другой они учатся, а потом в Москву/Питер или на Запад валят. Остаётся дальше работать менее 5%. Т.е. максимум чего удаётся добиться - это год работы негра в пол-ставки.
И ладно, если ещё программистами уходят, в последнее время модно стало работать продавцами-консультантами. З.п. 500-1200$ в месяц при средне-школьном образовании и нормально подвешеном языке...
Как спрашивается людей мотивировать?

Dmitry Kuzmenko комментирует...

to Anonymous: "где документация ---нет ,её и на 1.0 не было, на 1.5 нет о чем может быть речь."

ДОРОГОЙ МОЙ! Если бы Вы ходили на ibase.ru, то Вы бы видели, что написано в разделе "Документация" на страничке www.ibase.ru/firebird.htm
Не хочу разводить флейм, но нельзя же так. Я понимаю, что прикладные разработчики загружены выше крыши, но хоть на ОДИН САЙТ можно ходить регулярно?

Анонимный комментирует...

> Я не могу найти людей в Калуге на стартовые $350
Ух-ох. Меня всегда убивает, когда вижу в метро объявления: "уборщик - 9000руб" и сравниваю с такой вот зарплатой. Периодически возникают мысли пойти в уборщики... Останавливает только то, что моя зарплата пока выше.

Анонимный комментирует...

"...У нас умер класс постановщиков задач,проектировщиков баз данных."

Ну сколько раз твредили миру -- нет такой роли "постановщик задач" в программной инженерии ... вообще ... более того, я задавал вопросы на разных форумах -- в т.ч. на тех где кандовые ГОСТовцы сидят -- кто такой "постановщик задач"? Мне НИКТО не дал четкого ответа, что входит в обязанности "постановщика" и какие требования к skills. Вот так.
А вот если говорить за роль системного аналитика -- то как минимум есть источники, где можно ясно понять, что должна делать в проекте эта роль, какие документы выпускать, какие модели рисовать. Вот так вот ...

Анонимный комментирует...

Дима, полностью с тобой согласен - в последнее время качество падает очень сильно. Могу даже привести пример: пришел на днях в одну аптеку - жалуются на программу которую им фирма (даже скрывать не буду какая) "Интерлизинг" впарила. Есть такая фармацевтическая, пальцы веером и все такое. Программе от роду 5 лет, внедряли год назад. Просили помочь, потому что обслуги фиг дождутся от самих разрабочиков. По мере обследования компьютера начали постепенно закрадыватся сомнения в моей полноценности (смотри дату внедрения):
1. Обнаруживаю что работа идет через BDE - хорошо, значит на Delphi писали, пойму что там наворочено.
2. Обнаруживаю что стоит сервер FireBird - УРА, помогу вам ребята.
3. Сервер почему-то не берется моим IBE.... Смотрю версию - 5.6... Впадаю в шок
4. В базе таблиц порядка сотен, разобраться как они именуются просто нереально, хотя проблемные таблицы через статистику сформированную ручками нашел. Толку то....

Короче забил на базу и попросил купить у меня аналогичную конфу под 1С - мне тоже торговать чем-то надо. Вроде бы почти созрели и купят скоро, а ведь так и клиенты начнут уходить с Delphi-разработок на 1С (в принципе везде уходят), хотя под 1С качество программистов еще хуже - лезут такие ребята... Я даже в одной конфигурации видел бесконечный цикл типа такого:
Пока 1=1 Цикл
//Тут пара действиий
Если Условие Тогда
Прервать
КонецЕсли;
КонецЦикла

Так что не расстраивайся, скоро будем как 1С-ники - 30% нормальных разработчиков, а остальные ламеры страшенные...

Анонимный комментирует...

К сожалению ОЧЕНЬ многое зависит от совершенно бездарного менеджмента, которое считает, что программист - это человек который должен настроить сервер, зарядить катридж и всё тут автоматизировать до ума. И от этого идет всё остальное. Это очень печально, т.к. действительно словом программист начинают называть кого попало и размывает термин.
О каком качестве, например, может идти речь, если я в команде взялся писать автоматизацию участка (довольно большого и неприятного) одного предприятия. Мало того что з/п дали маленькую, так ещё сказали чтобы через МЕСЯЦ мы показали как будет работать программа. Т.е. хотят видеть окошки, менюшки. А мне надо пару месяцев только понимать что там происходит и базу проектировать, чтобы нормально было дальше работать. А начальство рассуждает так "Мы базу не видим, значит Вы не работаете, а схемки Вы для себя рисуете"!
Вот они и получают "окошечки" вместо программ. Такое вот моё мнение.

//Василий

Анонимный комментирует...

Дмитрий, здравствуйте!
Мне кажется, что распространение халтуры и халтурного подхода ко всему - это общая тенденция, к сожалению. Это относится не только к Delphi. И не только к программированию... Просто так сложилось, что Pascal, а потом и Delphi у нас приобрели очень широкое распространение. Как-то партнеры из Ирландии прислали нам исходники ПО, которое для них сотряпала тамошняя софтверная фирма на Java. Это надо было видеть...
И в то же время видел вполне приличные и вразумительные исходники на Visual Basic.


p.s. Я, в свое время, работая в Аэрофлоте, учился у Вас на курсах. Правда не по Interbase, а по серверу Байконур. Спасибо за науку.

Анонимный комментирует...

Я думаю, что во всем виноваты москали ;-) Причем, как минимум, дважды.
Поясняю:
во-первых, уровень зарплат Москвы и готовность принимать программеров и часть из них отправлять дальше за рубеж делают выращивание нормальных кадров в регионах совершенно бесперспективным: у нас, например, уже несколько толковых ребят уехало в столицу, т.к. уровень зарплаты в 1500-2000$ мы обеспечить не можем. Еще вариант "отбора" местных кадров: в региональные филиалы московских банков и крупных компаний, а дальше - в столицу.
Во-вторых, беда в том, что рынок (я не о программерском, а о торговле, банках, производстве) все больше монополизируется и укрупняется и все больше решений принимается в Москве. В том числе, и решения о различной автоматизации. И регионам практически серьезных заказов не перепадает. Более того, часто бывает такая картинка: берется слабое и недоделанное московское решение(плюс получается откат принявшим решение), а локальное решение, которое вылизывалось годами и уже работает, просто выбрасывается.
Я такое видел в гос.казначействе. Им, году в 98-м, спустили из Москвы базу данных на Access(заодно с кучей оборудования, т.к. оно даже ползком нормально не работало), хотя у них был готов и уже внедрен в нескольких филиалах в регионах комплекс на Oracle. Очень серьезная и интересная разработка, крайне сильная для того времени. Но чиновник в Москве решил получить откат... В результате, вся группа, которая работала над проектом, разбежалась: двое в Америке, кто-то в Москве, остальные работают совсем в других конторах. Но главное в том, что за время существования отдела программирования из него вышло несколько десятков программеров и сисадминов хорошего уровня, а за последние годы, хотя там сидит еще больше народа, никаких новых спецов не появляется - учиться не на чем. Только на поддержке чужих продуктов программеров не вырастить. И такая история, к сожалению, очень характерна.

PS Кстати, а что сейчас с Байконуром?
Проект умер?

Анонимный комментирует...

Что такое Delphi программист? Мне кажется причисляющие себя к этому клану чувствуют некоторую обособленность. Кажущаяся простота среды и доступность большого количества готовых модулей (компонентов) съиграли злую шутку. Пока уровень задач ограничивался одним компьютером и двумя таблицами в базе все было шоколадно, двух звенная схема работала. Кто-то перерос и стал профессиональным программистом, что, по моему мнению, неизбежно привело к выбору более адекватного средства для решения задач. Оставшиеся несут бремя поддержки наивных решений конца 90-х. Delphi, как и Fortran умер как язык уже давно. Нет смысла изучать мертвый язык, по этому и нет новых профессионалов. Это даже не язык а объектная надстройка над Pascal.
Для того чтобы понять знает ли чел Delphi я задаю три вопроса по языку:
1. Что такое (и зачем)виртуальный коструктор.
2. Что токое (и зачем) open array.
3. Что такое (и зачем) префикс const.
И ответ, как правило, наивный. А ведь это основополагающие кострукции языка.

Dmitry Kuzmenko комментирует...

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

Dmitry Kuzmenko комментирует...

насчет Байконура - ничего не знаю.

Анонимный комментирует...

Я так думаю, с Delphi сыграла злую шутку ну очень пологая кривая обучения, когда Hello world с кнопочками, иконками, анимацией и прочим можно набросать за 15 минут с перекурами. Это создаёт иллюзию того, что программирование - это просто. И это не общие слова - я сам являюсь пострадавшим от этой иллюзии ("жертва Delphi" :-) ). И теперь, проработав программистом более 5 лет (Delphi, Perl), всё ещё считаю себя новичком, потому что у меня не было опыта настоящего ООП - всё больше "страдания" на объектную тему. Плутаю в одной своей программе, которая всего-то 7000 строк, потому что криво спроектирована и написана.
Вторая причина, на мой взгляд: если книги по C++ и даже Си помимо описания языка иногда дают рекомендации по общим методам проектирования ПО, или хотя бы заставляют задуматься о них, то книги по Delphi (и Visual Basic, кстати) в большинстве случаев носят попсовый характер: набросали на форму компонент, написали немного кода, и вперёд. Сужу, опять же, по себе: неплохо зная Object Pascal, ну никак я не мог применить прочитанное в книге Гради Буча, пока не прочитал (два раза, кстати :) ) Бьерна Страуструпа "Язык программирования С++". Только после этого я начал понимать, что такое ООП на самом деле, и даже Object Pascal предстал несколько в ином свете.
Я допускаю, что дело не в Delphi, а в ДНК, или отсутствии систематического программистского образования (у меня диплом инженера по автоматизации). Но если непрофессионалов на Delphi действительно так много, значит не я один такой?
Между прочим: в нашем филиале внедряют (кто-то, видимо, получил большие откаты) биллинговую систему, написанную на Delphi + Oracle. Её внедряют уже несколько лет: "душераздирающее зрелище", доложу я вам.

Анонимный комментирует...

Тут случайно про Калугу услышал разговор.... Могу подъитожить, т.к. достаточно широко знаком с обстановкой. Все действительно знающие программисты расходятся по организациям ещё за долго до окончания института (как минимум год). Причём нужно проводить отбор лично с каждым, т.к. зачастую получается что человек имеет знания (и желание повысить квалификацию), но не практиковался (занимался другой специализацией). В обучение таких имеет смысл "вкладываться", но и тут получается если через 2года у него пропадёт интерес (или материальный или по дальнейшему развитию, что более актуально), то он 90% уйдёт дальше. С другой стороны я выслушал комментарии людей съездивших на курсы фирмы с начальной зарплатой от 350уе: прочитали "краткий" курс бойца и дали тест на который я мог им дать ответы только имея ОПЫТ РАБОТЫ по данному направлению.
В общем в регионах обычно остаются "фанаты" свего края, которые на данный момент времени уже более-менее устаканились. И "переманить" их практически НЕРЕАЛЬНО! А набирать/обучать "студентов" опасно (в плане бесцельно потраченного времени). Сам я, к сожелению, имел опыт в студенческую пору подставить одну организацию, и о уровне "студентов" я знаю не по наслышке. Выходят единицы "профессионалов" (способных к дальнейшему развитию).
Вот такой выкрик души...