Когда-нибудь (а теория вероятности говорит, что вероятность практически любого события больше нуля) в вашу веб-студию может обратиться заказчик с кругленькой сумой денег и готовым техническим заданием. Тому, как вести себя, если такое вдруг с вами произошло, посвящены нижеследующие рекомендации.
В первую очередь возрадуйтесь блеснувшим вдали золотым горам и ни в коем случае не читайте техническое задание. Не читайте его, когда заказчик предлагает вам составить график работ. Просто прикиньте, сколько времени потребуется на мало-мальскую переделку чего-нибудь уже готового, и поклянитесь, что сделаете всё-всё в полтора раза быстрее, чем прогнозировал заказчик.
Непременно исключите все этапы согласования с заказчиком промежуточных результатов работ и потенциально спорных моментов. Укажите, что сделаете за один день любой программный модуль, даже если имеете об этом лишь общие понятия в стиле «где-то слышал». Поверьте, заказчик будет счастлив, что вы так быстры (а вдруг и вправду у вас Супермен в команде), и подписание контракта вам обеспечено.
Когда подписанный контракт у вас в руках и кругленькая сумма приятно замаячила на горизонте, ни в коем случае не читайте техническое задание. Выведите из пятилетнего анабиотического сна того, кого называете дизайнером, и посадите его за работу. Все же знают, что за последние пять лет в дизайне сайтов ничего не изменилось.
Заказчик показал вам нечто древнее и страшное. Говорит, что сайт, заказанный у вас, предназначен для того, чтобы этот антиквариат заменить. Прекрасно — вы же можете оттуда скопировать все пункты меню. Покажите этот тлен веков своему дизайнеру, но никогда, ни при каких условиях не показывайте ему техническое задание! В конце концов, у вас же есть свой, проверенный годами шаблон, который вы уже продали целых пятнадцать раз. Перекрасьте его, поменяйте пункты меню. Будьте уверены: заказчик точно будет счастлив!
Упс. Заказчик не счастлив. Не верьте и не сдавайтесь! Нарисуйте ещё один скин своего любимого шаблона, но не читайте техническое задание.
Две трети времени, предусмотренного подписанным вами графиком, уже прошло, а ваш дизайн так и не принят? Заказчик говорит, что закажет дизайн у других и пришлёт вам? Ну и фиг с ним, раз такой дурак. Вам ведь не впервой «натягивать» чужие макеты. Забейте.
Заказчик говорит, что в техническом задании есть работа с админкой, с личным кабинетом, которую можно делать до утверждения дизайна? Не верьте ему. Будьте тверды. Скажите, что не будете ничего делать, пока не будет утверждённого дизайна.
Наконец вам прислали дизайн. Ваши верстальщики в обмороке. Вы такое никогда не делали. Не вздумайте с перепугу прочитать техническое задание! Возьмитесь за фотошоп. Нафотошопьте гибрид хотелок заказчика и своего любимого шаблона. Это будут ваши эскизы. Они не нравятся заказчику, потому что вы половину его хотелок выбросили, а остальное выглядит уродливо? Ну и ладно. В конце концов, вам тоже не нравится то, что заказчик прислал.
Когда пройдёт ещё две трети первоначального срока выполнения работ, и вы, и заказчик будете уже достаточно замучены, чтобы наконец-то согласовать дизайн. Результат будет противен обоим, но цель достигнута: вы переходите на следующий уровень.
Пообещайте заказчику, что всё остальное доделаете за неделю. Убедитесь, что, обещая, вы не прочли технического задания.
Возьмите какой-нибудь из своих старых проектов и натяните на него дизайн. Утверждайте, что вы совсем чуть-чуть не успели. Увереннее доказывайте усомнившемуся заказчику, что это именно то, чего он хотел.
Если заказчик грозится расторгнуть договор и просит предоставить документацию, отвечайте как можно лаконичнее: «сделано», «сделано частично», «не сделано». Пусть вас не смущает, что сделанным вы объявили то, что является связующим звеном между двумя не сделанными частями. Только не читайте техническое задание.
Когда время очередных доделок истекло, устройте торжественный показ. Максимум уверенности: «Тут играем, тут не играем, здесь жирное пятно — рыбу заворачивали».
Если по непонятной причине ваш доклад не произвёл должного впечатления, а заказчик постоянно упоминает какое-то техническое задание, прочтите наконец злосчастный документ.
Поставил главбуху новый комп. Пришла жаловаться: плохой комп, дисковода для дискет нет. Я, разумеется, поинтересовался, зачем ей, собственно, вообще нужны дискеты. Ответ поверг меня в ужас. Оказывается, между кабинетами главбуха и бухгалтерии обмен данными все эти годы происходил с помощью дискет.
Схема такая. На сервере документ, надо его изменить и передать другому бухгалтеру. Документ скачивается на рабочий стол, редактируется, записывается на дискету, относится главбуху, главбух тоже редактирует документ — и… записывает документ обратно на сервер.
Есть такая штука, зовут её профессиональная деформация. Так или иначе, она касается большинства авторов местных холиваров. Вот, в частности, хороший пример её — обсуждение одноразовых девайсов маркетинговой модели «купил — сломалось — выкинул».
Большая часть пользователей действительно не знает и не хочет знать, что такое джейлбрейк или чем отличается прошивка на Nexus Wi-Fi от прошивки на Nexus LTE. И не хочет знать, не надо оно им.
Я айтишник. Даже точнее: я программист. Я могу заставить выполнять всё необходимое всякие стрёмные железки. Моя VPS по характеристикам уступает домашнему десктопу в несколько раз. Тем не менее она — сервер, а на домашнем компе я слушаю музыку и играю в игры. Я могу почитать спецификации и обновляю железо только тогда, когда современные образцы действительно превосходят мою текущую конфигурацию на ощутимую величину. Это раз в пять лет. У меня телефон Motorola v3i, купленный в 2007 году. Сам не ожидал от гламурной женской модели такой выживаемости. Последний раз в прошивку я лазил в 2008-м. И если бы не аккумулятор, который, как и любая химия, имеет банальный срок годности, я бы не менял её ещё лет десять. И мне его хватает для необходимого. Думаю, многие из вас могут сказать что-то подобное. И да, если мне понадобится домашний сервер — у меня валяется системник с 32-битным Athlon X2.
Но это всё лирика. А теперь, читатель, представь, что ты, например, автомеханик. Да, ты знаешь множество автомобильных деталей если не по названию, то по крайней мере по предназначению и характеристикам. Ты можешь заглянуть под капот чему-то только сошедшему с конвейера и на глаз сказать, что сломается первым. Да, ты можешь почитать спецификацию, включить мозг (оказывается, неайтишники тоже умеют им пользоваться) и придумать, как это усилить и подтюнить. И теперь тебе, автомеханику, нужен телефон. Ты будешь забивать себе голову версиями прошивок или железа? Ты будешь читать тонны шлака на тему «Android vs iOS»? Будешь красноглазить ночами, дабы познать прелести BusyBox? Нет. Тебе этого достаточно на работе (и в хобби, если таковое есть). Тебе нужен телефон а-ля стиральная машинка: фиг его знает как, но оно работает, как получить из этого профит — можно почитать в мануале (был такой великий товарищ по имени Стив, он это понял и сделал свои девайсы соответствующими).
Если железяка сломается, поймает вирус или просто банально начнёт тормозить — ты не будешь её перешивать, искать, что же там такое запущенное. Не потому, что ты ленивый и тебе лень включать мозг — просто ты не айтишник (представьте себе). Ты отдашь её каким-нибудь ремонтникам (о которых тут тоже достаточно написано), даже гарантийным. Они зарабатывают на этом деньги, и им действительно (особенно последним) во многих случаях тупо быстрее и дешевле отдать железку под замену. А если менять — то давайте что-нибудь более современное, более крутое. И так далее.
А ты, автомеханик, и так уже наслушался рекламы о новых суперкрутых девайсах в чуть другом корпусе и с парой дополнительных букв в названии. Зачем тебе детали? Ведь ты точно так же будешь рекомендовать клиентам заменить зашумевшую на скорости 120 км/ч деталь, хотя для себя мог бы заставить машину пройти с ней ещё 100 тысяч километров.
Утро после тим-ивента. В офис пришли не все, в кубиках тихо…
Бот, раздающий задания из очереди, благополучно сдох после вчерашнего апдейта кода — да, мы маньяки, один энтузиаст после пива с устрицами поправил генерацию порядковых номеров инженеров, а второй проинициализировал бота в не подходящий этой скотине (боту же, боту!) момент.
Вот и моё чудо номер один — «outage», «Wi-Fi», «DHCP». Читаю внимательнее. Ой, port-channel.
Итак, Некто увидел, что DHCP snooping настроен только на port-channel, а на физических линках этой команды нет. Заметим, все работает, клиенты подключены. Сделал Некто из этого интересный вывод: надо включить тот самый снупинг и на физических линках (зачем, зачем?! Логический интерфейс всё равно уже делает это прямо на этом же канале).
Включил. На одном, видимо, дальше не успел, потому что интерфейс из канала выпал, port-channel пошёл пересобираться — и увидел, что конфигурация физических линков, его составляющих, разная, а значит, собрать их не получится. И поднялось у нас два параллельных канала: один — port-channel, один — физический линк. И тут — ай-ай-ай — оказывается, Некто на устройство попадал по SSH по тому самому port-channel’у! А у нас два параллельных линка, трафик то туда, то сюда, циклы, дропы.
Понял Некто, что это сбоит high availability (ну да, что ж ещё-то) и пустил active unit по питанию. Тут всё немножко подёргалось, подцепило старый конфиг — и восстановилось, конечно.
Что же наш Некто сделал? Правильно, бегом на SSH обратно — надо же вбить DHCP snooping trust на физических интерфейсах!
В этот раз, скажу честно, успел.
И открыл Некто кейс у вендора со строгим вопросом: объяснить недопустимое поведение строптивой железки. Что же такое-то, в самом деле: не читая документации, подрубил под собой сук, да не до конца, а так, на полфюрера — а оно тут само вдруг!
Можно было бы ещё писать, да тут чудо номер два подвалило… Эх, где ж мой кофе утренний?
В столовке фирмы над резюме кандидата смеются два сотрудника.
— Во, смотри, пишет: «Хочу работать в более профессиональной команде». Гы-ы… А мы-то тут при чём? И чем ему вообще можем в таком случае помочь?
Один из сотрудников — начальник группы разработки юниксовых, мобильных и встраиваемых решений в одном флаконе, другой — начальник группы облачных технологий. Прибыль фирмы — десятки лямов зелени. Треть мирового рынка в своей области. У одного стаж больше десяти лет, у другого — под тридцать. Хорошая вещь — самоирония…
Приехал к клиенту в Кингстон помогать им разбираться с нашим продуктом. Одна из частей продукта — IDE на базе Eclipse. Все собрались в офисе, попили кофе, всё обсудили, сажусь работать. Открываю файл, вношу изменения, записываю, запускаю — а на изменения ноль реакции. Смотрю на файл в vi — а изменений там нет. Смотрю на файл в IDE — а изменения куда-то исчезли совсем. Ну, думаю, старею. Повторяю всю процедуру. С тем же результатом.
Тут уже руки начинают трястись. «Изверги! — ору на весь офис. — Вы сколько травы мне в кофе подсыпали?»
А изверги смеются. Показывают страничку с баг-репортом. Подтверждённым моим же коллегой из моей же конторы…
Автор истории «Из ружья в ногу», вероятно, не задумывался, откуда берутся пользователи, а оно ведь самоочевидно: из одноразовых девайсов.
Это ведь куда как проще: купил себе игрушку (телефон, планшет, ноутбук), погонял год-другой, а там она уже устарела, нужно новую покупать. И продиктовано это не тем, что железо стало куда как круче, а тем, что на старое железо отказывается ставиться новая прошивка или компания вовсе прекратила поддержку старой модели (двухлетней свежести). Откуда такое отношение к технике, ведь она ещё может и должна работать и работать? Да из непрерывного желания заработать!
Моему ноутбуку через месяц исполняется семь лет, при покупке он был по характеристикам чуть выше среднего. Если теперь поискать ноутбук с аналогичными параметрами, то окажется, что он по характеристикам… чуть выше среднего! Ну, разве что вместо BIOS — UEFI, да дизайн изменяется с каждой добавленной буквой/цифрой в названии модели. В чём же соль, где тот бешеный прирост к мощности процессоров и объёму оперативки, которые мы наблюдали 15 лет назад? Да в самом что ни на есть простом: кремний имеет свой предел, и на сегодняшний день он почти достигнут. Но заводы продолжают работать, на складах простаивает неликвид, а производителям таки хочется кушать свой хлебушек с маслицем и икорочкой. Отсюда и проистекает решение: нужно поколение пользователей, которые не знают, что такое рут, джейлбрейк и иже с ними, которым нужно «включил — и работает по умолчанию», а не «включил — настроил — работает как надо», которым проще купить новую железку, чем найти прошивку под имеющуюся. Ну, а маркетологи, естественно, это дело в меру сил стараются раскручивать.
Мне грустно за этим наблюдать. Но, скорей всего, большинство внуков так и сделают: поймал вирус — сменил девайс. Однако теплится во мне надежда, что найдутся те…
Был очень серьёзный бизнес, и был у этого бизнеса очень серьёзный проект. Под проект выделили бюджет, согласовали требования, назначили ответственных и приступили к его осуществлению.
Через полгода с момента старта проекта уже значительно затянули сроки внедрения, а руководители всевозможных рангов оживлённо переписывались в стиле: «Какого @#$? Разобраться и обеспечить!» Наконец проблемой заинтересовался и самый большой босс, который вызвал на ковёр представителей бизнеса и представителей исполнителя: заместителя от бизнеса, заместителя от ИТ, руководителя проектов, руководителя подпроектов, руководителя проекта от заказчика, начальника отдела разработки, двух методологов, архитектора системы и трёх менеджеров проекта. Начались взаимные упрёки и обвинения, каждый из участников был изобретателен и имел в запасе набор железобетонных отмазок.
Самый большой босс обвёл усталым взглядом всю честную компанию и задал вопрос:
— Сколько программистов сейчас участвует в проекте?
— Трое.
— Вы хотите сказать, что нас здесь двенадцать начальников на трёх программистов? Вопросов больше нет, все свободны.
На следующий день «свободными» в полном смысле слова стали восемь человек из двенадцати присутствующих, а на их место дополнительно наняли пятерых разработчиков. Надо ли говорить, что через месяц отставание было ликвидировано, а ещё через месяц проект стартовал?
Когда-то давно была у меня машинка с PII-233 и i740 на борту. И как-то видяха сглючила с довольно непонятным симптомом: она отказывалась работать в любом режиме, кроме 640×480, при включённом режиме энергосбережения монитора, галочка которого была закопана глубоко в свойствах экрана. Это было незаметно, когда система работала, и весьма неприятно, когда систему надо было переставлять.
Поскольку правка этой галочки в безопасном режиме не помогала, приходилось по морганию диода HDD понимать, когда после основной установки появлялся рабочий стол (драйвера на звук автоматом не ставились), и дальше с помощью кнопок стрелок, табуляции, пробела, ввода и прочих, сверяясь со структурой меню, записанной с живой системы, производить эти манипуляции и перезагружаться через «Пуск».
Потом этот компьютер был продан, и к нему шла дополнительная инструкция по установке в стиле списка тайных ударов Mortal Kombat.
Работаю в ремонтной мастерской, стажу набил около шести лет. Мелочёвка вида установить ОС, прошить планшет или перекинуть модуль на «яблоке» проблем не вызывает, зато есть большая проблема с халтурой. На работе за неделю заменил 15 модулей на 4S? Будь уверен: 16-й по счету, который я возьму для своего ремонта, окажется бракованным. Или ещё лучше: я, как последний эпилептик, оторву шлейф. Руки из пятой точки? Ну так примерно 1500 ремонтов этими самыми руками сделал. И так постоянно. Проверка харда с последующей установкой ОС. Перезагрузка — и-и-и… ничего. Как ничего? Всё ж скопировалось. Флешка 100% рабочая, хард проверен, всё ОК. Пара попыток — и каждый раз пусто. Мистика, одним словом.
Живу я с девушкой, а халтурю дома обычно в её присутствии. И тут начинается магия. Моё солнце держит за меня пальчики крестиками, и всё начинает получаться. Злополучная винда ставится без косяков, как по накатанной, вместе с драйверами и софтом. У айфона получается поймать положение сдохшего шлейфа, в котором изображение не рассыпается на кубики. Внезапно заводится Tab 10, который вывалился в режим прошивки, и без программатора и спецшнурка его уже обратно не вывести. Короче, всё получается с первого раза. Я даже уверен, что с такой помощью я и Цефион бы с первой попытки прошил. И так я привык к этому, что даже на работе после пересборки очередного телефона держу пальцы крестиком, а в особо сложных случаях звоню своей ненаглядной. И ведь помогает!