Инструменты пользователя

Инструменты сайта


Перевод этой страницы:
development:offtopic:only-programming

Только программирование

Или почему я не берусь за разработку дизайна и продвижения сайтов.

Каждый должен заниматься своим делом.

В принципе на этом можно и остановиться, но давайте я попробую объяснить эту идею более подробно.

Давай для начала посмотрим что же относится к Web-разработке. Если говорить вкратце и обобщенно, то это некий процесс состоящий и следующих этапов:

  1. Проектирование - сбор и анализ требований к приложению (разработка ТЗ), проектирование интерфейсов
  2. Разработка дизайна - начиная с концепции дизайна в целом, заканчивая макетами отдельных страниц
  3. Приемка дизайна - заказчик принимает дизайн
  4. Верстка страниц и шаблонов
  5. Программирование
  6. Тестирование и корректировка
  7. Оптимизация и размещение контента
  8. Приемка проекта - заказчик принимает проект
  9. Обслуживание

По сути дела по схожему же алгоритму разрабатываются и авиационные двигатели (да и вообще проходят все инженерные, научные и прочие работы):

  1. Проектирование - сбор требований к двигателю
  2. Разработка дизайна - подготовка конструкторской документации
  3. Приемка дизайна - заказчик принимает конструкторскую документацию изделия
  4. Верстка страниц и шаблонов - подготовка технологической документации
  5. Программирование - изготовление отдельных деталей и сборка двигателя
  6. Тестирование и корректировка - испытания образца и правка технической документации
  7. Оптимизация и размещение контента - подготовка документации по эксплуатации
  8. Приемка - заказчик двигателя принимает изделие
  9. Обслуживание - обслуживание при эксплуатации двигателя

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

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

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

Также на этом этапе закладывается «интерфейс» изделия - габариты вот такие, посадочные места вот тут и здесь. Обвязка (топливо и мало проводы, прочая гидравлика, проводка) стыкуется вот через это окно.

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

Что касается сайтов. Основные требования должен ставить именно заказчик. Если он сам не знает чего хочет, то получится как в сказке - сделай то сам не знаю что. А потом как вы будете сдавать проект? Обязательно появятся какие-либо доработки, которые не были учтены бюджетом.

На этом этапе у нас появляется первый специалист - дизайнер интерфейсов. По сути его задача заложить основной механизм взаимодействия пользователей с приложением.

Разработка дизайна

Подготовленное ТЗ на изготовление двигателя попадает в конструкторский отдел. Специалисты разрабатывают общую концепцию конструкции двигателя, разбивают на отдельные узлы, затем разрабатывают конструкторскую документацию (далее КД) на отдельные детали этих узлов, а также разрабатывают сборочные чертежи.

Что касается сайтов. На основании ТЗ и разработанной модели интерфейса дизайнеры готовят общую концепцию дизайна сайта. Далее идет разбивка на отдельные группы страниц и готовятся макеты страниц и шаблонов.

У нас появился второй специалист - дизайнер.

Приемка дизайна

Готовый пакет КД передается заказчику на проверку соответствия конструкции двигателя заданным требованиям.

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

Верстка страниц и шаблонов

После согласования КД заказчиком, документы попадают в технологический отдел. Основная задача технолога - составить процесс обработки детали из исходной заготовки (ее тоже выбирает технолог). Грубо говоря технолог создает алгоритм, по которому рабочий, не знающий всех процессов обработки (одна деталь может проходит много разных обработок, таких как литье или штамповка, точение, фрезерование, шлифование, хонингование и еще кучу чего), может взять заготовки и выполнить свою операцию. Выходным пакетом документов является технологическая документация (далее ТД).

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

У нас уже есть третий специалист - верстальщик.

Программирование

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

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

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

Тестирование и корректировка

Собранный опытный образец двигателя помещается на испытательный стенд, где его начинают гонять в разных режимах, снимая все возможные параметры. Процесс испытания одного двигателя занимает несколько дней. После чего анализируются собранные на стенде данные и принимается решение о готовности или не готовности изделия. Если изделие удовлетворяет ТЗ и стабильно работает во всех режимах, то его отправляют в серию. Иначе собирается коллегия из специалистов разных областей и принимается план корректировки.

Готовая система передается в руки ребят, которым платят за поломку систем :-). Задача тестировщика проверить систему со всех сторон, причем даже с тех сторон, которые не предполагались в ТЗ. По сути эта такая проверка - пользователи то все разные и ни кто не застрахован, что пользователь будет работать с системой именно так как вы это предполагаете…

