пятница, 31 августа 2007 г.

Проект, продукт, программа.

Наткнулся на Хабре на статью от LostinWired "Забытая фаза проектирования" + обсуждение. Начали, вроде, про проекты, скатились к продуктам, стартапам, потом на компетенцию программистов. Вобщем, смешали все в кучу. Основной мессадж критиков: построение идеальной команды для 100%-го достижения целей (накрайняк, перепишем).

Мдааа... есть еще люди, живущие представлениями 80-х,о том, что есть программисты-гении и, вообще, программирование это искусство. Сколько раз слышал, что хороший программист должен то да се, а, главное -- быстро писать много хорошего кода. И чем быстрее, тем лучше. Фигня. Хороший программист (собственно, как и любой другой работник) должен все делать вовремя. Не раньше и не позже. Потому, что программирование, это и искусство и наука, а вот создание ПО -- это производство. "Программное обеспечение", это, прежде всего, обеспечение, то есть нечто, обеспечивающее решение задач. А задачи решаются по мере их возникновения. Позже -- возможно, но никак не раньше, ибо еще нечего решать. Таким образом, программа (в смысле ПО) выступает как инструмент в руках того, кому она нужна, и должна "подходить" ровно тогда, когда может и должна быть применена. Единственный способ обеспечить это -- проектный подход.

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

И это применимо практически везде, например, та же "Фактор 2" была проектом в своем начале, когда надо было собрать людей, составить репертуар, записать трэки и ролики. А потом, когда пошли гастроли, она превратилась в программу, то есть последовательность повторяющихся действий -- приехал, выступил, бухнул, уехал, и so on...

А теперь про "продукт". Это то, что очень часто путается с "проектом", хотя вещи совершенно разные. Продукт, это нечто, получаемое "на выходе", аналог "цели". Это может быть французский батон или CMS или даже услуга (сервис), для изготовления которых исполняется один или несколько проектов и, возможно, впоследствии организуется программа. Например, для организации минипекарни необходимо одноразово произвести много согласованных действий (аренда помещения, покупка и доставка оьорудования, наем персонала, переговоры с поставщиками, организация сбыта etc) -- проект, а впоследствии необходимо регулярно обеспечивать производство ингредиентами, оборудование запчастями, людей -- зарплатой, сбыт -- продукцией, налоговую ...ээээ... налогами :) -- программа. Но! Впоследствии, например для захвата новых рынков, возможно потребуются другие проекты: PR-проект, расширение производства, etc. Ключевая категория -- достигнутая цель, представленная объектом производства.

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

6 комментариев:

LostInWired комментирует...

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

SGerr комментирует...

Абсолютно согласен. Я так и написал: создание сервиса. Дальше, в большинстве случаев -- программа.

SGerr комментирует...
Этот комментарий был удален автором.
SGerr комментирует...

LostInWired: перечитал еще раз. Дествительно, может возникнуть неоднозначное прочтение, спасибо. Не буду уже править, но скажу, что имел ввиду не "экземпляр услуги", а услугу как продукт.

Dino Spomoni комментирует...

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

SGerr комментирует...

dino: информация по управлению проектами тоже вполне доступна. И в этой области также разработаны стандарты.