Вот как обрадовал шеф простого программиста N.; N. пустил скупую слезу, ушел в свой кубикл в далеком темном углу и схватился за голову.
N. работал в компании целых два месяца, и показал себя с лучшей стороны. Он виртуозно раскладывал маджонг, мог налить кофе в три чашки сразу и конечно, был лучшим игроком в Guitar hero в офисе. Точно никто не мог сказать, сколько строк написал N., вчерашний выпускник престижного вуза, за эти два месяца, но все понимали – N. здесь всерьез и надолго.
Компания N. занималась мелкими системами на Java, и объем исходников редко был меньше ста тысяч строк, и N. гордился, что исправил целых две строковых переменных: «прилажение» на «приложение», и «проэкт» на «проект». Шеф N. чувствовал в нем скрытую силу, и решился: необходимость переписывания утилиты Z. очевидна, она тормозила, расширять ее было сложно, поэтому переписывание было поручено N…
… к 19 часам N., наконец, собрался с мыслями и твердо решил, что он не допустит ошибок прошлых программистов. Поэтому от чтения документации он решил отказаться, потому что это моветон, а он ведь отличный программист. Кроме того, его ведь попросили переписать систему заново, с нуля, поэтому чтение исходных кодов предыдущего приложения тоже было задвинуто на дальнюю полку – и правда, некогда время терять, N. ведь не получает деньги за чтение старых неподдерживаемых (с сегодняшнего дня) исходников.
N. видел утилиту Z. пару раз, и даже один раз с ней работал. Он почти твердо знал, что нужно сделать, но все таки попросил шефа прислать ему новое тех. задание для новой утилиты Z.++…
… «Мы больше не можем откладывать, давай будем смотреть, что есть» – произнес свою сакральную фразу шеф. N. не показывался из своего кубикла уже больше двух месяцев, не играл в Guitar hero и не разливал кофе с фокусами. Коллеги заподозрили, что N. заболел, или что-то вроде того, но решили его не тревожить, и оставили в покое. «N., у тебя есть, что показать?» – уточнил шеф. «Есть» – нетвердо ответил N. "… Только это pre-pre-alpha" – все таки добавил он.…
… «Mother of god» – шеф упал на стул. «Что это за !@#!$ (непереводимая игра слов)???»
«Это новая утилита, Z++, я решил сделать ее немного универсальной, тут добавил картиночки, тут можно сделать заказ пиццы, а тут она гасит свет в туалете. Правда, я еще не делал основной функционал, но очень скоро это будет готово, обещаю!»…
Эпилог
К слову, у N. не все плохо сейчас. Он стремительно поднялся по карьерной лестнице некомпетентности и не устает повторять своим подчинённым: «Никогда и не за что не изучайте прошлых версий приложения, а их исходные коды сжечь. Это ересь!»
Заключение
Итак, на примере N. мы видим, как необходимо поступать, если проект все таки нужно переписать полностью. Давайте выделим основные пункты и дополним их домыслами. Итак, если вам необходимо переписать проект:
- уделите несколько часов на то, чтобы поиграть в Диаблу, или в Маджонг, в общем, что вам нравится. Не стесняйтесь, во многих компаниях это поддерживают!
- не стесняйтесь не читать исходных требований. Скажите, что все они устарели, и нужны новые требования прямо сейчас. Если говорят, что система должна работать так же, скажите, что это все брехня, и нужно придумать что-то новое.
- если вы умудрились прочитать исходный код предыдущей системы (которую вам нужно переписать), напейтесь до зеленых чертей, только чтобы забыть все, что вы прочитали. Старательно удаляйте из памяти участки кода, которые вам удалось запомнить.
- никогда ни с кем не советуйтесь, особенно, если это заказчик. Заказчик никогда не знает, чего он хочет. Только вы это можете знать!
- помните, что вы не обязаны давать никаких оценок по времени или деньгам. Аргументируйте это тем, что любая система требует достаточного количества времени. Не забывайте играть в любимые игры.
- придумайте, что можно еще включить в новую версию программы, и смело включайте. Заказчик это несомненно одобрит, а если не одобрит, оставите это пасхалками.
- пишите как можно больше кода, особенно если вам платят за строки кода.
Благодарю за внимание, и удачи на поприще переписывания!
Автор: Dreddik