managing construction

49
Методология на Методология на разработката разработката Управление на процеса на Управление на процеса на конструиране на кода конструиране на кода

Upload: cveta

Post on 27-May-2015

441 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Managing Construction

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

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

Page 2: Managing Construction

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

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

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

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

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

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

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

Page 3: Managing Construction

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

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

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

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

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

Page 4: Managing Construction

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

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

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

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

Page 5: Managing Construction

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

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

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

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

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

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

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

Page 6: Managing Construction

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

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

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

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

Page 7: Managing Construction

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

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

• Change ControlChange Control

• Configuration ManagementConfiguration Management

• SCM – Software Configuration ManagementSCM – Software Configuration Management

Page 8: Managing Construction

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

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

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

Page 9: Managing Construction

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

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

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

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

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

Page 10: Managing Construction

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

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

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

Page 11: Managing Construction

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

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

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

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

Page 12: Managing Construction

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

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

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

Page 13: Managing Construction

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

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

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

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

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

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

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

Page 14: Managing Construction

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

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

Page 15: Managing Construction

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

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

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

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

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

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

Page 16: Managing Construction

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

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

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

Page 17: Managing Construction

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

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

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

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

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

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

Page 18: Managing Construction

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

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

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

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

-19%-19% 22%22%

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

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

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

Page 19: Managing Construction

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

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

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

Page 20: Managing Construction

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

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

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

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

Page 21: Managing Construction

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

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

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

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

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

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

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

Page 22: Managing Construction

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

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

Page 23: Managing Construction

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

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

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

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

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

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

Page 24: Managing Construction

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

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

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

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

• MTBFMTBF

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

Page 25: Managing Construction

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

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

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

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

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

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

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

Page 26: Managing Construction

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

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

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

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

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

Page 27: Managing Construction

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

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

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

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

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

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

Page 28: Managing Construction

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

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

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

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

Page 29: Managing Construction

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

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

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

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

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

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

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

Page 30: Managing Construction

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

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

Page 31: Managing Construction

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

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

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

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

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

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

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

11

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

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

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

Page 32: Managing Construction

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

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

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

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

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

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

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

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

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

Page 33: Managing Construction

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

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

Page 34: Managing Construction

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

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

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

Page 35: Managing Construction

ИзводИзвод

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

Page 36: Managing Construction

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

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

Page 37: Managing Construction

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

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

Page 38: Managing Construction

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

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

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

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

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

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

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

Page 39: Managing Construction

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

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

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

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

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

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

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

Page 40: Managing Construction

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

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

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

Page 41: Managing Construction

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

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

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

Page 42: Managing Construction

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

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

Page 43: Managing Construction

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

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

ПространствоПространство 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%

Page 44: Managing Construction

ИзводИзвод

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

Page 45: Managing Construction

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

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

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

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

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

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

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

Page 46: Managing Construction

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

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

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

Page 47: Managing Construction

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

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

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

Page 48: Managing Construction

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

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

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

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

Page 49: Managing Construction

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