Глава 2

23 февраля 1998 г

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

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

Ленни бросает на пол портфель, ставит стаканы на стол и быстро из одного отпивает.

— Доброе утро, Роджер! Прежде чем ты спросишь, ответ утвердительный, дата выпуска остается неизменной — 15-е апреля. Новые показатели оценки поставщиков в пакет не включаются, если только я не закончу подробные спецификации сегодня. Какие еще вопросы?

— Ленни, — начинает Роджер, — я предлагаю еще раз пересмотреть набор функций в версии 7.2. Их нереально много. Дело не в показателях оценки поставщиков. Я боюсь, что нам просто не хватит времени для проверки качества. Ленни, нам нужно правильно расставить приоритеты программистам.

Ленни думает несколько секунд.

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

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

Ленни внимательно смотрит на Роджера, какое-то время думает и, наконец, отвечает:

— Хорошо, Роджер, я расставлю приоритеты. На тот случай, если ты сделаешь все возможное и все равно не уложишься в срок. Но имей в виду, что мне нужно все. Где перечень?

Роджер с явным облегчением передает перечень. Ленни начинает делать в нем пометки.

Звонит телефон, но Ленни на него не реагирует.

Через какое-то время включается сообщение, оставленное на автоответчике: «Это Руди из «КейПиАй Солюшнз». К нам переходит крупный клиент. Он уходит от фирмы «МАН». Мы должны показать ему, как быстро и качественно мы можем все внедрить. Если мы не сможем конвертировать его данные, внедрение провалится. Это очень деликатная ситуация. Перезвони мне, пожалуйста, как только сможешь».

Ленни смотрит на Роджера.

— Тот факт, что «КейПиАй Солюшнз» получают практически все свои заказы от нас, не означает, что мы можем ими пренебрегать, — говорит Ленни.

— Я и так знаю, что «КейПиАй Солюшнз» — наш крупнейший системный интегратор, — в голосе Роджера слышны нотки обиды, — Но дело в том, что команда Фила загружена работой над интернет-модулем. Ты сам сказал, что это наш главный приоритет.

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

Роджер начинает описывать, как он решает эту проблему:

— Я передал этот вопрос Артуру из нашего лондонского офиса. Он пообещал ответить через две недели. Потом выясняется, что он поручил этот вопрос некоей Мэри. По словам Артура, она талантливый программист, но очень молода. Никакого реального опыта. Поэтому после двух неудачных попыток конвертирования данных я потребовал, чтобы Артур лично занялся этим вопросом. Но, похоже, это не очень помогло. Скорее всего, там какая-то особенно сложная ошибка кода. Что ж, попрошу теперь Стива Чина поручить это какому-нибудь достойному программисту.

Он замолкает и делает глубокий вдох.

— Что ты на меня так смотришь? Я не буду делать это лично. Последнюю строку кода я написал тринадцать лет, три месяца и сколько- то там дней назад.

— Несколько лет назад все было по-другому, — Ленни улыбается. — Я помню, как ты управлялся с подобными проблемами за пятнадцать минут.

Роджер улыбается в ответ.

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

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

— Что? — Роджер застыл от изумления.

— Шучу, — смеется Ленни. — Я стараюсь шутить, когда возникают трудности, вот как сейчас. Это у меня в крови. Кстати, нет ничего невозможного в том, чтобы создать систему, которая будет работать правильно с первого раза. Следует просто написать программу, которая ничего не делает. Тогда вероятность того, что она будет работать как надо, составит аж двенадцать процентов. Во всех остальных случаях она будет что-то делать — а это значит, что где-то в ней есть ошибки. У дикобразов есть иголки, а у программ — ошибки. Такова жизнь.

Роджер заставляет себя улыбнуться. Никто не хочет обижать Ленни, игнорируя его шутки. Ему Ленни нравится. Как и всем остальным. Ленни слишком важная персона, чтобы его обижать.

Ленни заканчивает с перечнем. Прежде чем передать его Роджеру, он замечает:

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

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

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

Ленни еще несколько секунд смотрит на экран, затем поднимает глаза.

— Ленни, — говорит Роджер, — пришел тот молодой программист, француз. Я хотел вас познакомить.

— Я бы с удовольствием, но сейчас нет времени. Не сегодня.

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

Ленни пожимает плечами. Роджер меняет тактику:

— Он считает, что в этом модуле есть ошибка, и настаивает на том, чтобы лично доложить тебе об этом.

— А тебя он убедил в том, что там действительно есть ошибка?

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

— Ну и в чем дело? Если ты считаешь, что это настолько важно, добавь эту ошибку в список.

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

— Ладно, зови этого вундеркинда.

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

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

— Привет, Ленни, это — Руди. У нас возникла проблема с клиентом под названием «МАКТЕЛ» при переходе с «МАН» на наш продукт. Нам надо ее срочно решить. Очень срочно. На этом этапе нам нужно пройти только финансовый модуль, но мы застряли из-за проблем с конвертированием данных. Роджер обещал написать программу для конвертирования в первоочередном порядке. Но пока ничего не вышло. Стоит мне запустить финансовый модуль, как программа зависает из-за проблем с данными. Мне уже в третий раз присылают программу конвертирования данных и обещают, что она будет работать, но она только и делает, что зависает. Я узнал, кто из программистов работает над этим вопросом. Это девушка по имени Мэри в лондонском офисе. Я звонил в Лондон и говорил с ней. Ленни, по-моему, она зашла в тупик.

— Руди, я только что говорил об этом с Роджером. Потерпи еще пару дней. Они все уладят.

