bash.im ithappens.me zadolba.li

Мысли о вечном

12280

Не бить, не трогать, не вскрывать

Когда-то просто для того, чтобы иметь возможность более-менее нормально поработать на настоящем компьютере, мне пришлось вникать в такие вещи, как адресация памяти в IBM PC, векторы прерываний, изучать алгоритмы работы программ защиты информации, разбираться в работе программ уплотнения жёсткого диска, копаться в ассемблере, отладчиках, помнить наизусть некоторые команды процессора в шестнадцатеричном виде и так далее. А что делать — как ещё заставить кучу металлолома, находящуюся в публичном доступе, более-менее нормально работать и сохранять мою информацию? Заставил в итоге: обычный компьютер из компьютерного класса при загрузке с особой дискеты открывал в себе новые возможности…

Сейчас большинство айтишников понятия не имеют обо всех этих нюансах: зачем, когда вон для того есть готовая программа, а для этого проще докупить железа? Им это просто не нужно. Зато есть те, кому нужно: вот они могут разобрать и переделать прошивку от редкой модели роутера или установить линукс на AVI-плеер из журнала «Вог».

Но мы посмотрим ещё дальше вглубь веков.

Когда-то существовала очень востребованная профессия радиомастера: мужик с паяльником и чемоданчиком запчастей приходил к вам домой, чтобы перепаять отставшую ламповую панель или сгоревший резистор в вашем телевизоре. Лампы сильно грели, панельки отпаивались, резисторы горели, новый телевизор стоил дорого — приходилось чинить. Некоторые даже осваивали это дело самостоятельно: паяли, крутили индуктивности и подстраивали настроечные резисторы.

Сейчас неисправный телевизор в лучшем случае отвезут в сервис-центр, а скорее просто выкинут и заменят на новую модель. Почти никто не умеет больше чинить телевизоры, туда и с паяльником-то особо не полезешь. Но и сейчас есть спецы, способные поменять впаянный процессор, «раскрыть» скрытые возможности, а то и вовсе доработать заводскую схему.

Что в этих историях общего? То, что раньше знали и умели сравнительно многие, теперь становится уделом избранных.

С одной стороны, можно говорить о бестолковых нынешних спецах, которые неспособны обходиться без специальных программ или «умных» инструментов — не умеют пользоваться консолью, например. Это действительно так.

С другой стороны, сама техника не только усложнилась, но и стала надёжнее: если по ламповому телевизору приходилось часто «стучать» (совершенно логичный метод борьбы с глюками — от сотрясения лампы смещались и лучше «контачили» с панельками и платой), то современные телевизоры или роутеры могут годами работать вообще без видимых сбоев, пока у них конденсаторы от старости не вспухнут. И невмешательство в их работу посторонних людей — это скорее плюс, чем минус: меньше вероятность напортить шаловливыми ручонками.

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

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

12274

Она ж железная

Люди зарабатывают деньги, помогая людям решать их проблемы. Кажется, что всё хорошо: профессионалы делают свою работу, не отвлекаясь на техническую сторону вопроса, IT-спецы получают хорошие деньги и искренние благодарности от пользователей и начальства. Становится страшно, когда в процесс помощи и работы помимо людей вплетаются машины, которых быть не должно. Страшно представить, в каком мире мне предстоит провести старость. Страшно за детей и внуков.


Ни электронщика, ни программиста из меня не получилось, хотя пытался учиться, было дело. Получился универсальный связист. И я боюсь большинства своих коллег, особенно молодых.

Начинал с монтажника меди и оптики, позже паял оптоволокно. Учился на ходу, без курсов и сертификатов — надо было работу делать, а не уроки просиживать. С инструментом не везло: старая эрикссоновская FSU’шка с пробегом далеко за 200 тысяч сварок капризничала чаще, чем работала, заставляла подбирать параметры сварок в зависимости от погоды за бортом и фаз луны и в 90% случаев отказывалась работать в автоматическом режиме — только в ручном, по картинке с подслеповатой камеры, под контролем рефлектометра (веры в показания по качеству сварки тоже не было).

