среда, 13 февраля 2008 г.

Abortive architecture

Так уж сложилось. Мы работаем в режиме вялотекущего deadline. Непрекращающегося. И времени на посидеть\подумать практически не остаётся. Отчасти в этом виновата нехватка людей. Отчасти - креативность начальства, расчитывающего на профессионализм высокооплачиваемых людей. Это не так важно.
Получается, что многие вещи придумываются и реализуются на коленке. В расчёте на свободное время которое появится, когда мы закончим. Но задачи всё появляются, и заканчиваться они не планируют. И это правильно - люди тут зарабатывают деньги, а не спасают мир идеальными решениями.
Недавно я выдал некий framework нужный для упрощения и централизации различных действий. В перспективе я планировал вытащить туда весь основополагающий функционал нашей системы. По задумке он должен был быть легко расширяем и очень гибок. Необходимый кусок подгружался только по требованию, все модули имели общий стиль использования (similar API). Но...
Сейчас у меня образовалось временное окно, в котором я сумел подумать в том числе и о своём детище. Я хотел добавить ветвление в функционал, это позволяло не слишком задумываться об общем модуле, которому необходимо вести себя немножко по разному в разных проектах. Реализация этого ветвления на настройках создавала монстра, тяжёлого как по памяти, так и по процессорному времени. Логичным кажется сделать дублирование этой разницы и использовать тот кусок, который нужен в данный момент. Но прозрачного деления не получается - слишком много сделано на текущей логике.
И вот тут у меня опускаются руки. Времени переписать весь framework у меня нет. Желания добавить очередную заплатку - тоже. Я нахожусь в классической патовой ситуации. В первую очередь виноват в этом я: не имея огромного опыта создания монстров - начал писать глобальный проект. Причём, как это ни обидно, как это ни приятно - это не последний milestone в смене взглядов на структуру и идеологию. Но сейчас я с грустью осознаю, что облажался.
Рабочий процесс это не затронет - придумывать заплатки на лету я научился давно. Но использовать этот framework в своих личных проектах в будущем я не буду.

P.S. Во произошедшем есть огромный кусок приятного experience: я в очередной раз прекратил считать себя самым умным. Я снова не считаю, что, при наличии времени, смогу придумать какую угодно сложную архитектуру. И это заслуга, в том числе, моего Технического Директора. Всё таки опыт - вещь которую можно получить только со временем. Никакой светлый ум не поможет перепрыгнуть через ступень не задерживаясь.
P.P.S. Надо уметь учиться у умных и опытных людей. Не зря в детстве говорят: "Слушай старших". Дети понимают это не так, как надо, а жаль. Я считаю, что надо объяснять еще в детском саду что "слушать" не значит "беспрекословно подчиняться". Это значит "слушать и задавать вопросы чтобы перенять опыт". Я рад, что у меня есть у кого учиться.

вторник, 12 февраля 2008 г.

Moominvalley in November

Серая, пока еще без снега, Мумидолл. Начало зимы.
На холме, у выхода из долины, стоит Снусмумрик и курит трубку. Тишина. Болотце, в котором Муми-Тролль запускал кораблик, покрылось тонким льдом. Покачивается одинокая камышинка около самого берега.
Сегодня утром семья Муми-Троллей встала гораздо позже обычного и в очень смурном настроении. Снифф тихонько нудил весь завтрак, а Ондатр, хоть и нашёл свою книгу в запеканке, так никому ничего не сказал.
После еды Муми-Папа убирал лодки и катамараны с причала, а Муми-Мама собирала разбросанные по всем комнатам вещи в шкафы. Никто не разговаривал, не шутил, не смеялся. Муми-Тролль и фрекен Снорк залезли в домик на дереве и долго там сидели глядя на тусклое, закрытое дымкой солнце.
Снусмумрик каждый год ждал начала спячки в Мумидолле, но всегда оказывался не готов. Еще вчера они спустили в ручей маленький плот и готовились к походу в грот, а сегодня на обед вся Муми-семья ела еловые иголки и готовилась к зимней спячке. Убирали всё, что создавало неповторимую атмосферу предвкушения Приключения, накрывали все диванчики и стулья, закрашивали коричневой краской первый этаж. Дом стал неуютным и гулким. Затем Муми-Папа собрал все веревочные лестницы, закрыл окна и они молча разбрелись каждый по своей комнате.
Снусмумрик тихо вздохнул, выбил трубку, и натянул шляпу на самые уши. Тоскливое зрелище совсем его расстроило. В этом году было особенно грустно - обычно спячка наступала раньше, и он уходил еще из живой долины. А сегодня он был единственным кто смотрел на посеревшие скамейки, забытую удочку на мостике, пустой флагшток, сумрачное солнце. Не хотелось даже писать прощальное письмо. Хотя, и он это знал, всё равно придётся. Но написать можно и позже, когда в долину приходят зимние жители и она снова оживает.
Пора уходить.
Он раскурил еще одну трубку, одел рюкзак и не оборачиваясь пошёл в лес. Впереди была зима.