— Я прошу тебя помочь ей, Ленни. Я знаю, что ты занят гораздо более важными и умными проектами, но речь идет о крупном клиенте, которого мы убедили уйти от «МАН» к нам. Ты ведь знаешь, каких усилий нам стоит переманивать клиентов наших врагов. Я серьезно опасаюсь, что если мы не сможем очень быстро установить у них нашу программу, нам придется распрощаться с нашими надеждами. Прошу тебя, займись этим вопросом. Я знаю, что ты умеешь устранять подобные препятствия за десять минут.

Ленни нравится, когда люди упорны, как бульдоги, но только не с ним. С другой стороны, он не хочет задевать Руди колкими замечаниями. Руди пригласили в «КейПиАй Солюшнз» из компании «Бойд-энд-Нил». В то время как Мэгги повсюду ищет отменных консультантов, Ленни следует быть любезным с подобными «трофеями». Он неохотно соглашается поговорить с Артуром из лондонского офиса. Попрощавшись с Руди, он запирает дверь и отключает телефон. Он уже начинает понимать, как встроить функцию оценки поставщиков. Есть один способ сделать это без каких-либо дополнительных команд. Но для этого потребуется много мелких изменений в различных местах. Сделать это самому гораздо проще, чем объяснять другим.

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

Когда-то все было гораздо проще. Ленни улыбается, вспоминая, как все началось. Говоря по-простому, «БиДжиСофт» обязана своим рождением гневу Скотта. Этот гнев был вызван преподавателем, который поставил ему всего лишь тройку за то, что Скотт считал своим шедевром. Тот семинар был посвящен прогнозу будущих тенденций. Скотт каждое лето подрабатывал программистом и для своей курсовой работы выбрал компьютерную отрасль.

В 1979 году компьютерная отрасль находилась полностью во власти компаний, производивших компьютерное оборудование. Одной из них была IBM, гигант, контролировавший более семидесяти процентов мирового рынка. Были также и компании поменьше, с годовыми оборотами в несколько сотен миллионов долларов. Компаний, производивших программное обеспечение или библиотеки функций, было мало, и размером они были гораздо меньше. В то время компания- разработчик программного обеспечения с оборотом в десять миллионов долларов считалась крупной.

Как раз тогда на рынке появилось два новшества. Первым новшеством стали мини-компьютеры, обладавшие такими же возможностями, как и огромные универсальные ЭВМ. То, на что еще за год до этого требовались миллионы долларов, теперь можно было купить менее чем за двести тысяч. Вторым новшеством стали доступные по цене терминалы. Они быстро заменили собой перфокарты, выступавшие в качестве носителя информации при работе с компьютером. Это были серьезные новшества. Но практически никто тогда не мог предвидеть, что они изменят соотношение между производителями компьютерного оборудования и программного обеспечения. Никто, кроме Скотта.

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

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

Ленни выслушал Скотта, задал ему несколько вопросов и сделал неожиданный вывод:

— Скотт, — сказал он, — ты сам не веришь в то, что ты написал.

Скотт начал яростно возражать, и Ленни добавил:

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

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

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

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

Мэгги, СЕО компании «КейПиАй Солюшнз», направила ему документ, полный жалоб. Сегодня днем она приедет его обсудить, и Ленни нечем ее порадовать.

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

— Будьте добры, могу я поговорить с Артуром?

Ленни надеется, что в лондонском офисе только один Артур, так как он не может вспомнить его фамилию.

— Мне очень жаль, но Артур уже ушел. В офисе больше никого нет.

— Странно. Ах да, в Лондоне уже восьмой час вечера.

— Но вы-то в офисе, я полагаю. Кто вы?

— Я Мэри Уиттакер. Я работаю с Артуром.

— Это хорошо. Вообще-то я хотел поговорить именно с вами. Насколько я понимаю, вы работаете над программой конвертирования данных из «МАН», и там возникли какие-то проблемы.

На несколько долгих секунд повисает молчание.

— Представьтесь, пожалуйста.

— Это Ленни Абрахаме.

Снова молчание.

— Мэри, все нормально. Я сам был программистом. Я просто хотел обсудить имеющийся дефект. Видите ли, люди из «МАК-ТЕЛ» немного волнуются, но они ничего не понимают в программировании. Поэтому я подумал, что моя помощь, возможно, окажется кстати.

Мэри требуется немного времени, чтобы успокоиться и начать говорить с «Большим Ленни». Через пятнадцать минут, в течение которых кто-то стучался к нему в дверь, Ленни удается выявить источник ошибки. Он связан со структурой данных в спецификации материалов.

— Этого не может быть! — восклицает Мэри. — Я проверяла этот код целых три раза.

Мэри вдруг охватывает страх. Нельзя говорить Ленни «не может быть».

— Проверьте еще раз. Он должен быть там. На это указывают все признаки.

Кто-то снова начинает громко стучаться в дверь.

— Извините, Мэри, но я не могу больше говорить. Проверьте снова, у меня еще осталось чутье на ошибки.

Стук становится все громче и громче. Ленни открывает дверь. Он совсем забыл, что до этого запер ее на ключ. На пороге стоят секретарь Ленни и официант из кафе с подносом в руках.

— Извините, но ваш телефон отключен.

На столе нет свободного места. Ленни жестом дает официанту понять, что поднос можно поставить прямо на бумаги.

— Осталось мало времени, — напоминает секретарь. — У вас назначена встреча с Мэгги в кабинете у Скотта. И эта встреча начнется менее чем через десять минут.

Психология bookap

— Хорошо, я съем немного салата и пойду. Когда я голоден, я чересчур агрессивен, а быть агрессивным с Мэгги не хочется.

Через три минуты Ленни направляется в офис Скотта.