Про дедлайны и безграмотную вёрстку.
Знаете, честно признаюсь, двоякое у меня лично отношение к дедлайнам. В первом моём отношении к ним я вижу следующее стечение обстоятельств: действительно, бывает такое, когда какому-то мудрому менеджеру приходит в голову уникальная идея, которую он не поленился высказать руководству. Которое, в свою очередь, перенаправило эту идею аналитикам и те, в свою очередь, оценили как перспективную и своевременную. А тут ещё руководство встретилось с потенциальными партнёрами, и те заинтересовались, и сказали, что, мол, вот то собрание, которое планируется в конце месяца - единственно удачное время для презентации базового макета будущего продукта, если они увидят, что воплотить идею - реально, если идея на деле окажется настолько же жизнеспособной, как и на словах, то будут вам инвестиции и всяческая наша поддержка. И вот идея спускается к разработчикам в виде ТЗ и с комментариями, мол, ребятки, вы уж постарайтесь. Сроки горят, за три недели нужно сделать базовую функциональность, базовый интерфейс (пусть не конечный вариант, но чтобы всё было причёсано и опрятно как минимум), если пройдёт - будет у нас бюджет на глобальный проект, минимум на год разработки для целой команды (сколько это человекочасов получается?).
В такой ситуации разработчики понимают, что если постараются, как просят, то в самом деле это и участие в чём-то глобальном/интересном, и полезный опыт, и повышения зарплаты, и на самом деле есть смысл поднапрячься (так было у нас с тем августовско-сентябрьским дедлайном, тяжёлым, но оправданным, как показала жизнь). Особенно, если сверхурочные оплачиваются и на предыдущих проектах разработчики убедились, что их не кинут, что это не гнусное использование рабской силы, а за хорошие проекты в самом деле надо бороться всей командой, сообща. Потому в прошлом у меня столько было заметок о командной работе, о взаимопонимании между группами разработчиков, между рисующими дизайнерами и верстающими, между верстальщиками и программерами, и между всеми ними и менеджерской надстройкой.
Но бывают и совсем другие дедлайны. Которые от безграмотного менеджмента и неуважения к разработчикам. Когда проект у людей висит уже не первый месяц, они что-то там возились, оптимизировали и даже разрабатывали функциональность, потом забрасывали на какое-то время, потом вдруг, скажем, под вечер в среду присылают письмо с архивом (!) проекта, частично даже без исходников (precompiledWeb), мол, ребята, вы там причешите в стиле (***) - в общем, нашего предыдущего большого проекта. Всё это без описания функциональности и без документации на сам проект, типа вы же такие умненькие, разберётесь. Типа, там же только таблицу стилей подредактировать. Запускаю проект (ага, без исходного кода, без связей, ещё повозиться надо, чтобы он вообще запустился, чтобы вообще хоть как-то увидеть интерфейс глазками, покликать по функциональным элементам), и тихо млею от того, насколько безграмотно организовано филе… больше сотни .aspx страниц, без шаблонов, с кошмарнейшим html кодом - доктайп не прописан ни в одной из, сплошные незакрытые или закрытые ошибочно теги (открыт параграф, закрыт спан), зато всё оформление прописано атрибутами в самих тегах. Да и значения атрибутов в одном теге то в двойных кавычках, то в одинарных, то совсем без оных. Встроенный в редактор валидатор кода зашкаливает, и это естественно - он подчёркивает всё, где видит неправильность, т.е. его использовать для правки смысла не имеет. А ещё часть функциональных элементов (сложных гридов, к примеру, с сортировками/фильтрами/настройками внутри, или календарик для фильтра по датам) вообще собираются js скриптом полностью - т.е. те же теги и атрибуты тегов - шрифты, цвета, фончики, извиняюсь. Какой css?? Ну и, повторюсь, весь этот хлам без сопроводительной документации. И даже тот факт, что запускающая для проекта страница называется Test.aspx, разработчики должны были понять сами
ага.
Отписываютсь заатлантическим - ребята, тут недели на две кропотливой работы… А они мне… нет двух недель. У нас презентация в пятницу (помним, что проект пришёл в среду вечером). Вы уж там постарайтесь. Ну и как это называется? Это как раз и называется дедлайн безграмотный. А я так собиралась на следующий день отволынить от офисной работы вообще - планировала пойти на конфу по интернет-маркетингу… Я, кстати, там всё-таки побывала, целых три часа удалось выделить; правда только один доклад из тех, которые хотела послушать, застала. Остальные были либо до того, как я приехала, либо после трёх, когда я уже уехала на работу. Править этот срочный проект, до пятницы, до презентации. В ходе работы старалась не сильно злиться на тех разработчиков, которые сочиняли этот безграмотный код —я написала про незакрытые теги и кучу атрибутов в них, но ещё можно добавить 75% избыточного кода - бесполезных таблиц, вложенных друг в друга. Без них ничего не испортилось, зато можно уже было как-то заниматься “причёсыванием” интерфейса, но ведь даже на удаление всего этого избыточного кода тратилось время, большая часть времени.
Вспомнился недавний не очень лицеприятный коммент от читателя *ATimofeev* к одному из последних постов - “Почему увольняют дизайнеров?“:
Я, конечно, дико извиняюсь, но по моему, в большинстве случаев, какие-то завышенные и неоправданные требования предъявляются.
Про верстку вообще ни в какие ворота. *человек доказывал, что его вёрстка — супер, кроссбраузерная, а валидация* – про валидацию согласен, пусть меня заплюют, но во многом считаю ее не нужным мифом, который придумали верстальщики, а вот суперкроссбраузерность во многом качественный показатель, за который ругать или не учитывать как минимум странно.
*начинаю одного за качество кода отчитывать и заставлять перевёрстывать* – а какое качество должен иметь код? По моему самое главное – это чтобы везде и всегда работало как положено, без косяков, тогда пока результата не будет можно придираться. Или Вам принципиально, чтобы теги елочкой строили? )
Теги ёлочкой — это понты дешёвые, это можно и специальным тулзом перестроить, если есть желание. Хотя я не понимаю, почему нельзя сразу форматировать как-то вменяемо, чтобы парные теги (если они есть, потому что в присланном проекте местами даже ссылки не закрывались) можно было бы найти достаточно быстро, но это мелочи и не к ним придираюсь. Да, качественный код — это прежде всего работающий код, с этим не буду спорить. Но есть много примеров безграмотного кода, который В ОПРЕДЕЛЁННЫХ СИТУАЦИЯХ визуализирует страницу так, как требуется по заданию и В ОПРЕДЕЛЁННЫХ СИТУАЦИЯХ не сбивает функциональность сервиса, и на момент тестирования в самом деле жить не мешают. Но это не означает, что его можно не исправлять. И если сервис планируется дорабатывать и развивать, оформлять и презентовать, то говорить о том, что безграмотный код можно допустить в работу - не правильно. Да, разумеется, определив доменному диву положенный ему по стилю фончик и бордюрчик (выше написала, что постановка задачи по визуалу - сделать так, как на предыдущем проекте, типа новый сервис - небольшое ответвление его же), и сразу увидела, что фон уехал не туда, и нашла, где контейнеру нужно быть закрытым. Да, и так по всем незакрытым тегам. А ведь это можно было найти валидацией документов, и не списывать всё на временно кроссбраузерное отображение страниц. Да, поудаляла все атрибуты в тегах и вынесла всю отрисовку в css. Да, прошлась практически по всем страницам проекта, свела к минимуму (но не вычистила полностью) всю муть, прописала доктайпы, “причесала”. Да, опять по 12 часов трудотерапии. Но суть переработки была не в сложности задачи, а именно от безграмотного менеджмента + безграмотного кода, написанного, кстати, не программистом-разработчиком, а очень даже дизайнером-верстальщиком, который просто считает, что такой код - это то, что можно себе позволить (начальство проверяет в браузере, а не в редакторе, начальство к валидации не придирается).
Я могу понять верстальщиков, которые держатся за свой кривой код и не считают, что нужно что-то оптимизировать и вообще о чём-то думать. Ведь есть целая ниша веб-разработки, где это совсем не важно: это дорвеестроительство, это небольшие малобюджетные 5-страничные сайты-визитки для малого и среднего бизнеса, делающего свои первые шаги в сети. Это простенькие сайты, где жизненный цикл разработки - нарисовал, заверстал (пусть даже и безграмотно), вывесил. И всё. Нет развития, нет необходимости обращаться к коду для чего-бы то ни было - таких сайтов полно и в рунете, и везде. Их никто не будет доделывать - их проще убить и сделать заново ©. Но ведь совсем другая ситуация, когда верстальщика привлекают в большой интересный сервис, где не только валидация имеет значение. Где имеет значение логика макета. Где нужно планировать и оптимизировать макет. И хорошей вёрстке нужно учиться, на многих проектах, живых.

