Friday, March 31, 2006
RSS для этого сайта
не знаю, почему его нет в темплейте, постараюсь добавить.
Пятница N4 - Как правильно устраиваться на работу
Как правильно устраиваться на работу
Конечно, все программисты имеют разную квалификацию, интересы и способность к общению, и требования к работе у них разные, но есть и общие моменты, которые полезно знать и применять как при первом, так и при десятом устройстве на работу.
Виды найма
Хорошие и плохие работодатели – кто они?
Боссы
Monday, March 27, 2006
Стихи в понедельник
Звонит телефон,
Мешает босс смотреть сны о Фудзияме,
Подушка прижала трубку.
Занял коллега место зачетное
Мордой к двери, экран босс видит,
анекдотов.нет.
Пива кружончик,
Чипсов пачка, Разговор о бабах,
Как далек вечер.
Круглый наушник
Ухо прижал, не слышно юзеров
Скоро обед.
Пища богов
Доширак, кофе и бублик.
Глупо надеяться.
Морду б разбить
Коллеге быстрому, места не знающему,
Босс рано с обеда вернулся.
Рулит Раммштайн,
Ухо натертое болит,
Но есть джоб.ру
Есть наслаждение
Равное футболу и оргазму,
Конец понедельника.
Friday, March 24, 2006
Пятница №3 - Правда о методологиях
Правда о методологиях
Итак, файтинг, факинг, зимующие медведи и королевская семья – 4 основных вида взаимоотношений между программистами и пользователями. Люди, которые читали Эдда Салливана [1] , Карла Вигерса [2] и Йордона ДеМарко [3], в этот момент, очевидно, возразят, что в мире существует еще один, и самый правильный вид общения – его полное отсутствие. Это бывает при такой организации разработки, которая описывается в великолепных романах вышеупомянутых господ: когда аналитики интервьюируют пользователей, пишут полноценные use cases, а на их основе полные и подробные спецификации, которые затем получают кодеры, и после нескольких человеко-часов на выходе получается продукт, который тестируется компанией богоподобных тестеров и, после обмена несколькими сообщениями в баг-трекере о порядке расположения кнопок Help и Quit на тулбаре, сдается пользователям в полной готовности.
О, нет! Я не в коем случае не возьмусь обвинять многоуважаемых господ в фантазерстве, порожденном неумеренным просмотром сериала «СтарТрек». Однако настало время рассказать о том, о чем умалчивают подобные романы о методологиях разработки ПО.
А молчат они о кадрах. Для успешного выполнения ИТ-проекта по «правильной» схеме требуется совершенно особая команда. О которой сейчас мы и поговорим.
Аналитики
Вы, наверное, думаете, что аналитики это изящные люди в пиджаках от Armani или на худой конец, от Hugo Boss? С глазами куда умней, чем у немецкой овчарки, но чуть глупей, чем у сенбернара, хитрым (почти ленинским) прищуром, обязательным Parker’ом за одним ухом и блютуф-хэндс-фри в другом? С ноутбуком в одной руке и пачкой презентаций в другой? Ха! И еще раз ха!
Вы читали что-нибудь из одиозных романов Виктора Суворова? Его жуткие страшилки про спецназ ГРУ? Про то, как напильником пилят зубы, чтобы быстро узнать страшные тайны у захваченного врага, и про другие милые выражения лица страшной тетки-войны? Так вот, не читайте – потому что с действительно надежные способы выпытать сведения знают только аналитики успешных ИТ-проектов. 5 лет службы в спецназе – минимальное требование к кандидатам в аналитики. К другим требованиям относятся представительный внешний вид (молодой Шварценнегер плачет в углу спортзала) и умение гнуть правой рукой трехдюймовые подковы (просто не представляете, как много решает первое крепкое рукопожатие с интервьюируемым пользователем!).
Аналитик должен не просто внушать уважение. Интервью с аналитиком должно стать важнейшим событие в жизни пользователя, не менее важным, чем женитьба, развод и рождение детей. Некоторые сравнивают интервью с исповедью, но такое сравнение очевидно некорректно, так как грехи аналитик никому не отпускает, а скорее наоборот…
Когда пользователь приходит к аналитику (кстати, следует развеять странную и ложную посылку о том, что аналитики должны посещать пользователей для интервью – совсем наоборот), он должен быть подготовлен к интервью.
Три надменные секретарши, полный обыск с раздеванием и пальпацией внутренних органов, а также двое охранников с автоматами наперевес должны внушить пользователю мысль о том, что нужно соблюдать субординацию. Полиграф, соединенный через усилитель со слегка модифицированным вариантом железной девы или испанского сапога, должен ликвидировать надежду кое-что приукрасить и преувеличить важность своего участка работы.
Впрочем, некоторые специалисты утверждают, что на этапе анализа можно сэкономить, если сразу увольнять всех пользователей и воспитывать новых под нужное программное обеспечение (ходят даже слухи о системе спецшкол-интернатов и даже роддомов для этих целей[1]). Но лично я считаю это попыткой уйти от решения проблемы, потому что рано или поздно уволенные пользователи вновь окажутся на другом автоматизируемом предприятии, и что тогда? Нет, если делать, то сразу хорошо!
Кодеры
Наивно было бы думать, что привычные всем «кодеры», полгода как выпустившиеся из вуза и прочитавшие аж 3 книги, могут справиться с задачами по кодированию идеального проекта.
Известно, что кодеры для настоящих ИТ-проектов подбираются только из прямых потомков Тьюринга и Винера. Кровь, это, понимаете, не водица.… Ходили слухи, что потомки Эйнштейна тоже хотели попасть в элитные кодеры, но не прошли отбор – срезались то ли на визуальном анализе гигабайтного дампа памяти, то ли на виртуальных деструкторах в MFC…
Настоящий элитный кодер не просто знает какие-то языки программирования (вообще, не менее 26 языков, это не считая диалекты Си для всех версий Unix, естественно), библиотеки функций и т.д. Это вообще не обсуждается, точно также как наличие крыльев для птицы. Настоящий кодер обладает чувством кода.
Чувство кода – вещь очевидно иррациональная. Достаточно ему взглянуть на титульный лист 300-страничной спецификации, как кодер сразу может определить, где закралась логическая ошибка. Он сам не может объяснить, как он это делает, но результат налицо. Про такие мелочи, что любой набранный десятипальцевым слепым методом кусок кода не содержит ошибок и всегда компилируется, не стоит и говорить.
Но вот еще две вещи про них рассказывают, в которые я верить напрочь – слишком уж фантастично они звучат. Пока оставим про них, а то совсем подумаете, что я совсем заврался.
Тестеры
Протестировать полностью какое-либо реальное бизнес-приложения невозможно. Кто не согласен – пусть попробует. Однако такие программы все же существуют, причем в количестве, не позволяющем говорить о том, что «исключения только подтверждают правила». Как же они тестировались? Бла-бла про верификацию и валидацию [Быстрое тестирование] давайте оставим.
Естественно, и тут не обошлось без искусственного отбора и скрещивания – есть особая порода тестеров.
На самом деле настоящие тестеры это глубоко несчастные люди. Почему? Вспомните забавного персонажа, созданного Пьером Ришаром в «Высоком блондине в черном ботинке» и других великолепных фильмах. Бедняга провоцировал поломки всего чего только можно, попадал в самые ужасные ситуации... Так вот, прототипом этого героя был один из настоящих тестеров.
На самом деле это ужасная судьба. Несмотря на то, что живут эти тестеры в специально оборудованных апартаментах рядом с рабочим местом – стены обиты ватой, порогов нет, розеток нет, спят на теплом мягком нескользком полу, кушают экологически чистые продукты (вилки пластмассовые); несмотря на то, что за каждым тестером беспрерывно следуют 2 охранника и парамедик, травматичность и смертность у них очень высокая. Госкомстат с ума сходит от статистики, а прокуратура уже не знает, куда дела девать по тяжким телесным повреждениям и несчастным случаям среди тестеров.
Конечно, это тоже сплошная генетика – из простого человека тестер не получится, а настоящий тестер среди обычных людей долго не проживет. Пока тестер не обзаведется потомством (о! как это удается ему сделать, еще та история, о которой отдельно можно долго рассказывать) , его не выпускают из спец-кампуса.
Сейчас популярен сервис Google Earth, так что вы сами можете легко убедиться – найдите на карте кампус Микрософт и сделайте скриншот. В Photoshop наложите фильтр слоев, и чуть южнее основного здания можно различить заглубленное строение (бывшее бомбоубежище авиабазы Редмонд, кстати). Это и есть спецкампус для тестеров.
По слухам, в 1995 году какой-то идиот из службы обеспечения Microsoft поставил тестерам стандартный автомат для продажи баночной колы, чипсов и т.д. Конечно, потом уволили и его, и начальника охраны спецкампуса и половину отдела кадров заодно, но было уже поздно: у троих тестеров свернуло челюсть выскочившей банкой, пятеро подавились ключами от баночной колы, а уж про удары током вообще молчу. Короче, почти весь отдел вышел из строя на полгода… Вот поэтому в Windows Chicago и было столько багов. А то все – Билл то, Билл се, зажрался, баги специально выпускает…
А он, между прочим, очень переживал, и до сих пор свой бронированный лимузин отдает тестерам без звука по первому требованию, если того надо отвести в церковь там, или в синагогу – на свадьбу, конечно, по другим случаям их не выпускают.
Кроме того, за тестерами теперь охотится НАСА, особенно после катастроф с шаттлами. До них только недавно дошло, почему у СССР было на порядок меньше катастроф – просто тестера перед полетом всегда привозили, начинали сажать в СОЮЗ-ТМ, а тот туда пальцем тыкнет, рукой махнет – тут же отвалилась плитка, закоротил штепсель, и поехал на доработку модуль. Космонавты, перекрестясь, тестеру пузырь поставят и опять спать…
В общем, настоящие тестеры люди не простые, зато эффективность дают очень высокую.
Project managers
Ну, у нас остались project manager (прожект манагеры). Хех, если вы когда-нибудь ругали своего менеджера проекта за въедливость, надоедливость, мысленно и вербально кляли его за пристрастие к графикам и отчетам, немедленно встаньте и подойдите к нему, встаньте на колени и биясь головой об пол с частотой 2 удара в секунду, извинитесь (можно расплакаться). Потому что если вы бы работали с настоящим менеджером проекта, то ваш собственный прожект манагер показался бы чем-то вроде гибрида матери Терезы и 2-х дневного ласкового котенка.
Как известно, прожект манагеры в обычных проектах бывают двух типов – родственники босса и вышедшие из аналитиков. Про родственников босса мы помолчим – нехорошо убогих ругать, у них же наследственность такая. А вот из аналитиков действительно могут получиться менеджеры настоящих проектов. Но далеко не все настоящие аналитики становятся настоящими прожект манагерами.
В нашей с вами обычной жизни, дорогие коллеги-программисты, в промежутках между чтением auto.ru и anekdot.ru, происходит, на самом деле, не так уже много будоражащих кровь событий. Ну, совещание, ну скиллов в WoW на халяву прихватили или в контре срубили хитрого менеджера по продажам из 2-го отдела… Скучно же.
От такой жизни каждый студент-программист через год работы начинает мнить себя аналитиком (раз я пользователям подсказываю все время, значит, я их работу лучше знаю, и потому сам ТЗ будут ставить), а через 2 года метит в прожект манагеры и процент от прибыли предприятия требует.
В настоящих проектах все не так. Там действительно каждый аналитик потенциально может стать прожект манагером.
О требованиях к аналитикам выше уже написано. А чтобы стать ПМ, аналитику достаточно сделать две вещи – подать заявление и написать завещание.
Потому что из всех кандидатов выбирают только одного. Обычно из 2-3, иногда из большего числа. Самого известного прожект манагера, выжившего среди 14 претендентов, ныне работающего на Google, зовут Дун Канмак (Doon Canmack). Да, было время, тогда стартапов и web 2.0 не было, теперь 3 кандидата уже максимум...
Как-то один режиссер втерся в доверие к старому аналитику, который чуть было не попал в тот отборочный матч, но ему повезло - он попал в автокатастрофу; и отсюда появилось то самое глупое кино про бессмертных горцев, отрубание голов и т.д.
Но вы не подумайте, что аналитики в борьбе за кресло project manager тупо мочат друг друга из шотганов и ракетниц. Не за тем их воспитывали, в конце концов.
Все совершенно цивилизованно: претенденты запускаются в психиатрическую клинику строгого режима с заданием разработать проект (у всех разные проекты – обычно что-то уровня графического редактора или драйвера видеокарты). Претенденты должны набрать программистов и тестеров из доступного материала, поставить им задачу, закодить и разработать проект, потом оттестировать – и все это за 2 недели, не больше.
Конечно, вы можете посмеяться и сказать, что «психи» не шарят в компах, программах и вообще это невозможно, но в таких клиниках обычно содержатся претенденты-неудачники, сошедшие с дистанции на предыдущих отборочных соревнованиях, так что задача приобретает особое значение.
Мрачновато получается. Но что делать, такова правда жизни. К тому же забыл упомянуть про мессингеров. Нет, это не клоны ICQ и т.д., это потомки Вольфа Мессинга, которые за счет врожденных гипнотических способностей управляют программистами и другим персоналом. Получается очень эффективно, однако абсолютная власть развращает абсолютно, поэтому за ними надо присматривать. Несмотря на высокую отдачу, работодатели (особенно венчурные инвесторы) мессингеров не любят – того глядишь, могут и тебя самого загипнотизировать.
Помнится, долго шептались в кулуарах о том диком случае, когда мессингер загипнотизировал трех венчурных инвесторов своего проекта, впряг с помощью подтяжек в тележку молочника и ездил по кампусу с криками «Но, залетные!», а те игриво ржали, закусив галстуки от Prada и бодро помахивая ляжками на особо крутых поворотах. Его удалось утихомирить только с помощью роты специального слепоглухонемого спецназа. Они нашли его на ощупь в холодильнике кампуса и заткнули все нащупанные отверстия скотчем, плюс поставили клизму из водки, так как обычные транквилизаторы месингеров не берут. Этого мессингера пришлось выслать на необитаемый остров вместе с 3 программистами, которые отказались покинуть Хозяина, как они его называли, а венчурные инвесторы как-то разом отказались от ношения подтяжек.
Что делать?
Если вы, уважаемые читатели-программисты, имеете хоть немного гордости и собственного достоинства, то, прочитав о настоящих людях, которые делают настоящие программные проекты, должны задуматься, что делать со своей собственной жизнью.
Это совершенно нормальная реакция – спросить себя «а я чем хуже», «есть еще порох в..», «а мы что - лыком шиты» (только без «тварь дрожащая или право имею», пожалуйста).
Такая рефлексия и самобичевание полезны в умеренных дозах (только не машите руками сильно, скинете бутылку, а пиво с клавиатуры плохо отмывается).
Собственно, дальнейшие главы этого произведения будут посвящены вопросу «что делать, а конкретнее – как стать настоящим программистом.
Кое-что покажется вам циничным, что-то невероятным, а что-то невероятно циничным, но я гарантирую, что к концу чтения этой книги вы будете на много шагов ближе к тому, чтобы быть настоящим программистом.
Boot!
Ну, раз нету откликов, публикацию отрывков придется прекратить...
Thursday, March 23, 2006
Осенний синдром
Н-да, недели бегут слишком быстро, а результатов и побед как-то маловато. Похоже на барахтанье в вязком веществе - вроде и усилия прилагаешь, и стараешься, а толку мало.
Я долго подозревал что эта проблема моя собственная (от неумеренной лени), однако почитав того же Джоэля Спольски, а потом и Стива Павлину, понял, что многие страдают подобным "размягчением" мозгов. Кто-то шутит про весеннюю игру гормонов, кто-то клянет жаркое лето - дескать "мозги плавятся", кто-то ругает унылую осень, ну и все дружно клянут зиму, когда из-за подготовки к праздникам, самих праздников, долгого похмелья и ожидания весны делать ничего не хочется.
Из всех времен года я лучше всего работаю осенью, как ни странно, а вот в остальные времена года как-то оно не так идет. Нет, если напрячься, то можно вспомнить достижения, которые пришлись на весну-лето-зиму, но как-то все без драйва внутреннего… Да и истоки почти всегда лежали в осенних зачинах.
С другой стороны, на весну и зиму, скажем, приходятся значительные одномоментные решения и достижения – смена работы, операции на глазах, значительные покупки, какие-то действия, совершенные «богатырским замахом».
Понятно, что подлаживаться под ритм и работать 3 месяца в году как-то не особо полезно для результатов. Что же делать, как бороться с синдромами времен года?
Если у кого есть какие рецепты, пишите :-)
Friday, March 17, 2006
Пятница N2 - Классификация пользователей-2
Классификация пользователей по приносимой пользе
Конечно, речь идет о пользе, которую пользователи приносят программистам, а не предприятию – об этой пользе пусть думают СЕО, отделы HR и остальные бесполезные подразделения, насыщенные выпускниками MBA.
Некоторые злоупотребляющие Quake и Unreal программисты считают, что пользователи как класс абсолютно бесполезны и следует задуматься о полной их ликвидации в будущем, однако это очевидный перегиб. Перефразируя известного поэта-аналитика: «Пользователи всякие нужны, пользователи всякие важны».
Так какие же виды пользы приносят пользователи?
Самым первым, что приходит на ум, являются деньги (и никак не выпивка, как могли подумать некоторые). Деньги, во всяком случае, до тех пор, пока мы живем в обществе, где помимо программистов есть и другие люди, очень важны.
Вторым по важности после денег является психологическая тренировка. Смысл тренировки становится ясен, как только мы вспомним, что все пользователи одинаковы и в любой конторе их пропорции, привычки и организация повторяются. То есть, изучив пользователей в одной конторе, можно смело переходить на работу в любой другой, и все вам будет знакомо и привычно.
Именно поэтому в начале пути профессионального программиста следует пройти обкатку в какой-нибудь маловажной, но относительно большой конторе, где наличествуют все виды пользователей (идеально подойдет заводик средней руки или провинциальное НИИ). Тренировку обязательно следует спланировать – помните, что это вы нашли себе спарринг-партнеров, и не позволяйте им навязывать свою игру. В план тренировки как обязательный минимум следует включить: споры с начальством, третирование пользователей (хорошо бы довести главбуха до слез намеками на корреляцию параметров ее фигуры и навыков форматирования в Excel), проталкивание абсолютно ненужного проекта и просмотр порнофильмов в рабочее время с полным звуком (для этого рекомендуется продукция Private).
Стоит отметить, что швыряние мониторов в стену и демонстративное хлопанье клавиатурой по голове начальника следует отложить до последнего дня работы (после расчета!).
Очень рекомендуется выбросить трудовую книжку после тренировочной работы и переехать в другой город (а вы думали, почему столько программистов в Москву едет?). Самое главное – не увлекаться и случайно не попасть в тайное общество коллег-мазохистов. То и другое может привести к тому, что вы навеки останетесь на этой работе, проводя все свое время, выдумывая обидные прозвища своим коллегам и издеваясь над пользователями, а к концу жизни поразите общество кое-чем покруче маркиза де Сада[*].
Помимо денег и тренировки, пользователи очень сильно могут повлиять на вашу карьеру. Вы не представляете себе, сколько программистов превратились в толстых дядек на черных S600, просто удачно поставив пару несложных игрушек очень большому боссу (из тех, которые ездят на Метро-2, или в крайнем случае на Pullmanах).
Вторым случаем сделать карьеру является инсайд. Инсайд – это использование закрытой корпоративной информации в личных целях. Вообще, большинство крупных компаний и особенно банков до сих пор не разорились по двум причинам – во-первых, работающие в них программисты достаточно порядочные люди, чтобы сразу выкачивать все активы и лишать совет директоров их теплых кресел, и, во-вторых, они слишком ленивы, чтобы часто менять место работы.
Конечно, с инсайдом надо быть очень осторожным, и никогда не лишним будет проверить, не навредишь ли ты утечкой списка активов своим коллегам, которые вроде второй месяц заняты размещением 4-х кнопок на форме 1280 на 1024 согласно требованиям фэн-шуй, а на самом деле пытаются скупить контрольный пакет акций Дойче Банка… Кроме того, некоторые выбившиеся в большие боссы программисты не страдают полной амнезией и ставят везде видеокамеры и жучки, чтобы зафиксировать вашу преступную деятельность. В этом случае лучше все злодеяния выполнять с помощью Terminal Server из интернет-кафе.
В общем и целом, надо помнить, что, устроившись на работу в правильную компанию, и подружившись на почве игры в Lines с хорошими небедными людьми, вы можете не просто решить денежные проблемы, а надежно обеспечить своих потомков до правнуков включительно. С другой стороны, надо всегда помнить, что другие программисты тоже могли додуматься до точно таких же идей и пройти этот путь раньше!
И последнюю пользу, которую приносят пользователи – это очищают наш программисткой мир от неудачных экземпляров, проводя санацию. К сожалению, некоторые безответственные производители софта сделали разработку программного обеспечения настолько простой, что даже дурак может им воспользоваться. Согласно модифицированному закону Архимеда, дураки вытесняются на ту работу, которая соответствует объему их мозгов, поэтому в «программисты» немедленно записались толпы недоучек, порочащих наше доброе имя. Санация обычно осуществляется в одном или двух отделах предприятия, где собраны специально подготовленные пользователи с садистскими наклонностями. Они быстро доведут любого недоучившегося программиста до мысли, что пора ему поменять работу на более подходящую: дворника, ассенизатора или менеджера по персоналу, в порядке убывания требований к уму и образованию[†].
Пользователи+Программисты = ?
В данной книге мы уже неоднократно упоминали об отношениях программистов и пользователей, но вот точного определения, как назвать эти отношения, еще не давали.
Очевидно, что при такой разнообразной номенклатуре пользователей (а позже мы увидим, что и разновидностей программистов тоже не меньше), дать однозначное определение отношениям с пользователями невозможно.
Поэтому мы рассмотрим наиболее часто встречающиеся виды отношений с пользователями, а уважаемый читатель пусть сам подберет наилучшее сочетание для своего случая.
Во-первых, сначала самый популярный способ общения.… Наверное, все видели фильм «Mortal Combat» («Смертельная битва»). Собственно его трудно назвать фильмом – ни сюжета, ни смысла в нем нет, но зато там есть масса конкретного, продвинутого и весьма интенсивного «мочилова».
Я подозреваю, что на самом деле этот фильм есть аллегория на темы автоматизации деятельности предприятия, он иллюстрирует все характерные его этапы: а) набор персонала с улицы по принципу кровного родства («аааа! они убили моего брата! Возьмите меня с собой!»), б) постановка технического задания Большим Боссом («Вы должны спасти мир!.. Да, втроем! И до завтра, конечно!»), в) сам процесс разработки ПО для автоматизации (очень интенсивная, красиво оформленная, но совершенно бессмысленная деятельность). Особенно хороша заключительная сцена, где из облаков появляется грандиозная рожа кого-то плохого (большого босса главного заказчика) и заявляет, что все было сделано неправильно и придется переделать весь проект.
Так вот, самым популярным способом общения пользователей с программистами является «файтинг» - проще говоря, «мочилово» в стиле «Мортал Комбат».
Файтинг, несомненно, является наилучшим способом общения программистов с пользователями (для программистов). Во-первых, в процессе разработки тренируются различные навыки вроде умения втирать очки ногами в прыжке сразу двум начальникам отделов заказчика, во-вторых, это дает возможность собирать команду классных профессионалов и играть в Unreal (Quake, CS, etc) в промежутках между milestones проекта, и, в-третьих, за 3-4 итерации это приводит (иногда) к разработке хорошего и работающего решения (извините, что забегаем вперед – фантастика на другом этаже).
Однако надо отметить, что файтинг возможен только при наличии сильной поддержки на стороне программистов – большого босса уровнем не меньше зам.директора, который сдерживает попытки боссов других направлений конкретно задавить этих «странных людей» из ИТ-отдела, непрерывно жующих пиццу, пьющих пиво, игнорирующих график работы и (о, ужас!) корпоративный дресс-код.
К сожалению, достаточно часто файтинг переходит в другую категорию отношений, которую условно можно назвать «факинг». Не будем здесь приводить фильмы, которые ассоциируется с этим процессом, можно только отметить, что детям до 16 смотреть такие фильмы не разрешается.… А в особо тяжелых случаях и до 21 года.
Факинг характеризуется очень плохим отношениям к программистам. Любимый вопрос руководства - «А сколько денег заработал ваш отдел?». Неоплачиваемые переработки, низкие зарплаты, «Премию? За что?», «Отпуск?! Устал на кнопки нажимать?», а самая частая оценка работы программистов это: «А они что-то делают?».
Подобное отношение, конечно же, чаще всего присутствует в глубокой провинции, где число работодателей в ИТ-сфере сильно ограничено. К слову сказать, в подобной ситуации оказываются не только программисты, но и другие работники творческого технического труда.
Неизвестно, почему некоторые работодатели практикуют такой подход к работникам. Относительно недавно став собственниками, новые капиталисты забыли об условиях труда не только то, что они изучали на занятиях по научному коммунизму в вечерней школе, но похоже, даже думают, что попали в прошлое – что крепостное право все еще утверждено законом, и уехать в другое место без их позволения невозможно. К счастью, это не так, и билеты продаются вполне свободно, и чем скорее подобные предприятия получат новых, более грамотных собственников, тем лучше.
Ну да ладно, давайте закончим грустные лирические отступления. Ведь есть, есть такие конторы, где отношения между программистами и пользователями полны нежности, любви и взаимной пользы. Нет, это не автоматизация борделя, как было, подумали многие из читателей (кстати, Вован, привет!).
Прежде всего, к таким отношениям относится так называемая «зимовка медведей». Нет, не в смысле того, что надо сосать лапу и ютиться в тесном офисе. Наоборот, ситуация «зимовки» возникает, когда контора отъелась, отогрелась, сделала себе уютную берлогу, надежно укрытую от суровых бизнес-ветров, и хорошо притершиеся к себе работники заползли в ее теплое нутро и нежно обнявшись, проводят все свое время. Максимум запросов, который поступает от пользователей – это сменить им мышку или записать новую игрушку для своего ребенка. Максимум, чего хотят программисты – это нанять в качестве секретаря на ресепшен блондинку посимпатичнее с формами попышнее, чтобы было кому нежно зарыться в пушистые волосы, нежно накрывая ручку, показывая, как в Excel суммируются ячейки….
Конечно, подобная сладостная перспектива открывается в основном в «толстых» государственных конторах с названием вроде «ГазНефтьАлмазСнабКонтроль». Также такая малина может произрастать в удаленных филиалах иностранных компаний, но только до тех пор, пока работодатели не догадаются рассчитывать ставки зарплаты, исходя не из своих средних ставок по миру, а по местному уровню. Мне тут подсказывают, что такая малина может быстро накрываться в результате неожиданного визита регионального директора-ненатурала, который зайдет в своей инспекции дальше диванчика на ресепшене – но не хотелось бы здесь писать про всякие нетрадицинные дела.
Особым подвидом «зимовки медведей» является «королевская семья Великобритании», где работают исключительно «все свои, родные». Но в любой королевской семье может появится своя леди D (до сих пор не знаю, кто это, но подозреваю что это разработчица языка post-C? ), или принцесса Стефани (эту я помню – такая симпатичная тетка из «Короткого замыкания»… Что, никто не помнит?) и «семья» понесет тяжелые потери, за которые придется рассчитываться программистам.… Только не спрашивайте почему – просто такова историческая необходимость, что первыми лицо подставляют программисты.
[*] кстати, мало кто знает, что де Сад был одним из первых французских программистов. К сожалению, тогда компьютеров было мало, и на нем все время работала Ада Паскаль, а вот пользователей было очень много, поэтому бедняга де Сад, отчаявшись внедрить автоматизацию документооборота в Лувре, пристрастился к порносайтам. Кстати, триалы у порносайтов в то время были куда длиннее, чем сейчас – например, де Сад умудрился написать даже книгу «120 дней Содома» по мотивам одного из них!
[†] Конечно, после выхода этой книги этим отделам санации придется тяжелее, чем раньше, так как любой умеющий читать сможет прочесть ее и имитировать поведение настоящего программиста. Но у них в запасе есть кое-какие профессиональные секреты и предварительные наработки, чтобы распознать подлог.
В следующей серии - "Вся правда о методологиях разработки ПО, или о чем умолчали супруги Йордон и Де Марко".
Thursday, March 16, 2006
Дни недели
Дни недели
Сегодня четверг. Завтра пятница. Пятница (она же тяпница) – день короткий и расслабленный, работать не хочется. Четверг близок к пятнице, надо полазать по прикольным сайтам, накопать пару ссылок, которые будем кидать завтра друзьям…
Ну, суббота, воскресенье – самые короткие дни, в них, наверное, вдвое меньше часов, чем в обычных сутках.
Понедельник – день тяжелый, какая уж тут работа, отбиться бы от оставшихся пятничных дел и что-то попытаться спланировать на неделю. Похоже, если поднапрячься, можно многое сделать! Начнем прямо с завтрашнего дня!
Вторник…. Тяжело вставать, куда-то тащиться, черт, пятница еще так далека, что наводит депрессию. Надо прочесть пару анекдотов, чтобы развеяться…
Среда. Хм, жизнь налаживается, вечерком выпьем пива с коллегами – можно ж раз в неделю расслабиться (пятница не считается).
Четверг… Опять четверг…
Tuesday, March 14, 2006
Зубы как софт
Зубы как софт
Ну да не о том речь. Речь о зубах. Подойдя к зеркалу, поглядите на эти разноцветные кусочки кальцинированной плоти. Какие они маленькие, крохотные. Рот сам по себе не большой, бутылка 0.5 только с одного конца влазит, а зубов там этих аж 32 штуки помещается. Чертовски компактно, прямо как winamp 2.0 с его минимальными требованиями к ОЗУ…
Однако стоит вам, переборов естественный страх и хорошенько облегчив кошелек, удобно лечь в кресло к стоматологу, как размеры зуба сильно меняются. Врач сверлит его, крошит и ковыряет, и наконец начинает совать туда различные иголочки, сверла и фрезы. Чертовски здоровые инструменты! Каким-то образом немаленькая рука стоматолога помещается у вас во рту, потом вторая! Вместе с инструментами.
«Черт подери!», думаете вы, рассматривая лампы дневного света на потолке, - «Как он умудряется все это там разместить?». Зуб, который казался совсем крошечным и очень компактным, неожиданно становиться большим, как автобус - в него помещается огромное количество инструментов и разных затычек, внутри зуба появляются извилистые лабиринты длиной наверное с полкилометра, хитрые выверты и куча лишних обломков. Скосив глаз, вы видите, как стоматолог пыхтя и напрягаясь пытается не потерять свои инструменты у вас в зубе. Просто какое-то четвертое измерение!
Непохоже, что врач только изображает работу – он действительно напряженно трудится, да и медсестра мечется, и что-то смешивает, замазывает, отжимает и приносит.
Первым делом, после того как вас выпускают из кресла, вы идете к зеркалу и смотрите на свои зубы, со стразом ожидая увидеть там как минимум пасть Годзиллы. Однако все зубы на месте – они по-прежнему маленькие, компактные, может чуть-чуть поменялись – крохотная пломба или еще что-нибудь.
Вот так и разработка программ. Результат выглядит просто, абсолютно естественно, к тому же он такой маленький и очень компактный. Просто не верится, что в небольшую и интуитивно понятную программу было вложено столько труда, усилий, было выявлено и решено столько проблем. И все только для того, чтобы улыбка была лучше?
Нет, на самом деле труды были приложены для того, чтобы зуб не болел, не пах дурным запахом и не превращал жизнь своего носителя своей безумной деятельностью в кошмар. Так же как и софт.
Берегите зубы!
Friday, March 10, 2006
Пятница №1 - Кто такие пользователи
Отрывок из еще неназванного произведения.
Кто такие пользователи
Может показаться, что этот вопрос лишен смысла, однако это не так. Конечно, у каждого программиста в голове сидит образ любимого «юзера» – будь то бабушка из бухгалтерии, требующая чтобы принтер печатал быстрее, или дяденька в директорском кресле с неудачным хватом мышки, пытающийся попасть в единственную кнопку на экране (обычно это «Ok» с хинтом “Сделать всю работу”).
Но все эти люди – пользователи. Вряд ли директор вашей конторы, работник бухгалтерии и посетитель корпоративного сайта подозревают, что всех их подвели под одну гребенку, построили для них профили и назвали одним емким понятием «пользователи». Но это так – для нас все они пользователи, потому что пользуются программным обеспечением, которое мы разработали или разрабатываем или собираемся разрабатывать или даже просто поддерживаем (привет Билли!).
Многие программисты даже думают, что слово «ПОльзователи» произошло от слова «ПО», однако это не так – оно произошло о слова «польза», потому что пользователи были придуманы программистами для того, чтобы они приносили пользу.
Этот факт необязательно знать пользователям, поэтому для их успокоения программистами придуманы и продолжают придумываться разнообразные теории о том, зачем нужны программисты и то, что они делают – самая свежая теория называется Business Intelligence. Об этих полезных теориях мы поговорим позже.
К сожалению, многие программисты, особенно из молодых да ранних, забыли о предназначении пользователей и называют их «юзеры» - калькой с английского users. Лично мне больше нравится слово «юзвери» - это возвращает нам к исходной посылке о пользе, так как из «зверей» обычно извлекается какая-то польза – будь то мех, мясо или просто удовольствие от охоты. Чтобы не пугать читателя, уточню – из юзверей обычно извлекаются деньги, что находится в рамках общечеловеческих ценностей и не противоречит законам (да-да, поэтому положите трубку на место и не звоните в прокуратуру – у них своих дел хватает).
Впрочем, на самом деле слово «юзвери» родилось в порыве гнева у кого-то из не особо выдержанных программистов, когда после очередного совещания ему пришлось выкинуть 3 месяца работы. Ниже мы поговорим о том, как избежать таких ситуаций и правильно обращаться с «юзверями», а пока давайте классифицируем пользователей.
Классификация пользователей – восприимчивость к новому ПО
Всякая серьезная разработка программы всегда начинается с определения сущностей, которыми будем оперировать, а данное произведение важно не меньше любой из ваших программ, уж поверьте. Поэтому давайте разберемся с основными видами пользователей, которые встречаются в мире. К сожалению, классификацией по одному признаку мы обойтись не сможем, поэтому придется рассмотреть несколько классификаций, чтобы позже выработать механизмы манипулирования этими пользователями.
Первая классификация - по восприимчивости к новому программному обеспечению. Программисты всегда делают что-то новое, так как на старой программе, работающей со времен XT денег не заработаешь, поэтому необходимо все время делать что-то новое. Слава богу, большие люди наверху это хорошо понимают и выпускают новые версии системного софта и железа достаточно часто, чтобы обеспечить доход и себе, и простым программистам вроде нас. Однако не все пользователи одинаково хорошо понимают, как важно постоянно внедрять новое ПО для поддержания нашего банковского счета в порядке, поэтому очень важно распределить пользователей по этому признаку.
Итак, приступим:
Тормоз – пользователь этого вида очень медленно осваивает все действия и слабо воспринимает перемены. Если он привык вызывать Excel через Пуск/Программы/…, то сколько не объясняйте ему про ярлык на рабочем столе, он только покивает головой, а сам будет пользоваться Пуск/Программы и т.д. Недостатки этого вида пользователей очевидны – научить их чему-то очень трудно, но достоинства также велики – эти пользователи будут на 110% удовлетворены той программой, которую они освоили и никогда не будут вас дергать просьбой добавить шорткаты или оптимизировать расположение кнопок на экране.
Амнезийный тормоз – то же, что тормоз, но постоянно забывает все объяснения. Это приводит к необходимости объяснять ему элементарные вещи помногу раз. Не помогает ничего – ни записывание на бумажках порядка нажатия клавиш, ни чудеса ораторского искусства – с неизбежностью наступления праздника 8 марта у вас раздастся звонок и до боли знакомый голос попросит объяснить «еще разок», как делать отчет. К особо неприятным недостаткам относится то, что амнезия у данного типа пользователей односторонняя – как только вы представите новую версию программы, они сразу вспомнят старую в таких деталях, что даже разработчики подивятся – и потребуют полной обратной совместимости, естественно.
Ретроград – ооо, брат, ты попал. Это самый чудовищный вид пользователя, обычно встречающийся среди женщин пост-бальзаковского возраста. Вот уж кто действительно достоин названия «юзверь» с негативной точки зрения. У пользователей этого типа все лучшее всегда в прошлом. Какой бы шедевр программного искусства не сотворили бы программисты, он будет недостаточно хорош уже по той причине, что просто существует. «Леонардо мертв, и нет другого такого гения» - вот девиз этих мега-критиков. Сочетая в себе скорость восприятия тормоза, умело комбинируя это с приступами управляемой амнезии и постоянно апеллируя к своему многолетнему опыту, ретрограды – самые могучие противники нового программного обеспечения.
Новатор. Тип пользователя, постоянно требующий всего нового. Взглянув на скриншот любой программы, новаторы найдут место для десятка-другого замечаний. У меня был случай, когда я покинул совещание на несколько минут, отставив включенным на проекторе диалог настройки дисплея. К моему возвращению мне вручили список из 23 пожеланий, сопроводив советом больше прислушиваться к мнению пользователей. Нет ничего хуже, чем иметь парочку новаторов высокого ранга на рабочем совещании. Рядовые пользователи не могут и вякнуть, чтобы прервать начальственную чушь, а проект может получить совсем иное направление, чем задумывалось в начале.
Говорун. В детстве нас всех обманули, внушив мысль, что «говорун отличается умом и сообразительностью». Говорун обсуждение любого нового начинания сводит к своим личным проблемам и задачам. Взяв слово на совещании, говорун несет чушь либо до окончания совещания, либо пока его не прервет начальник. Ужаснее всего, когда начальник и есть говорун. Впрочем, говорунов можно использовать: зная их особенность, можно просить их высказаться в момент, когда наступит время неудобных вопросов. Подробнее мы рассмотрим этот прием в главе, посвященной совещаниям.
Пофигист. Этот вид пользователей индифферентно относится к новым начинаниям. Ему глубоко фиолетово, что вы там задумали и для чего это нужно, так как его проблемы неизмеримо важнее, а так как он уверен, что эти проблемы не решаемы в принципе и никто не ценит его усилий по поддержанию статус-кво, то все эти программы-шмограммы по барабану. Обычно это специалисты по практическим вопросам – завхозы, водители, слесари-ремонтники, юристы и другие счастливцы, которых автоматизация предприятия слабо затрагивает. Достоинством пофигиста является то, что его можно привлечь на свою сторону, поинтересовавшись его проблемами или просто распив с ним бутылочку коньяка – нет, пофигисту по прежнему будет наплевать на ваше программное обеспечение, но он будет вам симпатизировать просто как хорошему человеку. Точно так же можно задеть пофигиста, не отозвавшись с должным уважением о его тяжелой и нужной работе, и нажить себе злопамятного и сильного врага.
По отношению к новому ПО все. Конечно, бывают подвиды и комбинации данных видов пользователей, но они примерно укладываются в описанные рамки (если вы обнаружили новый вид, срочно пишите мне - будем разрабатывать вакцину!).
Классификация пользователей по способности сформулировать свои требования
Несомненно, это самая короткая из наших классификаций. Пользователи с точки зрения квалификации делятся на 3 неравные группы:
- не знают, чего хотят. Самая маленькая группа (да, да!).
- думают, что знают, чего хотят, но на самом деле не знают. Вот это самая многочисленная группа пользователей.
-программисты. Да, бывает и так, что программисты пишут продукт для других программистов. Обычно это похоже на шахматный матч «шулеры против карманников», и обычное деление на пользователей и программистов здесь не подходит. Мы постараемся подробнее рассмотреть эту ситуацию позже.
Продолжение следует...
В следующей серии:
- - Виды пользы, которую приносят пользователи
- - Программисты+ пользователи = ?