Потом, устроившись в другую компанию на должность инженера по обслуживанию ВОЛС, я получил в своё распоряжение новейший на тот момент аппарат Fujikura 80s. Шикарнейшая машина, умеющая автоматически делать почти всё, разве что зачищать и скалывать надо вручную, и то на полуавтоматическом устройстве. Меня поразили новоиспечённые коллеги: в случае отказа в автоматическом режиме они перезачищали волокна до тех пор, пока либо сварка не проходила, либо от волокна не оставался огрызок, не дотягивающийся до аппарата. Сварка в сложных погодных условиях превращалась для них в сизифов труд с нулевым результатом. О том, что даже в стеснённом автоматическом режиме можно менять допуски по углам и сколам, выставлять разные значения мощности и длительности дуги, о том, что контроль сварки ведётся по рефлектометрии линии, а не по данным аппарата, они не подозревали. Я не понял этого. У одного из спайщиков было удостоверение об окончании курсов; по его словам, там этому не учили. В дальнейшей работе, поговорив со спайщиками и инженерами многих подрядчиков, я понял, что в 80% случаев люди не задумываются, что они делают и как идёт процесс; они сверяют цветовую схему, зачищают волокно, скалывают и помещают в аппарат. Тот секунд десять пищит, а потом показывает, хорошо получилось или нет. Не удалось сварить с энной попытки, волокно кончилось? Так и запишем в тетрадочку. Всё. На месте руководства организации я бы боялся результатов их работы в сложных условиях.

В первой конторе после спайщика перешёл в инженеры активного оборудования. Дали полуживой комп с CentOS без иксов и предложили осваиваться, так как у местного местечкового провайдера лицензия на винду и приличные машины была только для бухгалтеров. Весь технический персонал сидел на никсах и чём придётся в плане железа. Сервера — на FreeBSD и некоем подобии серверного железа категории «лоу-кост». За полгода работы меня перестали пугать и стали родными консоли никсов и приложений, CLI железа, конфиги серверов, свитчей и роутеров. О том, что у многих из них есть веб-интерфейс, я узнал гораздо позже, уже в другом месте работы. Консоль стала для меня родным местом, как и для оборудования, базовые алгоритмы которого, наверное, старше меня самого.

Сейчас работаю у крупного провайдера сотовой и фиксированной связи и удивляюсь напарнику. Парень младше меня на пять лет, с высшим образованием, с опытом работы админом в федеральной розничной сети. Он работает с оборудованием исключительно через веб-интерфейс либо посредством SNMP-запросов из веб-мониторинга. Чтобы узнать свой IP-адрес, залезает в состояние сетевого подключения. Traceroute и выданные для подсети IP-адреса он узнаёт при помощи отдельных программ. SSH, Telnet, TFTP, Xshell — для него ругательства либо незнакомые понятия. Чтобы добавить пользователю в офисе голосовой VLAN для подключения телефона, он берёт карту VLAN, ищет по ней на свитче свободный сконфигурированный порт и кроссирует туда пользователя. Залогиниться на свитч по SSH и сделать int fa3x switchport voice vlan 10 — страшно, а лезть в веб-морду — долго. «Я сбегаю, серверная через два кабинета». В другом городе он при мне просил сбегать местного IT-спеца. Он не понимает, как работают консольные команды, как работают скрипты и сценарии управления оборудованием, не понимает логики железа, но делает свою работу. Он может вписать в окошечко адрес хоста, которому нужен доступ в другую подсеть, нажать кнопочку — и вуаля, пинг пошёл. Он может вписать в автоконфигуратор данные из таблички с планируемым к монтажу оборудованием и получить готовый конфиг для нового свитча. Я не могу поручиться за правильность его действий в чрезвычайных условиях работы, при авариях. Честно говоря, не понимаю, почему у него есть доступ к боевому магистральному оборудованию.


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

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