Одна из причин, по которой я не люблю многих C++ и Perl - программистов заключается в их любви к “write-only” коду.
То есть такой, который можно написать (ивыпятить свое знание языка), но совершенно невозможно читать.
За это же я не люблю некоторых верстальщиков.
Хорошее слово - “читать”. Смешно, но я тоже часто использую именно это слово, когда говорю с верстальщиками о их коде - хороший код, он читабельный, по нему можно работать даже в слепую, без визуализации. Но дело ведь не только во write-only, это не главное, хотя и приятно, если код хорошо оформлен. Но не главное, Саш.
но видела и людей, читающих легко любые перловые кракозябры и за секунды диктующие мне - что здесь во что в конечном итоге распарсится 
НЕ ЛОГИЧНЫЙ код, не оптимальный, избыточный, использование оформительских атрибутов в тегах, не правильное планирование базовых контейнеров сетки, не правильный выбор - что (в рамках конкретного эскиза) будет контейнером, неправильно определено наследование, вот самая главная беда при безграмотной вёрстке, вот чему стоит уделять внимание.
А перловые перлы - да, приходилось сталкиваться
прочитал. осилил. с заокенскими просто жуть.
может с аурой чего случилось? -)
про то где не нужна валидность забыли упомянуть сателлиты -)
а это ведь уже целая индустрия, уже даже биржи сателлитов есть.
а вот про верстку считаю, что она должна быть такой, которая понятна команде. грубо говоря - фиг с ней с валидацией, лиж бы програмисты понимали что им наверстали верстальщьци и.т.д
и что бы не было притензий.
если умеют мусор читать быстро сделанный вордом -) то ради бога.
но это все лишь в теории, кроме того если есть претензии, если кому-то тяжело разбираться в этом “коде” и читать его, тогда конечно - нужно что-то делать.
только вот не может быть код неструктурированным и что бы при этом его кто-то понимал…но как это объяснить?
про чтение кода провели с другом эксперимент, написал он достаточно большой код (на тему подобия интернет-магазина) при этом не структурированные, без коментариев (и так мол прокатит). сделано было на “быстрый” так сказать заказ.
и вот прошло полгода, прошлый заказчик попросил внести друга кое-какие измеения за доп.плату -)))
и оказывается код не читабелен даже для того, кто его писал.
в итоге делать то надо…переписываться все стало снуля (слишком все там непонятно..и как оказалось позже еше и не так работает как думалось).
казалось бы бред. а порядок лучше наводить с самого начала
[...] зачастую пристойнее, а вёрстка - это просто песня, и я писала уже о качестве ихней вёрстки даже в этом блоге). У нас разное понимание того, что такое качество, и что [...]