managing construction
Post on 27-May-2015
440 Views
Preview:
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