Инициатива «корпорации добра» — автономные автомобили. У кого-то есть уверенность, что лет через двадцать можно будет просто отключить автопилот (или он откажет по ряду причин) и доверить водителю, который последний раз крутил руль и жал на педали на экзамене, управление автомобилем? А автобусом, в котором будут ехать на отдых ваши внуки?

Большинство гражданских самолётов сейчас в ручном режиме только взлетают и садятся. Boeing и EADS уже давно обещают автоматизировать и эти этапы полёта. Хотите ли вы находиться в самолёте, который с остатками топлива в баках садится при низкой облачности на запасной аэродром (на основном, скажем, метель), и ведёт его пилот, который последние пять лет вживую управлял только симулятором, чтобы не потерять квалификацию?

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

Когда за нас начнут работать машины, исчезнет этот стимул. Постепенно, год за годом будет всё больше доверия машинам.

— Чего ей сделается, она ж железная!

— Там всё продублировано, а местами и больше — стопроцентная надёжность!

— В крайнем случае — я же здесь. Всё разрулю.

Уверены?

Я не боюсь восстания машин, того, что они захватят мир. Я боюсь деградации людей. До уровня нынешних машин.

12258

Для них, а не за них

Говорите, компьютер — это инструмент, и каждый, кто им пользуется, должен уметь с ним обращаться хотя бы на уровне пользователя? Должен, да… Должен, да не обязан.

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

Ах, вы заниматься столь низкоквалифицированной работой ввиду вашего высокого профессионализма не обязаны? Так ведь кликанье на единственную кнопку «ОК» на месседжбоксе с надписью «Нажми на кнопку „ОК“» тоже не является профильным предметом для всех этих бухгалтеров, секретарей и прочих менеджеров и тоже не требует высшего образования.


Когда я только начинал карьеру эникейщика, моим первым местом работы было бухгалтерское бюро, оказывающее услуги мелким предприятиям, которым было невыгодно держать в штате бухгалтера. Один ловкий деятель скупил где-то списанные компьютеры и нанял на работу бухгалтеров, которые охотно нанимались. Они имели свои ЧП, могли позволить себе купить компьютеры, но ничего, кроме своей бухгалтерской программы (нет, не жёлтой: место действия — не Россия) не понимали. Вызывать «мальчика» тоже был не выход: часто, долго, дорого. А тут за фиксированную месячную плату предлагают не только компьютер с обслуживанием, но и рабочее место, где домашние не мешают работе.

Скоро начались разногласия между подчинёнными и шефом по поводу того, где заканчивается обслуживание и начинается работа за компьютером. Принёс клиент бухгалтеру дискету? Нет, не слышали. Вставьте и откройте. Там экселевский файл с данными? Распечатайте, чтоб мне было удобно в бухгалтерскую программу вбивать. Ах, программа сама умеет экселевские файлы импортировать? Ну, импортируйте, если вам так проще…

Договор был составлен грамотно, и споры закончились тем, что бухгалтерам был предложен выбор: либо компьютерные курсы, либо «мальчик». И то и другое — за свой счёт. Бухгалтеры учиться не хотели, и на предприятии открылась вакансия, которую занял я.

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

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

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

Но я тогда не знал предыстории своей должности. Я не знал денежных отношений между шефом, бухгалтерами и мной. Я не разбирался ни в экономике, ни в менеджменте. И когда я выходил из кабинета шефа, в ушах ещё звучали его фразы, уничтожившие мой план:

— Это они тебе платят за то, что ты делаешь. Так почему они должны делать то, за что сами же платят тебе?

— Если бы они хотели учиться, они бы платили за обучение. А они платят за возможность не учиться.

— Цена твоей работы не настолько высока, чтоб стать для дюжины бухгалтеров мотивацией изучать компьютер.

— Да, они никудышные компьютерщики, но они хорошие бухгалтеры. И платить тебе зарплату намного дешевле, чем заменить бухгалтеров на компьютерщиков и потом ещё сделать из компьютерщиков хороших бухгалтеров.

