Софтуерни технологии


ОРГАНИЗАЦИОННО УПРАВЛЕНИЕ



страница11/18
Дата23.07.2016
Размер3.19 Mb.
#2714
ТипАнализ
1   ...   7   8   9   10   11   12   13   14   ...   18

9. ОРГАНИЗАЦИОННО УПРАВЛЕНИЕ


Литература

  1. Schulmeyer G.G. Zero Defect Software. New York, McGraw-Hill, 1990.

  2. Humphrey W.S. Characterizing the Software Process: A Maturity Framework. IEEE Software,
    Marchl988,p.73-79.

  3. Humphrey W.S. (ed.). Managing the Software Process. SEI (USA), Addison-Wesley,New York,

1989, 489 pp.

  1. Paulk M. C., Weber C.V, Garcia S.M., Chrissis M.B., Bush M., Key Practices of the Capability
    Maturity Model for Software, Version 1.1, TR CMU/SEI-93-TR-025, Software Engineering
    Institute (USA), Carnegie Mellon University, Pittsburgh, 1993.

  2. Jones C. Assessment and Control ofSoftware Risks, Prentice-Hall, Englewood Cliffs, 1994.




  1. BOOTSTRAP Team, „BOOTSTRAP: Europe's Assessment Method", IEEE Software, July
    1993, pp. 93—95.

  2. Brown B.J., Assurance ofSoftware Quality, SEI Curriculum Module SEI-CM-7-1.1, Carnegie
    Mellon University, Software Engineering Institute, 1987.

  3. Jones C., Applied Software Measurement, McGraw-Hill, New York, 1997.

110

9.1.Bъведение

Според Б. Боем целта на софтуерните технологии е осигуряване на ефек-


тивен процес на разработване на висококачествен софтуер. Основна тех-
ника за преодоляване на стихийността в създаването на ПП е мениджърският
подход. Разглеждането му е актуално заради все още тревожните данни за
незавършване (изобщо или в срок) на софтуерните проекти, на превишаване
на предварително определените ресурси за разработване или за разпростра-
нение на ПП, които затрудняват потребителите със сложността и ненадежд-
ното си функциониране. По публикувани данни през 1998 г. 26% от софтуер-
ните проекти са преустановени, а 46% са завършили с превишаване на плани-
раните ресурси за разработване.

За съжаление не е възможно автоматично пренасяне в софтуерното произ-


водство на полезни мениджърски практики от материалното производство или
други области поради:

  • същността на софтуера. Програмните продукти не са чисто материални,
    а са продукт на интелектуални усилия, професионални умения, прилагане на
    научни знания и др.

  • уникалността на всеки софтуерен проект, която се обуславя от естест-
    вото и сложността на конкретно решавания проблем. Затова могат да се опре-
    делят само най-общите рамки, а реалното протичане на проекта се управлява с
    избирани според случая (ad hoc) техники. Опитът от предишни проекти е поле-
    зен, но не може да бъде директно използван.

9.2. Основни понятия

Извършваните в една организация дейности могат да се разделят в две гру-


пи: продължителни, повтарящи се, стандартни и рутинни дейности или еднок-
ратни за създаване на нещо ново, уникално. Вторият вид дейности се реализи-
рат чрез проекти. Всеки проект има определена цел, която трябва да се пос-
тигне с крайни и ограничени ресурси (време, финансови средства, екип от спе-
циалисти). Обикновено изискванията се уточняват постепенно и поради уни-

111


