managing construction

Post on 27-May-2015

441 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Методология на Методология на разработкатаразработката

Управление на процеса на конструиране Управление на процеса на конструиране на кодана кода

План на тематаПлан на темата

• Осигуряване качество на кодаОсигуряване качество на кода

• Управление на променитеУправление на промените

• Изграждане на графикИзграждане на график

• Статистика за проектаСтатистика за проекта

• Отношение към хоратаОтношение към хората

• Управление на по-висшестоящитеУправление на по-висшестоящите

Осигуряване качество на Осигуряване качество на кодакода

• Поне двама души работят по всяка отделна Поне двама души работят по всяка отделна част в проектачаст в проекта

• Разработчиците преглеждат взаимно кода сиРазработчиците преглеждат взаимно кода си

• Кодът се подписваКодът се подписва

• Добрия код се показва на всичкиДобрия код се показва на всички

Осигуряване качество на Осигуряване качество на кодакода

• Трябва да е ясно, че кодът принадлежи на Трябва да е ясно, че кодът принадлежи на всички разработчицивсички разработчици

• Добрият код носи наградиДобрият код носи награди

• Съществува единен стандартСъществува единен стандарт

План на тематаПлан на темата

• Осигуряване качество на кодаОсигуряване качество на кода

• Управление на променитеУправление на промените

• Изграждане на графикИзграждане на график

• Статистика за проектаСтатистика за проекта

• Отношение към хоратаОтношение към хората

• Управление на по-висшестоящитеУправление на по-висшестоящите

Какво е “Управление на Какво е “Управление на промените”промените”

• Оценка на предложените промени в систематаОценка на предложените промени в системата

• Следене на извършени в миналото промениСледене на извършени в миналото промени

• Възможност, системата да бъде върната във Възможност, системата да бъде върната във състоянието, в което била преди дадена състоянието, в което била преди дадена промянапромяна

НазванияНазвания

Концепцията за управление наКонцепцията за управление на променитепромените е е известна под няколко имена:известна под няколко имена:

• Change ControlChange Control

• Configuration ManagementConfiguration Management

• SCM – Software Configuration ManagementSCM – Software Configuration Management

Управление на променитеУправление на промените

• Над 30% от програмистите не разбират Над 30% от програмистите не разбират концепцията за Управление на променитеконцепцията за Управление на промените

• Под 20% от компанните, разработващи Под 20% от компанните, разработващи софтуер имат адекватна система за софтуер имат адекватна система за Управление на променитеУправление на промените

Изисквания и промени в Изисквания и промени в дизайнадизайна

• Трябва да има единна процедура за контрол Трябва да има единна процедура за контрол на променитена промените

• Добре е промените да се организират в групиДобре е промените да се организират в групи

• Всяка промяна има цена – тя трябва да се Всяка промяна има цена – тя трябва да се оцени правилнооцени правилно

• Трябва да се внимава, когато възникне нужда Трябва да се внимава, когато възникне нужда от много промениот много промени

Изисквания и промени в Изисквания и промени в дизайнадизайна

• Добре е да се организира Група за контрол на Добре е да се организира Група за контрол на променитепромените

• Трябва да се внимава с бюрокрацията около Трябва да се внимава с бюрокрацията около променитепромените

Система за контрол на Система за контрол на версиите версиите

• Няколко души могат да работят върху едни и Няколко души могат да работят върху едни и същи части на систематасъщи части на системата

• Всеки разработчик лесно актуализира копието, Всеки разработчик лесно актуализира копието, върху което работивърху което работи

• Всяка версия, на всеки файл е достъпна по Всяка версия, на всеки файл е достъпна по всяко времевсяко време

Система за контрол на Система за контрол на версиите версиите

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

• Не е нужно разработчиците да се грижат за Не е нужно разработчиците да се грижат за backupbackup-и-и

План на тематаПлан на темата

• Осигуряване качество на кодаОсигуряване качество на кода

• Управление на променитеУправление на промените

• Изграждане на графикИзграждане на график

• Статистика за проектаСтатистика за проекта

• Отношение към хоратаОтношение към хората

• Управление на по-висшестоящитеУправление на по-висшестоящите

Планиране и графици Планиране и графици

• Статистиката показва, че всеки софтуерен Статистиката показва, че всеки софтуерен проект закъснява средно с около година от проект закъснява средно с около година от планирания график и надхвърля бюджета си с планирания график и надхвърля бюджета си с над 100%над 100%

Как да планираме - подходиКак да планираме - подходи

• Софтуер за планиранеСофтуер за планиране

• Алгоритъм за планиранеАлгоритъм за планиране

• Външни консултантиВъншни консултанти

• Оценка на компонентите и обединяване на Оценка на компонентите и обединяване на резултатарезултата

• Индивидуална оценка и обобщениеИндивидуална оценка и обобщение

Как да планираме - подходиКак да планираме - подходи

• Опит от предишни проектиОпит от предишни проекти

• Обновяване на вече използвани моделиОбновяване на вече използвани модели

Как да планираме - насокиКак да планираме - насоки

• Ясни очакванияЯсни очаквания

