Автор работы: Пользователь скрыл имя, 16 Апреля 2013 в 20:46, реферат
Время, когда один-единственный программист мог вести весь проект целиком, безвозвратно прошло. Рынок наводнили акулы бизнеса, ожесточенно конкурирующие между собой, и требование к качеству продукта резко возросло. "Голая" программа без красивого графического интерфейса, многостраничной документации, официального сайта, службы поддержки уже никому не нужна. Исключение составляют утилиты, ориентированные на узкий круг профессионалов, которым достаточно развитого функционала, но таких - единицы и реальные деньги крутятся там, где обитают полуграмотные пользователи, популяция которых исчисляется сотнями миллионов.
Введение.
Модель группы и иерархическая модель
Обязанности членов группы
Модель проектной группы
Размеры группы и масштаб проекта
Крупные проекты
Тематические группы
Функциональные группы
Небольшие проекты
Поиск руководителей
Повышение эфективности коллективной работы
Вывод.
Содержание:
Введение.
Вывод.
Введение
Время, когда один-единственный программист мог вести весь проект целиком, безвозвратно прошло. Рынок наводнили акулы бизнеса, ожесточенно конкурирующие между собой, и требование к качеству продукта резко возросло. "Голая" программа без красивого графического интерфейса, многостраничной документации, официального сайта, службы поддержки уже никому не нужна. Исключение составляют утилиты, ориентированные на узкий круг профессионалов, которым достаточно развитого функционала, но таких - единицы и реальные деньги крутятся там, где обитают полуграмотные пользователи, популяция которых исчисляется сотнями миллионов. Даже примитивный каталогизатор дисков, будучи достойно оформленным и поданным, может приносить неплохой доход, не говоря уже про автоматизацию предприятий или компьютерные игры. Было бы заманчиво написать такой продукт в одиночку, но увы... это практически невозможно. Даже гениальный программист, талантливый абсолютно во всем, навряд ли захочет отвечать на идиотские письма пользователей, а писем таких будет очень много и ведь каждый покупатель считает, что вместе с продуктом он покупает еще и внимание.
Десять лет назад можно было программировать, зная всего лишь Turbo Pascal и MS-DOS, теперь же количество обязательных языков/библиотек/технологий исчисляется десятками. Писать интерфейс на Си - это самоубийство, причем крайне болезненное и мучительное, но еще хуже пытаться реализовать вычислительное ядро на DELPHI. Поэтому неизбежно встает вопрос о создании команды, а может быть - и целой фирмы.
Работать в команде и сложно, и просто одновременно. С одной стороны, без обмена идей и знаний программист, находящийся в изоляции, никогда не сможет реализовать свой потенциал на 100%. Великие находки и грандиозные открытия, как правило, рождаются в спорах. С другой стороны, если ты один - тебе приходится рассчитывать только на самого себя и никто не придет на помощь в трудную минуту (про то, что некоторые пройдохи ухитряются перекладывать свои проблемы на чужие плечи, мы знаем, но скоромно промолчим).
Это были плюсы. Теперь о минусах. Командная работа требует намного большей самоотдачи, заставляя заниматься не тем, чем тебе интересно, а тем, что нужно команде (как говорится - "что полезно для вида, вредно для индивида"), при этом неудача одного из участников ударяет рикошетом по всем остальным и сотни часов, проведенных за монитором, летят впустую. Сплоченные команды - большая редкость (если они вообще существуют в природе) и интересы участников чаще всего оказываются взаимно противоречивыми. Кто-то рвется вперед, выдвигая одну сумасбродную идею за другой, кто-то топчется на месте, вылизывая каждую строку кода и радуясь, что ему удалось сократить длину функции на шесть байт. Как следствие - возникают расколы и конфликты. Атмосфера внутри коллектива становится душной, а работа - непроизводительной.
Хуже всего приходится творчески активным индивидуалистам - необщительным, неуживчивым, неконтактным, привыкшим работать удаленно, каким, собственно, и является мышью, имеющий богатый опыт командной работы (хоть большей частью и отрицательный), но ведь... тут вот какой момент. Тот, кто умеет что-то делать неосознанно, кто наделен этим талантом от рождения, никогда не сможет объяснить - как именно и что именно он делает, почему поступает так, а не этак и т.д.
Модель группы и иерархическая
В настоящее время сложность промышленных приложений и систем такова, что процесс их разработки стал практически неуправляемым. Кроме того, их развертывание на сотнях компьютеров, расположенных в разных местах, значительно раздвигает границы процесса разработки.
Один человек не способен создать приложение масштаба предприятия. Ни один разработчик просто не удержит в голове все требования к системе и варианты проекта. Поэтому сегодня разработкой промышленных систем занимаются проектные группы, и все обязанности распределяются среди членов группы.
Существует две основные модели организации коллектива при разработке ПО:
1) иерархическая модель
2) модель группы
Работа в коллективе отличается определенными сложностями. Прежде всего, коллектив хочет знать «кто начальник». Ответ на этот вопрос дает иерархическая модель организации, определяющая начальников и подчиненных. Однако, если в современных производственных средах один менеджер проекта отвечает за все тонкости разработки и принимает все важные решения, возникает множество проблем, ведущих к провалу проекта. Иерархическая модель грешит множеством недостатков:
· нехваткой информации;
· невозможностью учесть все особенности проекта;
· отсутствием полноценной связи между всеми участниками проекта, так как вся информация идет в одном направлении — вверх по иерархии, к главному менеджеру;
· трудностью освоения новых технологий, необходимых при создании кроссплатформенных приложений;
· сложностью расстановки приоритетов.
Кроме того, опыта одного человека чаще всего недостаточно для быстрого решения задачи и для интеграции приложения в существующую инфраструктуру.
В организациях, построенных
на основе иерархической модели, затруднен
обмен информацией — в этой
модели он, по определению, осуществляется
через посредников. Вся информация
иерархических групп «
Дабы сгладить недостатки
иерархической модели, в проектной
группе предусматривается
Модель группы не определяет
структуру коллектива с точки
зрения отдела кадров. Ведь в такую
разностороннюю группу привлечены ресурсы
из разных отделов организации. Задача
модели проектной группы — определить
цели проекта и распределить обязанности.
Руководители каждого направления
с помощью выделенных им ресурсов
выполняют возложенную на них
часть работы. Обязанности ролей
определяются работой над проектом,
а не деятельностью «штатной единицы».
При этом руководители направлений
выполняют свои обычные функции:
составляют график выплаты премий,
распределяют отпуска и контролируют
эффективность работы сотрудников.
Начальник может оценить
И у коллективного подхода есть недостатки:
· разрозненная связь с внешними источниками информации;
· несогласованное представление о разных сторонах проекта;
· несогласованность личных планов членов группы;
· отсутствие опыта, снижающее эффективность коллективной работы.
Обязанности членов группы
MSF — не готовое решение, а каркас, который можно адаптировать для нужд любой организации. Один из элементов этого каркаса - модель проектной группы. Она описывает структуру группы и принципы, которым надо следовать для успешного выполнения проекта.
Хотя модель группы разработчиков весьма конкретна, при знаков знакомстве с MSF ее нужно рассматривать в качестве отправной точки. Разные коллективы реализуют этот каркас по-разному, в зависимости от масштаба проекта, размеров группы и уровня подготовки ее членов.
Чтобы проект считался удачным,
следует решить определенные
задачи: I
· удовлетворить требования
заказчика — проект должен выполнить
требования заказчиков и пользователей,
иначе ни о каком успехе
не может быть и речи, возможна ситуация,
когда бюджет и график
соблюдены, но проект провалился, так как
не выполнены требования заказчика;
· соблюсти ограничения —
разработчики проекта должны уложиться
в финансовые и временные рамки;
· выполнить спецификации, основанные на требованиях пользователей — спецификации — это подробное описание продукта, создаваемое группой для заказчика; они представляют собой соглашение между проектной группой и клиентом и регулируют вопросы, касающиеся приложения, в основе этого требования лежит принцип «сделать все, что обещано»;
· выпустить продукт только после выявления и устранения всех проблем — не существует программ без дефектов, однако группа должна найти и устранить их до выпуска продукта в свет, причем устранением ошибки считается не только ее исправление, но и, например, занесение в документацию способа ее обхода; даже такой способ устранения проблем предпочтительнее, чем выпуск приложения, содержащего не выявленные ошибки, которые в любой момент могут преподнести неприятный сюрприз пользователям и разработчикам;
· повысить эффективность труда пользователей — новый продукт должен упрощать работу пользователей и делать ее более эффективной. Поэтому приложение, обладающее массой возможностей применять которые сложно или неудобно, считается провальным;
· гарантировать простоту развертывания и управления — эффективность развертывания непосредственно влияет на оценку пользователем качества продукта, например, ошибка в программе установки может создать у пользователей впечатление, что и само приложение небезгрешно, от проектной группы требуется не только подготовить продукт к развертыванию и гладко провести его, но и обеспечить пользователей поддержкой, организовав сопровождение приложения.
Примечание. На проект влияет множество факторов, некоторые из которых создают дополнительные ограничения. Когда проектная группа рассматривает на совещаниях цели проекта и график его создания и выпуска, следует убедиться, что проект окупится, то есть удастся выпустить нужный продукт, не превышая запланированных расходов.
Для достижения этих целей в модели проектной группы выполняемые задачи распределяются по шести ролям: менеджмент продукта, менеджмент программы, разработка, тестирование, обучение пользователей и логистика. Люди, выполняющие конкретную роль, должны рассматривать проект со своей «колокольни» и обладать необходимой для этого квалификацией.
Шесть ролей модели проектной группы, подробно описанные в этой главе, связаны с шестью целями проектной группы, что проиллюстрировано в таблице. Все эти цели важны для успеха проекта в целом, и поэтому все роли равноправны. В этой модели нет руководителя всего проекта — есть группа людей, знающих, что нужно делать и делающих это.
Как же начать работу над
проектом, не зная, сколько времени
на это потребуется, сколько проект
будет стоить и каких результатов
ожидать? Обе эти модели предлагают
составлять расписания и графики
«снизу — вверх», в проектировании
придерживаться подхода «сверху
— вниз» и, кроме этого, распределять
ответственность за результаты работы
между членами группы. На первый
взгляд может показаться, что эти
рекомендации не отвечают на поставленный
вопрос. Однако на самом деле они
позволяют сократить риски на
ранних стадиях проекта. Приняв на этих
стадиях правильное решение, вы избежите
серьезных изменений в
Модель проектной группы
Работа над проектом включает множество разных видов деятельности и изучение требований с разных точек зрения, поэтому распределение основных задач по нескольким ролям повышает шансы на успех проекта. Как видно из рисунка, в MSF определены шесть таких ролей, которые и составляют модель проектной группы. У каждой из ролей свои обязанности, выполнение которых и обуславливает удачу проекта.
Обычно каждую роль исполняют несколько человек, один из которых считается руководителем, именно он на совещаниях с другими членами группы представляет свое направление.
В проектную группу должны входить:
· опытные руководители;
· инициативные сотрудники, способные принимать решения и нести ответственность за свое направление работы.