Как правило тестированием системы занимаются отдельные специалисты, так как у них глаз не «замылен» разработкой и они могут смотреть на систему с точки зрения отличной от точки зрения программиста.

Вот так, невзначай, у нас появился уже пятый специалист - тестировщик.

Оптимизация и размещение контента

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

Для сайта готовится контент, который оптимизируется под определенные поисковые запросы. Как правило основной текст пишет копирайтер, а оптимизирует его продвиженец (поисковый оптимизатор).

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

Приемка проекта

После испытаний и подготовки технической документации (паспорт, документация по эксплуатации и прочее), заказчик проверяет и удовлетворенный подписывает акт о приемки изделия, после чего двигатели запускают в серию. А заказчик ждет свои новые двигатели.

В ситуации с авиационными двигателями, все они они проходят испытания на стенде (даже после запуска в серию) и на всех испытаниях присутствует представитель заказчика. По сути идет приемка каждого отдельного двигателя.

Ну а случае с сайтом, заказчик также принимает готовое приложение - тестирует его самолично, либо привлекая сторонних специалистов. Если все устраивает заказчика, то он подписывает акт приемки выполненных работ. Довольная команда разработчиков идет кутить в бар :-).

Обслуживание

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

После запуска проекта, над ним продолжаются работы. Копирайтеры пишут новые статьи, продвиженцы - продвигают, программисты поддерживают работоспособность… Работа кипит.

Подведем итог

По скромным подсчетам, чтобы реализовать проект от и до необходимо 7 специалистов (сейчас мы говорим, что каждый специалист это отдельный человек):

  1. дизайнер интерфейсов
  2. дизайнер
  3. верстальщик
  4. программист
  5. тестировщик
  6. копирайтер
  7. продвиженец

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

  • дизайнер интерфейсов + дизайнер (1)
  • дизайнер + верстальщик (но тут нужные еще хотя бы поверхностные знания из области программирования)
  • верстальщик + программист
  • программист + тестировщик
  • верстальщик + программист + тестировщик (2)
  • копирайтер + продвиженец (3)

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

Это распределение специализаций я сформировал исходя из наиболее близких областей, которые перекрывает один человек. Каждая специализация требует от человека вложений своего времени - тут как не крути чем больше у тебя опыта работы с версткой, тем больше ты можешь считать себя профессионалом в области верстки. В одной книге я прочел, что чтобы стать профессионалом мирового класса, человек должен проработать (и развиваться) по крайней мере 10000 часов в своей области. Лично мне кажется, что это достаточно адекватная оценка.

Теперь подумайте дизайнер интерфейсов + дизайнер должен специализироваться в двух областях, но так как они смежны ему не надо тратить 20000 часов на то чтобы стать профессионалом в этих областях. Вполне, возможно, что хватит и 15000 или 12000 часов.

То же самое и программист + тестировщик и копирайтер + продвиженец (поисковый оптимизатор).

А теперь представьте, что вы специализируетесь на разных областях к примеру дизайнер + программист - тут практически нет пересекающихся граней специальностей и вам действительно придется потратить все 20000 часов. А если сюда еще добавить и копирайтера…

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

А теперь представьте что вы хотите найти человека, который бы совмещал в себе профессионализм главного конструктора, главного технолога, да еще и был многостаночником высшего разряда. Вполне возможно, что вы найдете такого человека, но ему будет думаю далеко за 60. И даже найдя его, вы вряд ли будете ставить его за станок, так как в качестве конструктора и технолога он будет куда полезнее.

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

Заказчику на заметку

Представьте вы приходите к разработчику и он готов взяться за разработку проекта «от и до».

Сколько ему должно быть лет, чтобы он выполнил все свои обязательства, на действительно хорошем уровне?

Быть может команда профессионалов будет эффективнее?

P.S.

Что такое 10000 часов в Российской действительности:

  • 5 часов рабочий день 1)
  • 250 рабочих дней в году 2)
  • 10000 часов = 8 лет

Готовы ли вы потратить 8 лет, распыляя время по разным областям и остаться всего лишь хорошим специалистом в этих областях?

1) тут я говорю о эффективном рабочем дне - времени затраченном конкретно на выполнение работы в свой сфере. 5 часов это оценка для наемного рабочего (и то это оптимистичная оценка). Если вы работает на себя, то у вас вполне возможно эффективный рабочий день больше, хотя и не факт. Мы к сожалению рабочее время тратим крайне не продуктивно
2) в соответствии с производственном календарем на 2014 год, нас ждет 247 рабочих дней.
development/offtopic/only-programming.txt · Последние изменения: 2015.09.19 05:29 (внешнее изменение)