• Планиране на време за планиранеПланиране на време за планиране

• Точни очаквания за софтуераТочни очаквания за софтуера

• Оценка в детайлностОценка в детайлност

• Използване на разнородни техники за оценкаИзползване на разнородни техники за оценка

Фактори, влияещи върху Фактори, влияещи върху планирането и оценяванетопланирането и оценяването

ФакторФактор ++ --

Качество на програмиститеКачество на програмистите -24%-24% 34%34%

Опит на екипа в дадената Опит на екипа в дадената областобласт

-19%-19% 22%22%

Сработеност на екипаСработеност на екипа -10%-10% 11%11%

Текучество на персоналаТекучество на персонала -19%-19% 20%20%

Документация на проектаДокументация на проекта -19%-19% 23%23%

Ако изостанем от планаАко изостанем от плана

• Какво да правим, ако Какво да правим, ако изостанем от графика?изостанем от графика?

• Статистиката показва, че Статистиката показва, че плановете подценяват плановете подценяват нужното време средно с нужното време средно с 2020÷÷30%30%

Ако изостанем от планаАко изостанем от плана

• Компенсация на закъснениетоКомпенсация на закъснението

• Разширяване на екипаРазширяване на екипа

• Съкращаване на изискваниятаСъкращаване на изискванията

План на тематаПлан на темата

• Осигуряване качество на кодаОсигуряване качество на кода

• Управление на променитеУправление на промените

• Изграждане на графикИзграждане на график

• Статистика за проектаСтатистика за проекта

• Отношение към хоратаОтношение към хората

• Управление на по-висшестоящитеУправление на по-висшестоящите

Статистика за проектаСтатистика за проекта

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

Измерване големината на Измерване големината на проектапроекта

• Редове кодРедове код

• Редове коментариРедове коментари

• Брой класове и методиБрой класове и методи

• Брой декларацииБрой декларации

• Брой празни редовеБрой празни редове

Оценка на качествотоОценка на качеството

• Общ брой грешкиОбщ брой грешки

• Брой грешки на клас или методБрой грешки на клас или метод

• Брой грешки на 1 000 реда кодБрой грешки на 1 000 реда код

• MTBFMTBF

• Грешки докладвани от компилатораГрешки докладвани от компилатора

ПродуктивностПродуктивност

• Часове работа върху проектаЧасове работа върху проекта

• Часове работа върху всеки клас/методЧасове работа върху всеки клас/метод

• Брой преправяния на методБрой преправяния на метод

• Разходи по проектаРазходи по проекта

• Цена на ред кодЦена на ред код

• Цена за поправяне на грешкаЦена за поправяне на грешка

Леснота на поддръжкаЛеснота на поддръжка

• Брой Брой publicpublic променливи за всеки клас променливи за всеки клас

• Брой параметри предавани на всеки методБрой параметри предавани на всеки метод

• Брой декларации за клас/методБрой декларации за клас/метод

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

Проследяване на грешкитеПроследяване на грешките

• Тежест на всяка грешкаТежест на всяка грешка

• Място на възникване на грешка (клас, метод)Място на възникване на грешка (клас, метод)

• Произход на грешката (код, дизайн, изисквания Произход на грешката (код, дизайн, изисквания и т.н.)и т.н.)

• Програмист, отговорен за грешкатаПрограмист, отговорен за грешката

• Брой грешки, възникващи от корекция на Брой грешки, възникващи от корекция на грешки и т.н.грешки и т.н.

Създаване на статистика - Създаване на статистика - насокинасоки

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

• Статистиката се прави с целСтатистиката се прави с цел

• Пикове в статистическите параметри за един Пикове в статистическите параметри за един метод или клас, обикновено показват проблем метод или клас, обикновено показват проблем в реализацията мув реализацията му

План на тематаПлан на темата

• Осигуряване качество на кодаОсигуряване качество на кода

• Управление на променитеУправление на промените

• Изграждане на графикИзграждане на график

• Статистика за проектаСтатистика за проекта

• Отношение към хоратаОтношение към хората

• Управление на по-висшестоящитеУправление на по-висшестоящите

Отношение към хоратаОтношение към хората

• Как програмистите прекарват времето си?Как програмистите прекарват времето си?

Разпределение на времето в Разпределение на времето в процентипроценти

ДейностДейност КодКод По По работаработа

ЛичноЛично Сре-Сре-щищи

ОбучОбучениеение

ПощаПоща Техн. Техн. ДокумеДокументациянтация

ДискусияДискусия 44 1717 77 33

Разгвор с Разгвор с мениджърмениджър

11

ТелефонТелефон 22 11

ЧетенеЧетене 1414 22 22

ПисанеПисане 1313 11

Разпределение на времето в Разпределение на времето в процентипроценти

ДейностДейност КодКод По По работаработа

ЛичноЛично Сре-Сре-щищи

ОбучОбучениеение

ПощаПоща Техн. Техн. ДокумеДокументациянтация

НавънНавън 44 11 44 66

ХоденеХодене 22 22 11 11

ДругиДруги 22 33 33 11

ОбщоОбщо 3535 2929 1313 77 66 55 22

