Психологические командные роли

Технические командные роли

Коллективная разработка

Авторская разработка

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

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

Примеры известных авторских разработок: текстовый редактор Лексикон (Е. М. Веселов), трансляторы с языков Algol-68 (П. Наур), и Pascal (H. Вирт) и др.

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

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

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

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

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

Однако объем программного продукта, выполненного методом авторской разработки обычно в 5÷20 раз меньше по сравнению с индустриальными аналогами.

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

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

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

Разработка приложений:

- программист;

- специалист по инженерии программирования;

- специалист по инженерии знаний.

Работа с приложениями:

- специалист по приложениям;

- администратор данных;

- администратор базы данных.

Техническая поддержка:

- системный администратор;

- сетевой администратор;

- администратор коммуникаций.

Обеспечение качества продукта:

- технический писатель;

- инженер тестирования;

- инженер качества.

Маркетинг:

- специалист по сопровождению продукта;

- специалист по продажам продукта.

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

Бригады главного программиста подобны хирургическим бригадам. Один участник команды занимается основной работой – остальные оказывают ему всевозможную поддержку.

В состав бригады входят следующие специалисты.

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

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

Администратор (он же – менеджер). Под его контролем – деньги, люди, помещения, машинные ресурсы, контакты с другими группами и руководством.

Редактор. Фактически, это технический писатель. Его задача – критически переработать черновики документации (созданные главным программистом), снабдить их ссылками и обеспечить публикацию или помещение в Интернете.

Языковед. Эксперт в тонкостях языков программирования. Может найти эффективные способы использования языка для решения сложных задач. Обычно работает с несколькими бригадами.

Инструментальщик. Разработчик специализированных инструментов – утилит и скриптов. Поддерживает основной инструментарий и оказывает по нему консультации. При необходимости может осуществлять администрирование ОС.

Отладчик. Разработчик тестов и организатор тестирования продукта.

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

Принято выделять восемь ключевых ролей в проекте.

Председатель. Выбирает путь, по которому команда движется вперед к общим целям. Умеет обнаружить сильные и слабые стороны команды и обеспечить наибольшее применение потенциала каждого ее участника.

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

Генератор идей. Предлагает радикально новые идеи и стратегии, новые подходы к решению проблем, с которыми сталкивается группа. Особое внимание уделяет главным проблемам.

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

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

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

Дипломат. Поддерживает силу духа в участниках проекта. Оказывает им помощь в трудных положениях. Пытается улучшить взаимоотношения в команде.

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

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



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: