5 ноября 2007 Проектирование

Правда о проектировании

Почему только один из тысячи менеджеров проектов может спроектировать сайт?

Это парадокс, связанный с отсутствием образования и опыта в данной области у менеджеров проектов. Тем более, что точно никому не известно чем должен заниматься менеджер проектов. Возможно ситуация с такой неграмотностью изменится, т.к. известно, что менеджеры проектов часто несут убытки из-за своих ошибок, но сваливая вину на разработчиков и дизайнеров держаться на плаву.

Почему заказчик не может написать техническое задание и спроектировать сайт?

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

Почему дизайнер не может сразу создать макет удовлетворяющий требованиям проекта?

Очень редко дизайнер делает проектную подготовку перед созданием макета дизайна. Поэтому общая картина дизайна часто складывается случайно. Так видимо может рождаться идея, которую якобы продают дизайнеры, но так точно не может получиться качественный сайт.

Конечно, это не относится к опытным дизайнерам, которым не очень то и нужно предварительное проектирование, разве что пригодится набросок на листе бумаги.

Почему через полгода работы проекта оказывается, что его дизайн мешает развитию и расширяемости?

Потому что в большинстве случаев исполнители проекта воспринимают работу как нечто разовое. И в этом их сложно обвинить, так как по сути это не их забота продумывать и просчитывать будущее, тем более, что в заданиях на разработку пункт о расширяемости и развитие обычно издевательски краткий: «Подумать о будущем развитии». Это действительно цитата из нескольких технических заданий и напоминает фразу: «Подумать о смысле жизни».

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

Почему после работы программиста нужно переделывать проект?

Если речь идет о профессиональном разработчике, то причина почти всегда одна — это внесение изменений в проект во время разработки, а чаще в середине работы и что еще страшнее даже перед самым завершением. Это порождает невероятные вещи, пожалуй, сравнимые с тем как если бы строили небоскреб из ста этажей и, построив девяносто девять, вдруг решили добавить еще пятьдесят этажей. Дом развалится.

Этим изменениям не может быть оправданий — проект надо сворачивать и начинать с нуля. Если кто-то скажет, что все невозможно учесть — есть ответ: «Нужно обратиться за проектированием к профессионалам».

Почему программист не может одновременно проектировать и разрабатывать?

Частично проблему одновременного проектирования и разработки опытный программист может решить за счет объектно-ориентированного программирования, составления диаграмм UML, методов тестирования, но все это произойдет на низком уровне, а на высоком проблема останется нерешенной.

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

Есть еще одна причина. Большинство систем строится на основе трех моделей:

  • модель проектировщика или заказчика;
  • модель пользователя;
  • модель программиста.

Если в процессе разработки отсутствует одна из этих моделей, то результат получиться неполноценным по умолчанию. Поэтому если проектирование лежит на плечах программиста, то фактически отсутствуют сразу две модели. Требовать от профессионального программиста в процессе работы сразу три точки зрения — это невежество. Но, к сожалению, в реальности именно так и происходит. Частично в этом есть и вина самих программистов.

Почему в проектировании не надо быть неисправимым самоучкой?

Нет ничего необычного в том, что в проектировании как и в любой другой профессии глупо изобретать велосипед. Поэтому прежде чем приступать к собственным опытам, необходимо изучить теоретическую часть, которая весьма здраво и популярно описана в книгах. Причем иногда это элементарные основы, которые, тем не менее, многие пытаются выдумать заново. Не надо. В проектировании уже все придумано со времен Римской Империи и проектирование компьютерных систем ничем особенно не отличается от разработки проекта катапульты.

Так вот, когда самостоятельно в течение нескольких месяцев доходишь на опыте проб и ошибок до какого-либо метода проектирования, то после прочтения хорошей книги по теории оказывается, что этот метод уже давно придумали в те времена, когда компьютеры были большими.

Почему некоторые люди думают, что техническое задание единственный документ проектирования?

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

Более того принято считать, что техническое задание это документ, в котором описываются не только функциональные и действительно технические требования, но и все прочее, что можно описать. Это порочное мнение, которое приводит к шаблонизации и штампам, тем самым понижая качество проектирования. Последствия этого достаточно курьезны и часто получается, что подробное, объемное и, казалось бы, много чего описывающее задание бесполезно или еще хуже привносит беспросветную путаницу в проект.

Почему разговор об удобстве интерфейса в отрыве от проектирования — глупость?

Потому что сайт как и любой проект — это система, в которой все части взаимосвязаны и влияют друг на друга.

Представьте дизайнеров автомобилей, которые не подумают о внутреннем устройстве. Что будут делать сборщики автомобиля, когда в красивый и удобный автомобиль будет не вставить двигатель, т.к. для этого потребуется расширить переднюю часть машины. И ведь расширят с помощью молотка и кувалды.