Вспомнились несколько разных случаев.
— Как-то объяснял двум Senior Software Developer’ам, которые проработали в компаниях разрабатывающих security по крайней мере по нескольку лет, что такое битовые операции.
— Один из разработчиков написал неочевидный кусок кода (использующих плохо документированные особенности системы) и его спросили откуда он взял информацию о них. Сначала он ответил, что ему помог написать это друг. Где-то через неделю он заявил, что друга никакого нету и он написал сам.
— Как-то было, что за 4 часа переписал код, который другой разработчик писал две недели. Причем за это время уменьшил объем код в 16 раз, не потеряв функциональности и не ухудшив читабельности.
— Помогал другому senior software developer’у пофиксить баг — поставить в нужном месте скобку. Причем, компилятор указывал, где должна быть вставлена скобка и что ее там не хватает.
— Хоть не о разработчиках, но тоже хорошо. Работал с заказчиком (который технарь и достаточно долго ведет IT бизнес), который считал, что в проекте можно исправить ВСЕ ошибки.
— И тоже не о программистах. На конференции видел sales, который на Palm не знал как перейти в Launcher (аналог Program Files для Windows). При этом он продавал сложную систему (включая Palm клиента) и должен был отвечать на вопросы.
С удовольствием послушал бы ваши житейские истории, о том как окружение кушает ваш мозг.
Не кушайте моск другим и вам его, может быть, оставят.
Каждый имеет право немного потупить. Чем выше экспертиза, тем более заметны становятся тупняки 🙂
Согласен, это шедевр: «Хоть не о разработчиках, но тоже хорошо. Работал с заказчиком (который технарь и достаточно долго ведет IT бизнес), который считал, что в проекте можно исправить ВСЕ ошибки.»
Ну под тупление попадает заказчик (из описанных)
Честно говоря остальные случае, скорее клинические.
“Хоть не о разработчиках, но тоже хорошо. Работал с заказчиком (который технарь и достаточно долго ведет IT бизнес), который считал, что в проекте можно исправить ВСЕ ошибки.”
Однозначно можно за бесконечный ресурс 🙂
И за бесконечное количество времени. Хотя обычно стоит вопрос: исправить ВСЕ ошибки к определенному времени 🙂
Безусловно, за бесконечное время с бесконечным количеством бесконечно умных разработчиков, я смогу написать бесконечно качественную и сложную программу 🙂
Похоже, мантра «починить ВСЕ баги» очень распространена 🙂
Главное не допустить, чтобы это стало поводом невыплаты за уже проделанную работу. Именно так получилось у меня.
Кстати, не могли бы вы подробно описать как строите взаимоотношения с заказчиками/подрядчиками ? Т.е. устные договоренности, бумажные договора, риски, действия при срабатывании рисков и т.д. Думаю, будет интересно многим.
В следующей статье опишу.
А у меня чуть ли не каждый новый контрагент смотря на сроки — говорит: «О, они либеральные: сделаем быстрее». А потом эти либеральные сроки срывает.
Таких надо убивать пока они маленькие.
Собирайте статистику, показывайте ее им после каждой фразы про либеральность.
Кстати, agile вам поможет.
ну где-то так и происходит 😉 [тем более первый проект с кем-то новым это как правило небольшой pilot]. Но тот факт что если люди раньше с нами не работали, то скорее всего они срывают сроки — пугает 🙂 [непонятно — а как же все остальные]
Вообще IT в этом смысле странная отрасль. Думаю не так много других областей где-то 70-80% проектов выбиваются из сроков и стоимости и поэтому все это считают фактически нормой.
Потому что IT — это в основном custom-решенеия. Зачастую уникальные для своей предметной области.
При серийном производстве, например автомобилей, достаточно легко рассчитать стоимость производства, сроки, качество и т.д. Т.к. тех процесс меняется достаточно медленно, и наработки по ведению бизнеса в этой сфере накапливались десятилетиями.
Еще один нюанс: получаемый IT продукт очень мягкий и податливый. Вставить очередную фичу обычно не составляет огромного труда. Если продолжать аналогию с автомобилестроением, поставить еше 2 колеса машине вряд ли получится.
Отсюда желания улучшить, «углУбить», расширить (зачастую во вред) приносят отставания от графиков, выход за пределы бюджета…
Само-собой.
Но, все же IT не единственная такая область
а) Custom
б) Податливая
Хотя впрочем те же грабли актуальны для писателей и музыкантов у которых по этим параметрам схожие области.
Кстати, еще одна важная особенность, которая играет тут роль — достаточно высокие ожидания к качеству продукта.
Мне нравится, когда заказчик настолько расфокусирован на проекте, что иногда спрашивает в духе:
— «Так на чем мы остановились?», в то время работа идет над проблемой, которую он лоббировал (доказывал необходимость) 2 недели
— «… . Ой забыл, как же он называется», интересно, когда забывают, как называется сам проект.
Любопытно еще, когда люди повторяют один и тот же вопрос с завидной периодичностью, например на скрам митингах. Хотя, лучше пусть спрашивают, чем молча не знают о чем речь.
Ну, тут я не согласен.
Заказчик таки может быть расфокусирован. У него проектов может быть много и проект может быть абсолютно неприоритетный. Если он платит деньги и признает, что простои и т.п. возникает по его вине — то, вполне нормальная ситуация.
Да, тут адекватные варианты тоже есть. Это не клиника.
Истинна в деталях.
как хорошо, господа, что погоны Senior Developer’a раздают всем, кому ни попадя — эти люди делают наши услуги очень дорогими, работу с нами — подарком, а завания… да кому интересны звания? хоть горшком назовите, вопрос только в обязанностях, отвественности и компенсации
Плюсую 🙂
Особенно радуют послужные списки в виде:
— Junior — 6 месяцев
— Senior — 2 года
Меньше 4к$ на руки компенсации не хотят (Россия, default city). Естественно, бонусы типа кормежки, отпуска, проездов и т.п. обязаны присутствовать отдельно от суммы.
Но при этом просишь сделать бранч в сорс-контроллере — «я не умею» )
Кстати, постепенно это ситуация измениться. Когда рынок насыщается (перенасыщается), то все становится на свои места.
Хорошо бы.
Однако пока что я вижу, что рынок борется с перенасыщением так: разработку просто переносят в Украину и Белоруссию — объективно там девелоперы не такие охреневшие по части запросов, и соотношение «польза/(понты*компенсация)» выше
Даже это должно слегка помочь.
В конце концов любая индустрия устаканивается.
Плюсую тоже что раздают всем. Минусую по тому поводу, что их наличие так уж хорошо.
Есть два минуса
а) В толпе липовых Senior Developer’ов очень тяжело выделиться в момент когда работа еще не начала. Так, что вместо нас хороших, могут выбрать их тупых.
б) Товарищи с липовыми погонами прививают заказчикам и менеджерам плохие привычки.
А вот из моей практики:
Заказчик пожаловался на сбой в работе софта, но отказался описывать что произошло т.к. «процесс который мы запускали — intellectual property, и по сему разглашению не подлежит». И естественно никаких логов не предоставил.
Здорово 🙂
Может немного не в тему, но мозг был съеден качественно и без остатка.
Заказчик жалуется на низкую производительность приложения, привлекает своих сисадминов которые быстро находят корень зла: «В Task Manager обнаружен System Idle Process который использует 99% ресурсов CPU»
Чертов System Idle, снести его нафиг… 😉
«в проекте можно исправить ВСЕ ошибки» — это реально возможно, но стоит бешеных денег и многих лет. Можно доказать, что в проекте нет ошибок. Есть пример — но единственный 🙂
Попрошу примеры в студию
Программа Hello World?
Один мой знакомый как-то выкинул то, что писалось другим программистом в течении полугода и за полдня заменил это известной библиотекой. При этом пропали все (ну может не все, но много) глюки, а скорость работы возросла в разы… Однако человек regexp-ы изобрести пытался.
О да ;)) Regexp’ы с нуля написать — это некисло.
Кстати, в одном из проектов обнаружил 4 самописанных метода логирования (написанные разными людьми). Каждому в лом было видно разбираться в глюках чужого.
Потом, вся эта радость была заменена готовой библиотекой и я сказал, что если обнаружу, что кто-то снова пишет логирование, то буду бить лично и больно.
Взяли мы как-то на работу тестировщика для автоматизации тестирования. Не студент, 2 года опыт работы программистом.
Первым его заданием была миграция автоматизированных тестов со старого (даже древнего) тестового пакета на новый. В старом пакете для скриптов использовался специфический язык, что-то типа языка описания состояний. Скрипт на этом языке состоит из блоков вот такой структуры:
…
т.е. если все условия выполняются то перейти в другое состояние.
Скрипты надо было перевести на Python.
Новый специалист с энтузиазмом взялся за работу, трудился не покладая рук и обещая «завтра» показать кое-что работающее. Ни с кем не консультировался, от помощи отказывался. Через две недели начальство начало нервничать из-за отсутствия результатов и потребовало отчет о проделанной работе.
Оказалось что товарисч взял старые скрипты и ПОПЫТАЛСЯ ЗАПУСТИТЬ ИХ В PYTHON. 2 недели было потрачено на эксперименты типа «а что будет если в конце каждой строки поставить точку с запятой».
На вопрос «как ты дошел до такой жизни» было отвечено что кто-то на офисе обмолвился что задача простая и старый язык похож на Python.
Самое смешное что человек прошел испытательный срок и продолжил радовать нас новыми свежими идеями.
Класс :))) Просто отличная история.
Инженер-оптик получил задание:
Спроектировать систему освещения в которойугол падения света будет равен углу отражения.
забавно 😉
Архисложная задача 😀
Идиотов везде хватает, не только в земле русской. Буквально вчера смотрел Топ Гир года эдак 2005-06. Кларксон гонял на обновленном (тогда в 2006) Doge Viper. Для тех кто в танке — вайпер двухместный. Так вот, и в инструкции, и в предупреждающих наклейках на козырьках, и на наклейках в дверных проемах было написано «Дети будут в большей безопасности если посадить их на заднее сиденье». Кларксон завис на пару секунд, я даже подумал, что он выдаст классическое Задорновское «ну тупые!», но кларксон политкорректно скривил рожу, и задал риторический вопрос «Интересно, а где они найдут заднее сиденье в двухместной машине?» Конечно, можно оправдать это тем, что наклейки на весь модельный ряд лепятся одинаковые, и инструкции тоже однотипные. Но весь дебилизм ситуации в том, что вайпер — машина совсем недешевая и очень сильно отличается от остального модельного ряда Dodge. Так что дизайнерам и проектировщикам можно было бы позаботиться о соответствии инструкций и наклеек реальному автомобилю.
А вообще среди развитых стран, по степени концентрации дебилов США занимает ведущее место. А вообще, почитайте блоги русских эмигрантов в США. Разрыв мозга гарантирован!
Да я и есть русский эммигрант в США, так что далеко ходить не надо, чтобы читать их блоги.
С тем, что концентрация дебилов в США больше — готов спорить.
Да, забавно что наклейка одна на все машины. Но врядли это кто-то делает специально. Так, что типичный недосмотр, а не дебилизм.
Да и вообще, дебилизмом выглядят те вещи, которые мы плохо понимает. Условно говоря, когда в США на консерве пишут с одной стороны — открывать тут, а с другой стороны — открывать другую сторону. Звучит как дебилизм — и так догадаться можно. Но опять же, эту фразу не просто так выдумали.
Какой-нибудь чудак открыл не с той стороны и открывая порезал себе … ну скажем палец. А потом судил компанию, о том, что она блин не предупреждает о том с какой стороны надо открывать. Компания даже суд выиграла, но почесала голову и решила, что им проще добавить еще одну надпись, чем судиться.
Насчет концентрации не буду спорить, вам с места событий виднее 🙂 Свое мнение я высказал исходя из тех же эмигрантских блогов. Может я не то читал? Но штатовскую народную забаву судиться со всеми подряд считаю натуральным дебилизмом.
А вот универсальные наклейки на додж зря прилепили. Я подам на них в суд, потому что я хотел обезопасить своих детей, искал там задние сиденья пол дня, опоздал на работу и получил убытки! 😀
На самом деле возможность судиться — это очень даже хорошо. Условно говоря, купил кто-то ну скажем стиралку, подключил ее к электричеству, а она сгорела.
Оказывается, что она должна подключаться не к сети 120В, а не 220В, а в документации это не написано.
И скажем гарантия не покрывает включение в сеть с повышенным напряжение. В странах где судиться сложно — останется только горевать или идти бить морду продовцам (которые тоже особо не виноваты).
А так — можно подать в суд и получить хотя бы денег за стиралку.
Компенсации за опоздание на работу и моральныц ущерб, насколько я знаю сложнее получить.
Да и в целом судятся не все со всеми, а скажем 1% населения. Этого достаточно, чтобы фирмы думали о потенциальных последствия.
Согласен. Если имеет место откровенное кидалово — только суд! Ну или комитет по защите прав потребителей (не знаю, есть в штатах подобная организация?).
Но вспоминается один из классических образчиков маразма — надпись на макдональдсовских стаканах для кофе «Осторожно! Горячее!» А все из за одной тетки, которая якобы не знала, что кофе горячий. У этой тетки с головой все в порядке?
Естественно перегибы всегда есть. Это обратная сторона медали. Но суммарно, как по мне, эффект положительный.
А вот из области 1С и другой околонаучной фантастики. Есть в России одна контора, называется Рарус. Заниматься поддержкой их конфигураций — одно удовольствие! (здесь должен быть бьющийся головой об стену смайлик)(а здесь блюющий смайлик) Перед открытием конфигуратора стоит хряпнуть стакан водяры, чтоб не так страшно было. О том, что этот код — сплошные макароны я промолчу. Создается впечатление, что код писали слепоглухонемые индусы. 1сники знают, что у всех объектов и форм есть стандартные обработчики типа ПриОткрыти, ПередЗаписью и т.д. В рарусе это интерпретировали по своему, и теперь не зависимо от того используется обработчик или нет, в КАЖДОМ вставлена заглушка:
Процедура ПриОткрытии()
// Зарезервировано
КонецПроцедуры