И. Соммервилл - Инженерия программного обеспечения (1133538), страница 116
Текст из файла (страница 116)
Таким образом, создание программы представляет собой итерационный процесс, состоящий из трех этапов. 1. Интеграция существующих знаний о компьютерных технологиях и о поставленной задаче с тем, чтобы создать новое знание и с его помощью разобраться в проблеме. В работе [84[ подчеркивается особая роль практического опыта решения прикладных задач на этой стадии. 2. Создание семантической модели решения, которая тесгируется и совершенствует- ся до тех пор, пока ие будет успешно справляться с поставленной задачей. 3.
Представление модели на любом языке программирования или в системе проект- ной нотации. 22. Управление персоналом 45$ Если менеджерам необходимо определить, кого включить в долгосрочный проект, в первую очередь следует оценить способность специалиста решать всеобъемлющие проблемы и его опыт работы в данной области и лишь потом его мастерство программиста. Как только приходит понимание поставленной задачи, у опытных программистов возникают приблизительно одинаковые трудности в разработке программы, независимо от того, какой при этом используется язык программирования. Несомненно, навыки программирования необходимы, и для их развития потребуется достаточно много времени (особенно это касается таких сравнительно сложных языков, как Св о).
Однако, исходя из своего личного опыта, могу сказать, что гораздо легче освоить определенный язык программирования, чем развить в себе способности к реепению задач. Перевод из семантической модели в програиму исключает появление ошибок, если язык программирования, выбранный программистом, содержит конструкции, соответствующие самым низкоуровневым семантическим структурам, Несмотря на разнообразие, онн в любом случае должны соотноситься с такими понятиями языков программирования, как операторы присвоения, циклы, условные операторы, сокрытие информации, объекты, наследование и т.п. Чем балыке сслеантические структуры соответствуют конструкциям языков програлемирования, тем легче написать программу.
Таким образом, программы, написанные с помогпью языков программирования высокого уровня (например, )апа), содержат меньшее количество ошибок, чем созданныс с помощью языка ассемблера, так как семантические структуры низкого уровня могут напря. мую коднроваться в выражения языков высокого уровня. Однако при этом могут возникнуть проблемы, если четко нс разделены функциональные и объектно.ориентированные аспекты исходной задачи.
Проблемы такого рода появллются у компаний, которые привыкли к стандартной методике анализа (ЯА)УТ', например), но используют при этом объектноориентированноее проектирование и программирование. Приведенная модель также дает объяснение тому, почему структурированное программирование (см. главу(8) явллется оптимальной альтернативой при организации управления программой. В основу струътурированного программирования положены такие семантические понятия, как циклы и условныс операторы. Кратковременная память программиста при этом редко бывает перегруженной, тем самым снижается возможность возникновения ошибок. Структурированные программы более легки для понимания, так квк их можно просмотреть от начала до конца. Структуры, необходимые для формирова.
ния семантических блоков, создаются последовательно, без участия др)тпх частей программы. Таким образом, кратковременная память программиста полностью занята только одним сеансом написания кода. При этом не возникает необходимости запрашивать из промежуточной памяти информацию о других частях программы, которые взаимодействуют с создаваемым кодом. 22.1.3. Мотивация Координация деятельности людей для выполнения определенной работеа являетсл одной нз основных задач менеджеров. Маслов (Мал(ож. [230) ) считает, что мотивацеея человека направлена на удовлетворение своих потребностей. Этн потребности имеют нерархическ)ю структуру (рнс, 22.5). Самый низкий уровень иерархической структур1а представляют основныс физиологические потребности в шпце, сие, самосохранении и лр. Социальные потребности связаны с необходимостью чувствовать себя частью социальной группы. Потребности дЛРТ )япи1нюд Лпа)ули анд ))ел)сее Ттдп!е)пе)- мепюд епе)оуктурново пнплнлп и п)юелтефовпнеи )7", ) И ).
Принадлежит к е)йппе меп~одов, )юплеоуюгаик ет)укепурнн)е (п не обеекепкоорнептп)ювпннна) подвод к п)юекткровпнию ПР. — Прим, рел. 454 хХасть ЪЧ. Управление в оценке ассоциируются с желанием получить определенную степень уважения в обществе, а потребность в самореализации связана с развитием личности. Естественно, приоритетными в реализации являются низшие потребности (утоление голода, например), а затем уже человек сосредоточивается па более высоких потребностях.
Ряс. 22.5. ззгрлрхическпя сифукмуфп чсзоэечеагкх иоэг)мбносмгд Люди, работающие в организациях, которые занимаются разработкой программного обеспечения. как правило, нс испытывают сильного голода или жажды и чувствуют себя в относительной безопасности в своем окружении. Таким образом, в аспекте управления этими людьми главной задачей менеджмента является удовлетворение их потребностей.
связанных с оценкой. самореализацией и необходимостью быть членом определенной социальной группы. 1. Тактика удовлетворения социальньи потребностей основывается на предоставлении людям возможности и времени длл встреч с коллегамн, а также на том, чтобы обеспечить место для таких встреч.
Неформальные и легкие в использовании средства общения (например, электронная почта) с этих позиций представляют исключительную ценность. 2. Для удовлетворения потребности в оценке крайне важно дать понять людям, насколько важна их роль в организации. Открытое признание их достижений — наиболее простой и эффективный способ >довлстворспия этой потребности. Кроме того, люди должны чувствовать, что их работа оплачивается иа должном уровне, который определяется их знаниями и опытом. гк Чтобы удовлетворить потребности персонала в самореализации важно предоставить каждому сотруднику определенный уровень ответственности за сделанную ра. боту.
Это достигается путем поручения им достаточно трудных задач (но ни в коем случае не невыполнимых), а также проведения обучения, в процессе которого могут развиваться их навыки. рассматривая мотивацию с психологической точки зрения, автор статьи (28] выделяет три типа профессионалов. 1. Люди с кглеэей о)>иснэюцией, получающие достаточно мотивации от работы, которую выполняют. К этому типу относлтся "технари", мотивация которых вызвана интеллектуальными задачами по разработке программного обеспечения. 22.
Управление персоналом 455 2. Люди с огмооркеязюкией, мотивация которых основана на личном успехе и признании, Они заинтересованы в разработке программного обеспечения, преследуя при этом личные интересы. 3. Люди с внешней ериеишлккей, мотивация которых требует присутствия и деятельности сотрудников. Так как в наше время создание программ становится все более ориентированным на пользователя, такие люди все чаще вовлекаются в разработку программного обеспечения. Люди с внешней ориентацией предпочитают работать в коллективе, тогда как сотрудники с самоориентацией и целевой ориентацией стремятся к работе в одиночку.
Женщины принадлежат к типу людей с внешней ориентацией чаще, чем мужчины. Они также лучше действуют в качестве распространителей информации. Мотивация каждого индивидуума включает в себя все перечисленные элементы, хотя в определенный период времени преобладает только одни тип мотивации. Никто не угвер. ждает, что личные свойства характера любого индивидуума являются постоянными. Человеку свойственно меняться. Например, у "технарей", которые не удовлетворены оплатой своего труда, может произойти переоценка ценностей, гюсле чего личные интересы станут для них выше заинтересованности в решении технических проблем.
Пирамида мотивации Маслова, бесспорно, хороша, однако имеет недостаток; в ес основе лежит исключительно личностная мотивация. Здесь не уделяется достаточно анима. ния тому факту, что люди чувствуют себя частью организации, профессиональной группы и в большинстве своем частью какой-либо культуры. Следовательно, в мотивации зздейст. вованы не только личные интересы, но и интересы этих расширенных групп. Членство в сплоченной группе является чрезвычайно высокой мотивацией для многих. Люди, вы.
полняющие более простые задания, часто любят ходить на работу только потому, что им нравятся сотрудники, с которыми они работают, и задания, которые они вьаолняют. 22.2. Групповая работа Основная часть профессионального программного обеспечения разрабатывается ко.
мандами программистов (от двух и до нескольких сотен человек). Но, поскольку едва ли лто.то способен эффективно работать над одной задачей в такой большой команде, эти команды делятся еще и на подгруппы. Каждая подгруппа отвечает за определенную часть проекта и работает над одной подсистемой. При грамотном подборе группа состоит не более чем из восьми человек.
В группах небольшого размера легче снизить риск возникновения проблем во взаимоотношениях между членами группы. Каждая группа должна быль обеспечена круглым столом для проведения встреч. Кроме того, члены группы имеют возможность встречаться в офисах. Для таких групп нет необходимости применять сложные структуры коммуникации. Организация команды. которая могла бы эффективно работать над программой„является достаточно сложной задачей для менеджера.
Необходимо, чтобы в команде было равное соотношение технических навыков, опыта и выражения индивидуальности. Должен отметить, что хорошо функционирующая команда — это нечто большее, чем простой набор людей с необходимым соотношением навыков. В хорошей команде присутствует дух товарищества, который мотивирует сотрудников через успехи всей команды, включая н достижение собственных целей.
Поэтому менеджеры должны стимулировать деятельность, направленную непосредственно на "строительство команды", чтобы содействовать формированию чувства преданности ее интересам. 456 Часть ЪЧ. Управление Ниже перечислены четыре основных фактора, которые в той или иной степени влияют на групповую работу. Е Состав камппды. Коианда должна иметь правильное соотношение навыков, опыта и личностных качеств. 2.
Сялпченяпсэгь кпнпндьс Члены рабочей группы должны воспринимать себя как единую команду, а не как простую совокупность индивидуумов, работающих над одной проблемой. 3. Ойяспипп компндв Между членами коианды должны быть дружеские отношения. 4. 0(>гпкпзпция кпнпндьь Необхолимо организовать команду таким образом, чтобы ка. ждый чувствовал свою ценность и был удовлетворен своей ролью. 22.2.1. Создание команды В начале практической деятельности для большинства специалистов по программному обеспечению основным мотивационным фактором служит работа. Поэтому в группы по разработке ПО часто включены люди, имеющие собственные соображения насчет того, как должны решаться задачи технического плана.