РуЛиб - онлайн библиотека > Мартин Роберт > Программирование: прочее > Идеальный программист. Как стать профессионалом разработки ПО > страница 7

Читаем онлайн «Идеальный программист. Как стать профессионалом разработки ПО» 7 cтраница

они оставляют ответственность своим работодателям. Если непрофессионал совершает ошибку,
то мусор за ним прибирает работодатель. Но если ошибка совершается
профессионалом, то устранять последствия приходится ему самому.
А если в ваш модуль закрадется ошибка, которая обойдется вашей
компании в $10 000? Непрофессионал пожмет плечами, скажет: «Всякое бывает», и продолжит писать следующий модуль. Профессионал
должен выписать своей компании чек на $10 0001!
Да, когда речь идет о ваших личных деньгах, все выглядит немного
иначе, верно? Но это ощущение присутствует у профессионалов постоянно. Более того, в нем заключается сущность профессионализма.
Потому что профессионализм — это ответственное отношение к делу.
Ответственность
Вы прочитали введение, правда? Если не прочитали — вернитесь и прочитайте сейчас; оно задает контекст для всего остального материала.
Чтобы понять, почему так важно брать на себя ответственность, я на
собственном опыте пережил последствия отказа от нее.
1
Если, конечно, он правильно понимает профессиональную ответственность.
Ответственность
21
В 1979 году я работал на компанию Teradyne. Я был «ответственным инженером» за разработку программы, управляющей минии микрокомпьютерной системой для измерения качества телефонных
линий. Центральный мини-компьютер подключался по выделенным
или коммутируемым линиям на скорости 300 бод к десяткам периферийных микрокомпьютеров, управлявших измерительным оборудованием. Код был написан на ассемблере.
Нашими пользователями были администраторы по обслуживанию,
работавшие в крупных телефонных компаниях. Каждый из них отвечал
за 100 000 и более телефонных линий. Моя система помогала администраторам находить и исправлять неполадки и проблемы в телефонных
линиях еще до того, как они будут замечены клиентами. Таким образом
сокращалась частота жалоб клиентов — показатель, который измерялся
комиссиями по предприятиям коммунального обслуживания и использовался для регулировки тарифов. Короче говоря, эти системы были
невероятно важными.
Каждую ночь эти системы проводили «ночную проверку»: центральный мини-компьютер приказывал каждому из периферийных микрокомпьютеров протестировать все телефонные линии, находящиеся под
его контролем. Каждое утро центральный компьютер получал список
сбойных линий с характеристиками дефектов. По данным отчета администраторы по обслуживанию строили графики работы ремонтников,
чтобы сбои исправлялись до поступления жалоб от клиентов.
Время от времени я рассылал нескольким десяткам заказчиков новую
версию своей системы. «Рассылал» — самое правильное слово: я записывал программу на ленты и отправлял эти ленты своим клиентам.
Клиенты загружали ленты, а затем перезапускали свои системы.
Очередная версия исправляла ряд незначительных дефектов и содержала новую функцию, которую требовали наши клиенты. Мы пообещали реализовать эту новую функцию к определенной дате. Я едва
успел записать ленты в ночную смену, чтобы клиенты получили их
к обещанной дате.
Через два дня мне позволил Том, наш менеджер эксплуатационного
отдела. По его словам, несколько клиентов пожаловались на то, что
«ночная проверка» не завершилась, и они не получили отчетов. У меня
душа ушла в пятки — ведь чтобы вовремя выдать готовую версию
программы, я не стал тестировать новый код. Я протестировал основную функциональность системы, но на тестирование проверки линий
22
Глава 1. Профессионализм
потребовались бы много часов, а я должен был выдать программы. Ни
одна из исправленных ошибок не содержалась в коде проверки, поэтому я чувствовал себя в безопасности.
Потеря ночного отчета была серьезным делом. Она означала, что у ремонтников было меньше работы, а позднее им придется отрабатывать
упущенное. Также некоторые клиенты могли заметить дефект и пожаловаться. Потери данных за целую ночь было достаточно, чтобы
менеджер по обслуживанию позвонил Тому и устроил ему разнос.
Я включил тестовую систему, загрузил новую программу и запустил
проверку. Программа проработала несколько часов, а затем аварийно
завершилась. Код не работал. Если бы я протестировал его до поставки,
то данные не были бы потеряны, а менеджеры по обслуживанию не
терзали бы Тома.
Я позвонил Тому и сообщил, что мне удалось воспроизвести проблему.
Оказалось, что многие другие клиенты уже обращались к нему с той
же проблемой. Затем он спросил, когда я смогу исправить ошибку.
Я ответил, что пока не знаю, но работаю над ней, а пока клиенты могут
вернуться к старой версии программы. Том рассердился — возврат стал
бы двойным ударом для клиентов: они теряют данные за целую ночь
и не могут использовать обещанную функцию.
Ошибку было трудно найти, а тестирование занимало несколько часов.
Первое исправление не сработало. Второе — тоже. Мне понадобилось
несколько попыток (а следовательно,

Конец ознакомительного отрывка

Купить и читать книгу!