— Хочешь учить — учись на преподавателя, хочешь мотивировать — учись на психолога. А хочешь ничего не делать и деньги получать — иди собирай робота, который за тебя работать будет. А если твою работу будут делать другие люди, то они и твою зарплату получать будут.

— Хорошо, пробуй. Но если у тебя это получится, то они заплатят тебе за обучение, а я выражу тебе благодарность и уволю за ненадобностью. Всё. Иди работай.


Теперь я руковожу IT-отделом более крупной компании, и тот урок сыграл далеко не последнюю роль в получении этой должности. Именно моя неконфликтность в обращении с пользователями позволила мне обойти более опытного коллегу.

Я собеседую каждого эникейщика, кто поступает к нам на работу, и каждый узнаёт, что компьютерная безграмотность пользователя — единственная кормушка эникейщика, ликвидация её последствий (а не причин) — прямая его обязанность, а способность это переносить — главный показатель профпригодности. Если кто это не усваивает — прощаемся после испытательного срока.

А остальные образовали дружную команду, которая так же дружно относится и к пользователям. Мы их не поучаем — мы им помогаем. Кто-то умеет отличить левую кнопку мыши от правой? Великолепно. А для остальных у нас есть «обычная» и «другая». Кто-то сам вставил выпавший сетевой кабель? Отлично. А другим поможем мы. Кто-то сам может создать ярлык на рабочем столе? Превосходно. А другие нам позвонят, и мы удалённо сделаем это для них. «Для них», заметьте, а не «за них».

Никто нас не грузит левой работой, никто не пытается нас застукать за бездействием, никто не обзывает нас вспомогательными работниками, не приносящими денег, ведь наша своевременная помощь позволяет избегать простоев.

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


А разница между эникейщиком и уборщицей состоит в том, что эникейщик умеет возвращать на место те кабели, которые уборщица умеет шваброй выдёргивать. Так что не надо учить её вставлять их на место — как бы самим потом за швабру браться не пришлось.

12255

Найдётся не то

Я ждала этого давно и готовилась, но сегодня это случилось, и я деморализована.

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

У меня всегда есть резервный канал и десяток копий в разных местах. У меня две неубиваемые звонилки, каждая из которых только и умеет, что звонить и принимать SMS. Моя машина, хоть и импортная, по функциональности не превосходит ведро с болтами — механика без бортового компьютера и любых примочек типа ABS.

Ещё задолго до того, как Гугл поймали на подтасовке выдачи, я перестала им пользоваться. Не устраивала меня его работа.

Довольно долго Яндекс вполне удовлетворял моим нуждам. Не без бубна, но от него удавалось получить искомое. Когда Яндекс заявил, что теперь его поисковые алгоритмы стали ещё совершеннее, я поняла, что конец близко, ибо уже в тот момент видела тупик, в который ведёт этот путь, но продолжала им пользоваться, потому что всё ещё удавалось получить искомое.

И вот это случилось. Сегодня на вполне невинный запрос с целью уточнить второстепенную деталь я получила тридцать страниц бессмысленного для меня бреда, и никакими средствами мне не удалось найти искомое. Чёртов поисковик уверен, что лучше меня знает, что мне нужно. Завтра я пойду на работу и на известной мне полке, в известной книге найду эту цитату и эту цифру.

Восстание машин ждать не надо. Они уже захватили власть, только мы ещё пока это не осознали.

12236

Я не твой слуга, я твой работник

Постоянно читаю истории, где коллеги возмущаются тем, что их эксплуатируют все, кому не лень, и эксплуататоры воспринимают это как должное. И закрадывается у меня подозрение, что большинство из тех, кто пишет подобные истории, не служили в армии. А если даже и служили, но всё равно попадают в такие ситуации — значит, ничего не поняли в той школе жизни, которой является армия. Если коротко рассказать о том, что происходит в армии, то всё можно свести к одному общему принципу:

Если ты позволяешь себя эксплуатировать и над собой издеваться, то тебя будут эксплуатировать и издеваться над тобой.