калността на проекта участниците в него могат да разчитат на опита си, но тряб-
ва да са в състояние да разрешават и нововъзникнали проблеми, които е трудно
да се предвидят отнапред. Целта на управлението на проекти е те да се осъ-
ществяват систематично и контролирано чрез постъпкови процедури. Ефек-
тивни проекти са тези, които водят до повишаване на производителността на
участниците и осигуряване на качествени крайни продукти и услуги. Резулта-
тите от тях са постигнати в определен срок и с оптимално използване на ресур-
сите. Предпоставки за ефективни проекти са [1]:

  • създаване на благоприятна среда за работа (техническа осигуреност,
    подходящ психологически климат, ергономичност);

  • формулиране на ясни, точни и непротиворечиви изисквания за работа-
    та, която трябва да се свърши;

  • управляване на проекта чрез планиране и контрол;

  • прилагане на ефективни, проверени (теоретично или експериментално)
    и стандартизирани процедури;

  • осигуряване на адекватни ресурси, определени след предварителна оцен-
    ка и прогнозиране;

  • мотивиране на участниците в проекта. Задачите, които се възлагат, да
    бъдат точно определени, съобразени със знанията, квалификацията и опита на
    конкретния изпълнител. Да има свободни и добре организирани комуникации,
    регламентирани поощрения и възможности за личностна изява.

9.3. Управление на софтуерни проекти

9.3.1. Методология на управлението на проектц

Управлението на софтуерните проекти може да се декомпозира на управле-


ние на четири основни обекта (т. нар. four P's: people, product, process and project).

Управлението на човешките ресурси е преди всичко признаване на роля-


та на човешкия фактор в разработването и използването на софтуера (вж. глава
14.). С развитието на софтуерната психология в последните години стандартна-
та за софтуерните системи двойка „хардуер-софтуер" се разшири с трети еле-
мент, наречен peopleware. От гледна точка на мениджмънта това са дейностите
по подновяване и подбор на кадрите, повишаване на квалификацията, атести-
ране и професионално развитие, организация на работата и на работното мяс-
то, обучение за работа в екип и т. н.

Управлението на продукта е преди всичко определяне на предназначение-


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

Управлението на процеса на разработване включва планиране и ефек-


тивно осъществяване на всички дейности. В зависимост от предназначението,
обхвата и начина на организирането им дейностите могат да бъдат основни
(проектиране, програмиране, тестване) или допълнителни (осигуряване на ка-
чеството, управление на софтуерните конфигурации и измерване). Избраният
в софтуерната организация модел на жизнения цикъл определя осъществява-
нето на основните дейности, общите характеристики на които се настройват за
отразяване на специфичните особености на всеки проект. Глобалните дейности

112


са едни и същи за всички проекти и за организирането им могат да се прилагат
общоприети стандартни методики.

Основната цел на управлението на проекта е да се държат нещата под кон-


трол. Всеки проект има определена начална и крайна дата, цел и обхват, опреде-
лено и документирано съотношение цени-ползи, добре дефиниран краен резул-
тат, ясни и точни критерии за завършване. Управлението на проекти е в съответ-
ствие с избрана методология — съвкупност от принципи, подходи, методи, про-
цедури, правила и указания, изясняващи как се осъществява определен проект и
какви са взаимоотношенията му с други обекти и субекти. Методологията е фор-
мална,
ако е представена в писмен вид и се прилага систематично в дадена орга-
низация. Преимуществата на прилагане на формална методология са, че тя:

  • подпомага избирането на проекти;

  • позволява разпределение на ресурсите и контролирането на риска;

  • управлява проекта чрез дефиниране на контролни точки;

  • улеснява комуникациите между участниците чрез стандартизирани про-
    цедури и терминология;

  • подпомага счетоводно-финансовите дейности;

  • осигурява създаване на необходимата документация по време на проек-
    та, а не след завършването му;

  • подобрява качеството на създавания ПП чрез специфициране на про-
    верки и задължително спазване на определени стандарти;

  • намалява разходите за разработване чрез стандартизиране на основни-
    те процедури;

  • улеснява натрупването на статистическа информация, която да се из-
    ползва за прогнозиране на разходите и усъвършенстване на някои процедури
    при реализация на следващи проекти;

  • дава възможност за сравнителен анализ на различни проекти;

  • осигурява систематичност и управляемост на проектите.

9.3.2. Управленска структура

Традиционната управленска структура е йерархична, като нивата на йе-


рархията, видът и броят на ръководителите на всяко ниво зависят от големината
на софтуерната фирма и размаха на дейностите в нея. В общия случай се разг-
раничават две нива: ръководители на фирмата (senior managers) и ръководите-
ли на проекти {project managers). Ръководителите на фирмата отговарят за:

  • определяне на дългосрочните и краткосрочни бизнеспрограми, т. е. кои
    проекти ще се осъществяват и при какви условия;

  • сключване на договори за разработване;

  • назначаване на ръководители на проекти;

  • ръководство на основни фирмени дейности, като фирмено планиране,
    маркетинг, научноизследователска и развойна дейност, подбор и развитие на
    кадрите и др.

Ръководителите на проекти отговарят за:

  • подготовката и съставянето на офертата за разработката;

  • оценка на стойността и продължителността на проекта и необходимите
    за осъществяването му ресурси;

113

  • сформиране на екип(и) за проекта и оценяване на работещите;

  • съставяне на планове (бюджет, индивидуални планове) и графици за

проекта;

— текущо управление на проекта (проследяване, отчитане в контролни

точки);

— представяне на проекта и развитието му пред външни или горестоящи



инстанции.

Практиката показва, че успехът на проекта зависи в голяма степен от ка-


чествата на ръководителя му. Затова са разработени и специални процедури за
подбор на ръководителите на проекти. Обикновено се предпочитат лица с ин-
форматично или бизнесобразование с допълнителна специализация в областта
на софтуерните технологии. Практическият опит в разработването на софтуер
е съществено предимство. Професионалните изисквания се допълват от изиск-
вания за лидерски качества, комуникационни умения и индивидуални характе-
ристики, като сговорчивост, способност за оценяване на нови идеи и създаване
на подходящ микроклимат в екипа и т. н. Личната мотивация за превръщане на
разработчик в ръководител на проект е освен по-високото заплащане приема-
нето на предизвикателствата и отговорностите на нов проект, издигане в йерар-
хията на софтуерната организация, чувството на удовлетворение от вземане на
решения, водещи до успешно завършване на проекта, и не на последно място
— упражняване на власт.

9.4. Планиране

Планирането обхваща дейностите по съставяне и проследяване на всички


видове планове, т. е. разработване на планове и процедури за реализирането
им, възлагане на задачи и проверка на изпълнението им. Планирането е основ-
на управленска функция и не е предсказание, какво ще стане, а какво бихме
искали да стане. Ръководството на фирмата определя дали и какво да се плани-
ра. Основни възражения срещу планирането са, че отнема много време, че е
скъпо и ограничава гъвкавостта; че се основава на предположения, които може
и да не са верни, че потиска творческия подход и доколкото всеки проект е
уникален, не може да се използва рационално опитът от предишни проекти. В
подкрепа на планирането се посочва, че то:

  • подпомага осъществяването на интегрирани, целенасочени действия и
    резултати;

  • служи за координация и контрол на всички дейности;

  • увеличава ефективността, като предотвратява повторно извършване на
    определени действия;

  • осигурява ,прозрачност" на управлението на проектите.

В зависимост от целите и предназначението си плановете се делят на общи
и конкретни.

Общите планове се отнасят до софтуерната организация като цяло и са
целева програма, стратегически и тактически план.

Целевата програма (The Mission) отговаря на въпроса, защо съществува
софтуерната организация. Най-често целта е разработване на софтуер, който
да се разпространява с цел да се реализира печалба. Но съществуват и софту-

114


ерни организации с идеална цел (например софтуерни отдели на научни инсти-
тути), които разработват софтуер за популяризиране на нови научни постиже-
ния, създаване Ha freeware или shareware за издигане на авторитета на съответ-
ния научен институт и др. Специални са целите на разработване на софтуер за
военните, за космическите изследвания и др.

Стратегическият план отговаря на въпроса, какво да създава софтуер-
ната организация. Този план се създава за относително по-дълъг период от вре-
ме (обикновено за 5 години) и определя в какви приложни области ще бъдат
разработваните ПП, дали и как ще се разширява дейността на организацията,
какви ще са нейните основни и странични дейности (например съпровождане,
сертифициране, документиране на софтуер и др.).

Тактическият план отговаря на въпроса, как ще се осъществяват плани-
раните софтуерни проекти (в каква последователност, с какви ресурси, в каква
среда на разработване). Той обикновено се съставя за една календарна година.

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

Съществен конкретен план е бюджетът, описващ разпределението на средст-


вата за разработване. Съставянето на бюджета се подчинява на следните правила:

  • съставя се от ръководителя на проекта със съдействието на финансист,
    запознат с действащата нормативна уредба;

  • представлява писмен документ, който се утвърждава от ръководството
    на фирмата и спазването му е задължително. Препоръчва се регламентирането
    на процедура за внасяне на изменения, защото реалните проекти понякога са
    толкова големи и сложни, че е невъзможно в началото на проекта да се извърши
    прецизно определяне и разпределяне на финансовите средства.

  • бюджетът описва необходимите средства и начина на осигуряването
    им. Разходите са описани по видове, наречени пера. Основни пера са: за трудо-
    ви възнаграждения (заедно с дължимите социални и здравни осигуровки и да-
    нъци), за закупуване или наемане на техника, за поддържане на средата за раз-
    работване (наем за помещенията, ток, парно, вода, чистене и поддръжка), за
    консумативи (дискети, хартия, тонер), за командировъчни (в случаите, в които
    възложителят или внедрителят са в друго населено място), за допълнителни ус-
    луги (въвеждане на начални данни, съставяне, превод и/или редактиране на до-
    кументация, наемане на външни експерти). Обикновено средствата са „бояди-
    сани" и не се допуска безконтролното им прехвърляне от едно перо в друго.

  • ако проектът се осъществява в условия на инфлация и ще продължи
    повече от година, се препоръчва съставянето му в някакви условни единици,
    които са сравнително постоянни или добре регламентирани — например в до-
    лари или евро, в минимални заплати и т. н.

  • препоръчва се да се предвидят контролни точки от проекта, в които да
    се анализира изпълнението на бюджета и ако е необходимо, да се актуализира.

9.5. Анализ и управление на риска

Под риск се разбира потенциален проблем, който може да възникне и да


застраши успешното завършване на проекта. Всеки риск се характеризира с

115


неопределеност (може да се появи или не) и вредност ■— винаги има нежела-
ни последици или загуби. В зависимост от това, какво засягат, рисковете се
делят на рискове на проекта, технически или бизнесрискове. В [3] е дадена и
класификация на рисковете в зависимост от степента на прогнозируемост. Очак-
вани са рисковете, които могат да се идентифицират чрез анализ на проекта;
предвидими са рисковете, които могат да се опишат въз основа на опита от
предишни проекти, и непредвидими са рисковете, които просто се случват.

Основната идея на управлението на риска е да се анализират някои от най-


вероятните рискови ситуации и да се направят опити за избягването им или за
намаляване на последиците от тях. Допълнителните разходи за изследване на
рисковите фактори се компенсират с предотвратяването на значителните щети,
които биха се получили, ако рискът е действителен. Управлението на риска се
осъществява в три стъпки: идентифициране, оценяване и ограничаване на въз-
можните последици. За всеки риск тези стъпки са последователни, но дейности-
те за управление на различните рискове се преплитат (например някои рискове
се контролират, докато нови рискове се идентифицират и оценяват).

Идентифицирането на риска е систематичен опит да се установи какво мо-
же да застраши успешната реализация на проекта. Рисковите фактори могат да се
разделят на две групи: общи за всички софтуерни проекти и специфични за даден
проект. Основна техника за идентифициране на риска е съставянето на въпросни-
ци, свързани с характеристики на основните застрашени обекти. Например за обекта
проект въпросите се отнасят до характеристиките обхват, размер и продължител-
ност; за обекта продукт — спецификации, сложност, уникалност и специални изис-
квания; за обекта персонал — организация, състав и мотивираност на работната
група, качества на ръководителя на проекта; за обекта процес на разработване —
процедура за избор на проекти, методология и стандарти за работа и др. За всеки
риск се определя и степента му на влияние върху проекта.

Оценяване на риска — данните за риска се систематизират и се преобра-
зуват в информация за вземане на решения. За всеки риск се определя вероят-
ността и последиците от риска [3], въз основа на които се определя и приорите-
тът му.

Предотвратяване на последиците от риска изисква планиране на уп-
равлението на риска — определянето на рисковете с най-висок приоритет, ко-
ито ще се наблюдават, и свързаните с тях действия за предотвратяването им. По
време на разработването се следят идентифицираните рискови фактори и се
натрупва информация за всеки от тях, за да се установи дали и как се променя
вероятността за настъпване на рисковата ситуация.

Управлението на риска е свързано с допълнителни ресурси, но някои проб-


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

9.6. Организация на софтуерните проекти

След изясняване на основните параметри на проекта — съдържание, тру-


доемкост, продължителност и рискове — работата по проекта трябва да се op-

116


ганизира така, че той да се вмести в определените срок и ресурси [4]. За тази
цел се съставя и се следи изпълнението на календарен план-график, представящ
разработването на ПП във времето.

Съставянето на графици преминава през следните етапи:



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

  2. Определяне на зависимостите между задачите. Някои задачи могат да се
    изпълняват само последователно, защото междинният продукт, създаван от ед-
    на задача, е необходим за започването на друга задача. Други задачи са незави-
    сими и могат да се изпълняват паралелно, т. е. едновременно.

  3. Определяне на трудоемкостта на всяка задача в избрана мерна единица
    (например в човекодни) и дефиниране на начална и крайна дата за извършване-
    то й.

  4. Разпределяне на работата между членовете на групата така, че във всеки
    момент ресурсите за извършване на провеждащите се в този момент задачи да
    не надвишават отпуснатите за проекта ресурси.

  5. Определяне на персонални отговорници за всяка задача.

  6. Определяне на получаваните изходи от всяка задача.

  7. Дефиниране на контролни точки, при достигането на които ще се анали-
    зират и оценяват получените междинни продукти.

Като пример ще разгледаме съставянето на график за дадена фаза на соф-
туерен проект. Нека за тази фаза да са определени три стандартни задачи, изис-
кващи едни и същи умения и квалификация на разработчиците. Въз основа на
информация от предишни проекти е определена трудоемкостта на всяка от за-
дачите. Данните от предишни проекти показват, че около 60% от усилията в
тази фаза са продуктивни. Следователно от 8 работни часа само 5 ще са про-
дуктивни.

Тези предварителни оценки са представени в таблицата на фиг. 9.1.



Задачи

Трудоемкост (човекочаса)

Задача 1

100

Задача 2

150

Задача 3

150

Фиг. 9.1.

Ръководителят на проекта оценява особеностите на проекта и планира след-


ната трудоемкост на задачите:

Алализирайки същността на задачите, ръководителят на проекта установя-


ва, че първите две задачи могат да се изпълняват паралелно, но третата може да
започне едва след завършването на първите две.

Задача

Трудоемкост (човекочаса)

Трудоемкост (човекодни)

Задача 1

90

18

Задача 2

165

33

Задача 3

170

34



Сподели с приятели:
1   ...   7   8   9   10   11   12   13   14   ...   18




©obuch.info 2024
отнасят до администрацията

    Начална страница