Чувство прекрасного
Такая сложно формализуемая штука, особенно для айтишников. Лорд Кельвин говорил – “что нельзя измерить, то нельзя улучшить”. Не уверен, что каждый инженер эту фразу знает, но подспудно верит в неё, кмк, едва ли не каждый.
Вера эта ложная, и чем дальше в XXI век, тем всё сильней это проявляется. И дело тут вот в чём.
Задачки инженерные – те которые задачки, а не просто на движок картинку натянуть или придумать куда выключатель поставить – с каждым днём становятся сложнее. Мы очень круто научились не изобретать велосипедики – и хорошие решения запоминаем всем миром разом. И поверх них генерим новое.
С усложнением задач усложняются и метрики. У этого есть весьма неприятный побочный эффект – на метриках, собранных вчера, часто нельзя сделать никаких выводов о том, что будет завтра.
Хуже того, не вдруг поймёшь, какие из них “вчера”. Я думаю, многие сталкивались с тем, что всеобъемлющая память гугла стала доставлять проблемы – читаешь, бывает, какую-то инфу и только к концу понимаешь, что это старьё. Если вообще понимаешь.
По этой же причине стало практически бесполезно читать учебники по продвинутым развивающимся дисциплинам – за то время, что они писались и издавались, они безнадёжно устарели.
Как же быть? Как принимать решения без метрик или без веры в них?
Чувство прекрасного обладает серьёзной предсказательной силой. Не вообще везде, а нашем мире – потому что наш мир очень зависит от людей, вполне отличающих красивое от некрасивого. Понятие репутации – прямое следствие такого умения, например.
У меня есть наблюдение. Если программист одевается как чучело и в целом неухожен – это скорее всего пустышка. Исключение составляют “системщики” и “оптимизаторы” – но это очень редкие люди и их сияние сразу совершенно затмевает то, как они одеты.
Отличает ухоженных от неухоженных не наличие девушки, не перегруз работой, не ориентация наконец – а наличие или отсутствие чувства прекрасного. Таких людей сразу видно по их работе – это такие кадры, которые могут сказать, что чего-то не существует, потому что этого в задаче не написано или дизайнер не нарисовал.
Если вернуться к лорду Кельвину, понятно становится, в чём в его фразе подвох. Само понятие “улучшить” – двойственное. Улучшать можно количественно, а можно качественно.
И при качественном улучшении применять количественные метрики, основанные на старой модели – это просто самообман. Даже не подсказка, чаще предсказательная сила монетки получается.
С другой стороны это не всегда бессмысленно – хоть такой подход и загоняет неизбежно в тупик, он даёт возможность появляться редким “рекордным” зверушкам. Это когда вытягивали до предела одну-две какие-то метрики. Например SR-71 и U-2, рекордные самолёты – и нереально сложная посадка и пилотирование при дозаправке, даже в симуляторе.
Замечу, правда, что на них глядя моё чувство прекрасного от восторга верещит )
no subject
no subject
no subject
Я думаю вы обломаетесь даже с одним контрпримером.
no subject
Возьмем Твиттер - внизу лежит сторадж (модифицированный InnoDB), разработчикам которого, подозреваю, глубоко пофигу, как выглядит веб-морда. Гораздо более важно то, что именно она отображает, какую функциональность несет и, значит, что в конечном итоге и будет требоваться от стораджа. Отладка взаимодействия стораджа с мордой, также подозреваю, ведется на совершенно схематичных отладочных макетах. Возможно, никто из С-программеров никогда в жизни не сверстает ничего более законченного.
Эти программеры говно? Вряд ли.
Два фронт-эндщика из Твиттера как-то раз решили унифицировать UI. В итоге мы имеем Бутстрап, который захавал половину сети. Хорошо это или плохо, вопрос другой, важно понимать, что эти двое, скорее всего, никогда не программили на сях. И не будут, это будет диким распылением их компетенции.
Эти чуваки, определенно, вовсе не говно.
Ни к тем, ни к другим не имеет отношения Вася Пупкин, который половину дня колбасит визитки и магазины на джумле в студии из 3х человек, параллельно выбивая из заказчиков предоплату (а с других - дебиторку), а вторую половину рисует флеш-баннеры по заказам с фриланс.ру.
Для студии он - находка, для Твиттера - компост.
И еще такой момент. Иногда программер просто не может доделать работу дизайнера, потому что, сука, ну вот вообще не умеет рисовать и даже как смержить слои в фотошопе не знает. Не умеет и все тут. А если бы умел, то получил бы херню. Потому что это тупо не его. Музыкального слуха, кстати, у него тоже нет, например. И получается, что для студии он говно, будь он хоть каким крутым. В более профессиональной и специализированной конторе - уже не говно.
Дизайнеры ведь зачастую сами не отличаются системным мышлением и набросать простейший алгоритм (даже не непосредственно запрограммить) нифига не в состоянии.
Момент номер два. Если ты программер, то тратить лишние 2-3 часа, например, на разборки с заказчиком или говноверстку - это просрать 2-3 часа своей компетенции. Раз, два, еще куда ни шло, на третий раз, если ты не Вася, пора валить.
no subject
Я не предлагаю программеру доделывать где дизайнер залажал – хотя обматерю каэш любого инженера, который мне скажет "я не знаю, как слои в фотошопе свести". Потому что гугл есть.
Но невозможно же между ними абсолютно чётко разделить работу (и ответственность). 5 лет назад можно было, а сейчас – никак.
Или сроки получаются непозволительные, или цена, или результат говно неживое. Это как офис 2007 – в 2003 начали, 2 года придумывали всеобъемлющий концепт юи, а потом 2 года его писали. И выпустили пузыри, которые в 2003 ещё ок были, а в 2007 – ну песец просто.
Хорошие дизайнеры как раз и отличаются от вась пупкиных именно системным мышлением. А вот умение программить – это вообще не показатель системного мышления. Причина простая – программят не для сферических коней в вакууме, а для людей. И значит с точки зрения системного подхода пользователи – вполне себе компонент системы. И коль скоро система проходит стадию создания и развёртывания, макеты тоже компонент системы, а их утверждение потребляет ресурс и это неплохо бы оптимизировать.
Я как раз и пишу про то, что человек лишённый чувства прекрасного из своей поделки людей исключает. То, что подаётся в таких случаях как "системное мышление" обычно банальная ограниченность и непонимание нужд реальных пользователей.