ЛюбопитноЛюбопитно

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

ПроизводителностПроизводителност

• Мащабни изследвания в разработката на Мащабни изследвания в разработката на софтуер показват, че 80% от работата се софтуер показват, че 80% от работата се извършва от 20% от работещитете по проекта извършва от 20% от работещитете по проекта програмистипрограмисти

• Тези 20% са най-квалифицираните служители Тези 20% са най-квалифицираните служители участващи в проектаучастващи в проекта

ИзводИзвод

• По-добре да се наемат малко, но високо По-добре да се наемат малко, но високо квалифицирани хора, вместо много с по-ниска квалифицирани хора, вместо много с по-ниска квалификацияквалификация

Друг факториДруг фактори

• Програмистите са силно религиозниПрограмистите са силно религиозни

Друг факториДруг фактори

• Програмистите са силно религиозни. Сред тях Програмистите са силно религиозни. Сред тях непрекъснато възникват спорове на непрекъснато възникват спорове на религиозна основа. Например...религиозна основа. Например...

Спорни теми...Спорни теми...

• Език за програмиранеЕзик за програмиране

• Отмествания на кодаОтмествания на кода

• Място на скобитеМясто на скобите

• Избор на Избор на IDEIDE

• Стил на коментаритеСтил на коментарите

• Ефикасност срещу лесна четимостЕфикасност срещу лесна четимост

...и още спорни теми...и още спорни теми

• МетодологияМетодология

• Използвани инструментиИзползвани инструменти

• Конвенции за именатаКонвенции за имената

• Употреба на Употреба на gotogoto

• Глобални променливиГлобални променливи

• Статистика за продуктивносттаСтатистика за продуктивността

Опасна зона!Опасна зона!

• Опитите за контрол над програмистите по тези Опитите за контрол над програмистите по тези теми трябва да са много внимателнитеми трябва да са много внимателни

• По добре е да се правят “предложения”, По добре е да се правят “предложения”, вместо да се налагат “правила”вместо да се налагат “правила”

Опасна зона!Опасна зона!

• По-добре програмистите да се разберат сами. По-добре програмистите да се разберат сами. Дори собствено измисления стандарт е по-Дори собствено измисления стандарт е по-добър от липсата на какъвто и да е стандартдобър от липсата на какъвто и да е стандарт

• Опитите за насилствено налагане на решния Опитите за насилствено налагане на решния по темите водят единствено до проблеми в по темите водят единствено до проблеми в проектапроекта

Условия за работаУсловия за работа

• Проведени изследвания показват, че Проведени изследвания показват, че разработчиците, които присъстват в разработчиците, които присъстват в TOP 25TOP 25% % по продуктивност имат по-големи, спокойни и по продуктивност имат по-големи, спокойни и комфортни работни местакомфортни работни места

Влияние на работното място Влияние на работното място върху качеството на работавърху качеството на работа

УсловияУсловия Най-добриНай-добри Най-лошиНай-лоши

ПространствоПространство 78 кв. м.78 кв. м. 46 кв. м.46 кв. м.

Тихо ли е работното място?Тихо ли е работното място? 57%57% 29%29%

Спокойно ли е?Спокойно ли е? 62%62% 19%19%

Може ли да се изключва телфона?Може ли да се изключва телфона? 52%52% 10%10%

Може ли да се пренасочва?Може ли да се пренасочва? 76%76% 19%19%

Има ли много безмислени прекъсвания от Има ли много безмислени прекъсвания от колеги?колеги?

38%38% 76%76%

Работното място кара ли служетля да се Работното място кара ли служетля да се чувства “оценен”?чувства “оценен”?

57%57% 29%29%

ИзводИзвод

• Подобряването на работното място на Подобряването на работното място на служителя увеличава неговата продуктивност с служителя увеличава неговата продуктивност с най-малко 100%най-малко 100%

План на тематаПлан на темата

• Осигуряване качество на кодаОсигуряване качество на кода

• Управление на променитеУправление на промените

• Изграждане на графикИзграждане на график

• Статистика за проектаСтатистика за проекта

• Отношение към хоратаОтношение към хората

• Управление на по-висшестоящитеУправление на по-висшестоящите

МениджъриМениджъри

• Технически грамотен мениджър е рядко Технически грамотен мениджър е рядко срещано явление.срещано явление.

• В стандартната ситуация, трябва да се развие В стандартната ситуация, трябва да се развие изкувство за “управление на мениджъра”изкувство за “управление на мениджъра”

Методи за управлениеМетоди за управление

• Решението се дава на малки порции, за да Решението се дава на малки порции, за да може мениджърът да го “открие” самможе мениджърът да го “открие” сам

• Мениджърът се обучава, как да се правят Мениджърът се обучава, как да се правят нещатанещата

Методи за управлениеМетоди за управление

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

• Грубата съпротива рядко води до добри Грубата съпротива рядко води до добри резултатирезултати

• Ако нищо не помогне, смяната на работата Ако нищо не помогне, смяната на работата винаги остава като възможноствинаги остава като възможност

Въпроси?Въпроси?

top related