Сводить концы с концами, попутно вгрызаясь в гранит науки - непросто. Репетиторы до невероятия дороги, книжки до невероятия дороги, а еда до невероятия… разумное вложение средств, как правило. И все равно трудно себе что-то позволить. Можно найти убогую работенку для студентов, можно продать свой костный мозг, можно расписаться в отказе от ответственности и передать свое тело во власть студентов-медиков, или импровизировать другим способом, чтобы добыть деньжат. Друг Джесса, которого мы назовем «Джузеппе» избрал путь импровизации.

Сразу внесем ясность, под словом «Импровизация» я не подразумеваю, что он забрался на сцену, чтобы рассказывать о том, в чем отличие между тем как завязывают шнурки черные и белые парни (да и какая в принципе разница?). Нет, он нашел себе клиента! Он мог применить на практике все навыки, приобретенные за несколько лет учебы и подзаработать на стороне.

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

Джузеппе склепал приложение на VB.NET и Access, и в итоге у него получилась работающая система для дизайна печатной продукции, такой как флаеры, реклама и все такое. Клиент был на седьмом небе от счастья, собираясь немедленно сообщить его родителям, что он проделал восхитительную работу. Но тут была одна небольшая загвоздочка, программа не могла печатать. Да, вы все правильно расслышали, программа была разработана для дизайна рекламы, но не могла ее печатать.

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

Когда Джесс добавлял свой модуль печати, ему пришлось с головой погрузиться в существующий интерфейс и код, в глубинах которых затаилось истинное зло, например:

  • Приложение работало в одной форме с несколькими слоями табов.
  • На форме было больше тысячи элементов управления, поэтому грузилась она 30 секунд.
  • Запросы к Access-овской базе данных составлялись из более чем сотни выпадающих списков. Никаких Представлений, только натуральные операторы SQL раскиданные то тут, то там.
  • Приложение использовало вторую базу данных. Она состояла из одной таблицы с двумя столбцами и одной записью. В столбцах был идентификатор (с автоинкрементом) и логическое поле «Online». «Online» сигнализировал о том, что приложение подключено к сети компании и устанавливался посредством пункта меню. Если (давайте начистоту, итак «когда») приложение валилось в режиме «Online», это значение должно было изменяться пользователем вручную.
  • Если пользователь загружал приложение, а флаг «Online» был уже установлен, оно до бесконечности пыталось подключиться, демонстрируя каждый раз предупреждение о неудавшемся подключении. Так продолжалось до тех пор, пока агония приложения не прерывалась крахом.
  • В коде было полно GOTO. Когда Джесс сказал Джузеппе, что GOTO были преданы анафеме еще во времена больших машин, тот лишь улыбнулся, считая что «анафема», это что-то хорошее. Еще Джесс продемонстрировал ему, Что есть Истина?, на что Джузеппе ответил: «Ух ты, FileNotFound мне тоже пригодится!»

Когда Джузеппе подбирал название для своего приложения, он решил, что ему нужно что-то символизирующее новаторское, но органичное слияние, или совокупность разнородных бизнес объектов работающих как единое целое. Он был рад узнать, что это практически точное словарное определение термина «синергетика». Кроме того, использование хитрого словечка позволило ему выкатить за программу счет в 20000$.

В конце концов, клиент дал Джузеппе пинка, поэтому Джесс попытался вмешаться и вырвать победу из лап поражения. К несчастью клиент теперь опасался любых ИТ специалистов, поэтому отказался. Ну, вы знаете, как говорится: «однажды счастливый случай стучится в дверь каждому, а потом вслед за ним приходит Джузеппе». Да, в конце концов, они таки снова наняли Джузеппе. Но тут уже всему виной скорее не «Синергетика», а «Стокгольмский синдром».

Оригинал:http://worsethanfailure.com/Articles/Synergized-Student-Consulting.aspx
Перевод:Евгений Виговский