Коллективная разработка программного обеспечения

Автор: Пользователь скрыл имя, 28 Октября 2013 в 13:43, реферат

Описание работы

Авторская разработка — принцип создания программных продуктов, при котором весь жизненный цикл разработки поддерживается одним — единственным человеком.
Этот принцип был достаточно широко распространен в 70 — 80-е годы ХХ века. Сейчас он применяется редко. Примерами авторских разработок являются операционная система Диспак (В. Ф. Тюрин), текстовый редактор Лексикон (Е. М. Веселов), трансляторы с языков Algol – 68 (П. Наур) и Pascal (H. Вирт).

Работа содержит 1 файл

Коллективная разработка ПО.doc

— 160.50 Кб (Скачать)

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

-        Логика: деловая (экстраверт), отношений (интроверт).

-        Этика: эмоций (экстраверт), отношений (интроверт).

-        Сенсорика: волевая (экстраверт), ощущений (интроверт).

-        Интуиция: возможностей (экстраверт), времени (интроверт).

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

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

-        Интуитивно-логический   экстраверт —   »впередсмотрящий»,   импульсивный стратег, склонный к синтезу (характерный представитель типа Александр Суворов).

-        Логико-интуитивный интроверт — сильный логист, имеющий аналитический характер мышления, стремление к выявлению системообразующих факторов (характерный представитель типа — Робеспьер).

-        Интуитивно-логический интроверт — критик, стратег, генератор новых алгоритмов, знаток динамических структур (характерный представитель типа — Оноре де Бальзак).

-        Логико-интуитивный экстраверт — активный инициатор, изобретатель и рационализатор (характерный представитель типа — Джек Лондон).

Типы  совместной деятельности

Коллективная  разработка предполагает большое количество различных действий, причем степень  совместной деятельности может существенно  изменяться от одного действия к другому. Можно выделить четыре типа совместной деятельности[Robillard, Robillard 2000].

Мандатная деятельность, обычно представленная формальными собраниями, проводимыми на регулярной основе. Обычно собрания планируются заранее, а присутствие на них обязательно. Статистика показывает, что программисты проводят около 4% своего рабочего времени на собраниях.

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

Естественная  совместная деятельность, когда как минимум двое программистов работают над одной и той же задачей одновременно и обмениваются информацией о выполняемой работе. Эта деятельность занимает около 41% рабочего времени.

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

Общинная модель разработки

Идеология общинной («базарной») модели разработки сформулирована в программной статье Эрика Раймонда (Eric Raymond) «Собор и Базар». Общинная модель характеризуется тремя основными факторами.

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

-        Разработка на базе открытых исходных текстов. По ним можно разобраться с сутью задачи и в любой момент подключиться к разработке.

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

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

-        Каждая хорошая программа начинается с энтузиазма разработчика.

-        Хорошие программисты знают, что можно написать, а великие — можно переписать.

-        При правильном отношении интересная проблема найдет вас сама.

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

-        Следует выпускать ранние и частые версии программ. П   Обнаружить проблему и исправить ее могут разные люди.

-        Иногда использовать идеи пользователей лучше, чем свои.

В сети  Интернет можно найти достаточно большое количество сайтов спроектами,      разрабатываемыми      по     общинной     модели.

Отступление «об оффшорном программировании»

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

-        Аутстаффинг — использование  программистов  »поштучно» для   конкретной работы под руководством менеджера заказчика.

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

-        Полная разработка — выполнение проекта по полной разработке и внедрению системы.

Довольно широкое  распространение оффшорного программирования в настоящее  время  обусловлено  состоянием  мирового  рынка заказного  программного обеспечения. По очень приблизительным данным разработкой программного обеспечения в мире занято от 7 до 20 миллионов человек.

В России — от 5 до 10 тысяч. В мире существует огромный неудовлетворенный спрос на услуги профессионального программирования (например, в США дефицит профессиональных программистов составил в 2003 году около 1,5 миллионов). Следовательно, для некоторых компаний передача части работ исполнителям в другой стране обусловлена естественной необходимостью.

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

-        Оплата профессионалов ниже, чем в стране-заказчике.

-        Присутствуют высокие стандарты образования и доступны технические эксперты.

-        Доступны передовые технологии, повышение технической квалификации.

Легко видеть, основные страны, удовлетворяющие данным условиям, — Россия, Индия, Китай. Среди лидеров  оффшорного программирования уже находятся  Уругвай и Израиль.

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

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

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

Оптимальная структура управления компанией. Такая структура подразумевает возможность быстрого формирования и переформирования команды, а также отсутствие жесткой и сложной иерархии.

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

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

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

-        Большие сложности поездок в страну фирмы, передавшей заказ, известно много случаев отказа в выдаче виз по надуманным причина инженерам, выезжающим на короткий срок для осуществления консультаций и участия в совещаниях рабочих групп. Особенно «славятся» такой политикой США.

-        Относительно высокая стоимость качественных телекоммуникационных услуг. Это может стать причиной дополнительных расходов.

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

-        Повышенная осторожность зарубежных клиентов при взаимодействии с российскими компаниями. В ряде случаев эта осторожность обусловлена историческими и политическими причинами. В других случаях — предыдущим неудачным опытом, связанным, например, с традиционным российским упованием на «авось».

 

Современные технологии разработки программного обеспечения


Microsoft Solutions Framework (MSF) — это методология ведения проектов и разработки решений, базирующаяся на принципах работы над продуктами самой фирмы Microsoft и предназначенная для использования в организациях, нуждающихся в концептуальной схеме для построения современных решений.

Microsoft Solutions Framework является схемой для принятия  решений по планированию и  реализации новых технологий в организациях. MSF включает обучение, информацию, рекомендации и инструменты для идентификации и структуризации информационных потоков бизнес-процессов и всей информационной инфраструктуры новых технологий.

Microsoft Solutions Framework представляет собой хорошо сбалансированный набор методик организации процесса разработки, который может быть адаптирован под потребности практически любого коллектива разработчиков. MSF содержит не только рекомендации общего характера, но и предлагает адаптируемую модель коллектива разработчиков, определяющую взаимоотношения внутри коллектива, гибкую модель проектного планирования, основанного на управлении проектными группами, а также набор методик для оценки рисков.

MSF состоит из  двух моделей:

  • модель проектной группы;
  • модель процессов,

и трех дисциплин:

  • управление проектами;
  • управление рисками;
  • управление подготовкой.

В MSF нет роли «менеджер проекта» и иерархии руководства, управление разработкой распределено между руководителями отдельных  проектных групп внутри коллектива, выполняющих следующие задачи:

  • Управление программой
  • Разработка
  • Тестирование
  • Управление выпуском
  • Удовлетворение потребителя
  • Управление продуктом

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

Microsoft выпустила  среду разработки, в полной мере  поддерживающей основные идеи MSF — Microsoft Visual Studio 2005 Team Edition. Это первый  программный комплекс, представляющий  собой не среду разработки  для индивидуальных членов коллектива, а комплексное средство поддержки коллективной работы.

В состав Visual Studio Team Edition входит специальная редакция для тестировщиков — Team Edition for Software Testers. Материалы семинарских занятий  по данному курсу ориентированы  на эту среду разработки, в то время как лекционные материалы ориентированы на изложение общих принципов и методик тестирования.

Rational Unified Process — это методология создания программного обеспечения, оформленная в виде размещаемой на Web базы знаний, которая снабжена поисковой системой.

Продукт Rational Unified Process (RUP) разработан и поддерживается Rational Software. Он регулярно обновляется с целью учета передового опыта и улучшается за счет проверенных на практике результатов.

Информация о работе Коллективная разработка программного обеспечения