Я это прекрасно осознал в армии и понял, как нужно себя вести, чтоб ни у кого даже мыслей не возникало, что меня можно использовать. Когда вернулся — обнаружил, что весь мир работает по тому же принципу.

Ключевой момент в этом принципе — «если ты сам позволяешь». Перестаньте позволять себя эксплуатировать. Ведь сначала вас «пробуют на зуб» и просят малое. Вы помогаете. Дальше они просят больше. Опять успех. И вот уже они начинают воспринимать вас практически личным слугой, который обязан делать всякое. А потом вы понимаете, что теперь только заявление на стол и валить из этой фирмы.

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

— Мне сейчас некогда.

— Я не хочу это делать, я подобным не занимаюсь.

— Это не мои обязанности, и всё тут.

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

12153

Cui bono

На IT happens опять разгораются войны. Товарищ пишет: «Технические новинки внедряются непонятно для чего, создавая только неудобства». Ведь какой ужас: одноразовая карточка метро с чипом себестоимостью в шесть рублей по всем параметрам хуже жетона!

Послушай, товарищ! А для чего, как ты полагаешь, появляются технические новинки? Неужели ты всерьёз думаешь, что инженеры, изобретатели и программисты со всего мира всерьёз озабочены тем, чтобы сделать твою жизнь удобнее?

Я вынужден тебя расстроить.

Они не мастера фиалковой дефекации. Они такие же люди, как и мы с тобой. Единственная задача большинства разработчиков — максимизация прибыли.

Карточка — ужасный инструмент. Чистое зло. Жетон — лучик света, мира, надежды, добра и жвачки. Но карточка выгоднее. И поэтому используется.

Предваряя спор, предлагаю всегда задаваться вопросом: выгоднее кому? Экологии планеты? Нет. Государству? Нет. Метрополитену как предприятию? Тоже навряд ли. Карточка выгоднее тому, кто уполномочен принимать решения о карточке. Например, потому, что он сократит стоимость обслуживания терминалов с монетоприёмниками и будет получать откаты от конторы, закатывающей эти чипы в эти бумажки.

Так и живём.

12101

Витаем в облаках

В последнее время много работаю с молодёжью. Пришёл к интересным выводам.

Люди советского типа («старая школа») — это традиционная операционная система. Всё программное обеспечение и необходимые данные хранятся непосредственно на устройстве. Требуется большой объём дискового пространства, зато система готова к работе в любое время; каждое приложение может быть запущено в любой момент. Процессы могут требовать доступа в интернет для получения дополнительных сведений, однако отсутствие сети не критично — система всё равно будет работать и выполнять требуемые операции.

Люди современного типа («новое поколение») — это облачная операционка типа ChromeOS. На самом устройстве хранится лишь минимальный набор необходимых данных, обеспечивающих базовую системную функциональность. Основная часть информации и приложений размещены в интернете. При наличии хорошего и устойчивого соединения с сетью система способна выполнять тот же набор задач, что и традиционная ОС, не требуя при этом объёмных физических дисков или больших вычислительных мощностей. Однако в случае, если соединение с сетью невозможно или необходимые данные/приложения в сети отсутствуют, система становится почти беспомощной и оказывается способна обеспечить лишь базовые возможности типа простейших арифметических вычислений.

Что из этого лучше, сказать трудно. С одной стороны, использовать облачные ОС призывал ещё мистер Шерлок Холмс; с другой стороны, простейшая глушилка мобильной связи или выезд за пределы мобильного покрытия тут же выводят «нового человека» из строя. Быть может, я консерватор, но я всё-таки за традиционные системы, которые менее уязвимы к условиям окружающей среды.

12086

Как за неделю написать трёхмесячный проект

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

А теперь — собственно, рецепт.


Стадия планирования. Планировщики строят какие-то планы. Менеджмент эти планы утверждает, планы передаются отделу разработки.

Стадия разработки. Все работают согласно приготовленным планам.

Стадия тестирования и стабилизации. QA проверяют функциональность, согласно утверждённым планам, находят какие-то баги, разработчики их чинят.

Две недели до выхода Release Candidate. Приходит крутой спец из отдела продаж и говорит: «А я тут был на презентации конкурента, у них такая классная фича есть! Давайте, чтобы быть конкурентоспособными, мы забацаем вот эдакую фичу? Продаваться наш продукт будет в …дцать раз лучше! А без неё этот наш продукт вообще никто не купит».

«У-у-у… Без продаж нам будет туго. А давайте!» — соглашается менеджмент.

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

QA, скрупулёзно следуя планам, добираются до только что вписанного куска. Описанная в нём функциональность, естественно, не работает, потому что её никто не писал. Открывается баг на тему «Мегаважная фича не работает!!111»; ему присваивается экстравысшая категория важности.

Только тут разработчики офигевают от бага, смотрят в планы (которые не должны были меняться ни при каких условиях), офигевают ещё раз и интересуются: «Это ваще что было?! А нас кто-нибудь спрашивал?»

Всё это сопровождается беготнёй, мейлами через три континента, криками, воплями и инфарктами. Менеджмент убеждает разработчиков поднапрячься. Кого-нибудь делают крайним и спихивают весь проект на этого бедолагу. Он выполняет задачу, держась исключительно на кофе и на мотивирующих пинках начальства. Ну, как «выполняет»… За неделю трёхмесячный проект не написать. Поэтому пишется только good path, и новая фича будет работать, если пользователь ни в коем случае не попытается отойти от описанной в документах процедуры. Всё остальное (а 80% работы обычно занимает обработка граничных и нестандартных значений) закрывается заглушками — иногда прочными, иногда не очень. Поведение программы в том случае, если пользователь всё-таки отошёл от good path, вообще никем не гарантируется. Если повезёт, заглушка сработает, и пользователь ничего не заметит. Если не повезёт… Значит, не повезет. Программист сдаёт проект, получает премию и уходит спать.

QA берутся за тестирование, находят целую прорву багов, но все они уже не критические, и с ними можно жить. Как вариант — чтобы QA не портили статистику сонмами найденных багов, всю группу, занимающуюся тестированием этого куска программы, в полном составе отправляют в отпуск.

Менеджмент радостно объявляет о включении новой функциональности в продукт. Продавцы готовят новые буклеты. Все счастливы.

Клиенты получают новую версию программного продукта. Поскольку пользователь — это такое периферийное устройство хаотичного ввода, а инструкции написаны для дураков, от good path отходят почти все. В результате — разрыв шаблонов, потому что программа, в общем-то, очень неплохая, внезапно начинает вести себя как студенческая самоделка, стоит только воспользоваться одной из новых функций и проявить чуть-чуть изобретательности. Хорошо, если дело ограничивается разрывом шаблонов. Иногда разрыв шаблонов переходит в стадию разрывов контрактов.

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

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


Резюме № 1: инициативных дураков из отдела продаж надо убивать-убивать-убивать Ржавой Секирой Ужоса, желательно сразу после их трудоустройства.

Резюме № 2: с момента начала разработки у планировщиков надо забрать физическую возможность менять планы этой версии.

Резюме № 3: менеджмент, который этого не понимает, ведёт компанию к краху.

12057

Пока корона не рассосётся

Все, наверное, слышали золотое правило: работает — не трогай! Это действительно хорошее правило, проверенное жизнью.

Но есть и другое, так сказать, серебряное: если сломалось, ты полез в чужой код и не понял, зачем оно там так было сделано — подумай ещё раз. А потом ещё раз. И ещё — пока не поймёшь, зачем и почему. И только потом, может быть, переделывай.

Потому что лишняя проверка переменной может оказаться вовсе не лишней, когда придётся переписать алгоритм вышестоящей функции.

Потому что внешняя библиотека на другой версии ОС может быть реализована совсем иначе, но для программы это должно остаться незамеченным.

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

Ты увидел, но не понял зачем? Подумай ещё раз, пока корона на голове не рассосётся: возможно, это не мусор на полу, а кто-то более опытный просто заранее подстелил соломки?