Size Model история одного отдела by Sergey Ivanov Харьков 2011

advertisement
Size Model
история одного отдела
by Sergey Ivanov
Харьков 2011
Бывший бухгалтер
В IT c 2000 года
• 1С-ник – более 80 проектов
• Team Lead – 15 проектов
• PM – пока 1 проект
Имею маниакальное пристрастие
все детализировать, упрощать,
упорядочивать и обобщать.
• i.szerg
• i.szerg@gmail.com
Start
2
История одной болезни
• Обещали 402 часа
• Сделали за 705 часов
• 302 часа сверху
«оправдали» изменениями в
требованиях, хотя их было
не более 40 часов
3
Ситуация в палате
Проект
Проект 1
Проект 2
Проект 3
Проект 4
Оценка
Реально
Отклонение
EV
550
1800
1200
150
900
1600
2000
80
+350
-200
+800
-70
+64%
-11%
+67%
-47%
4
Криз
CMMI
«For example, in the Project
Planning process area, the
specific practice on
establishing estimates of
project attributes has a
discipline amplification for
software engineering that
mentions software size and
examples of size
measures.»
5
Что такое Size?
Часы?
Страницы?
Строки?
6
Вспомним школу
𝑇𝑖𝑚𝑒 ∙ 𝑉𝑒𝑙𝑜𝑐𝑖𝑡𝑦 = 𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒
7
Трудозатраты (Effort)
Х
8
Скорость (Velocity)
м3/день
Км/ч
Кг/мес
9
А size?
𝐸𝑓𝑓𝑜𝑟𝑡 ∙ 𝑉𝑒𝑙𝑜𝑐𝑖𝑡𝑦 = 𝑆𝑖𝑧𝑒
10
Объем (size)
11
Size vs Effort
12
Что такое Size?
CLOK
Module
Functional Point
WMFP
Component
Structure
13
Диагноз и лечение
Оценка работ исходя из функциональной спецификации
Любой девелопер должен иметь возможность оценить
работу
Результат должен быть стабильным
Оценка должна проводиться быстро
14
Поиск таблетки
Wideband
-Delphi
Function
Point
Estimating
Fuzzy
logic
Size Model
15
Function Point Estimating
Section
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
Control panel
Control panel
Control panel
DB Config Work
DB Config Work
DB Config Work
DB Config Work
Menu editor work
Menu editor work
Query Explorer Work
Screent tools work
Screent tools work
Screent tools work
Screent tools work
Screent tools work
Action
Add verification for mandatory fields
Create document using existing template
Create email message
Create Journal entry
Populate field on workflow
Refreshing list control, segment…
Set attribute to database
Set parameters and run query
Add link to the Control panel
Change Control panel view
Remove/Rename link from the Control panel
Add new Role to the database
Add/Modify Code group
Add/rename DB items
Reneme existing Role
Create or modify existing menu
Remove item from menu
Create/Modify query
Add new segment
Add/Modify view
Delete existing segment
Region add/modify
Rename existing segment
• Анализируем
имеющиеся
спецификации
• Составляем список
типовых операций
• Разделяем их на области
16
Wideband-Delphi
Section
BO Explorer tools
Action
Add verification for mandatory fields
Measurement
number of fields
BO Explorer tools
Create an Appointment
number of appointments
BO Explorer tools
Create CSV Report
number of output row data fields
BO Explorer tools
Create document using existing template number of merge fields
BO Explorer tools
Create email message
BO Explorer tools
Create Journal entry
number of attachments + one
(body)
number of journal entries
BO Explorer tools
Create new entity
number of entities
BO Explorer tools
Create Organogram
number of Organograms
BO Explorer tools
Create task
number of tasks
BO Explorer tools
Filling DropDown
BO Explorer tools
•
•
•
•
number of loops + number of
conditions
Get & Save document to document library number of loops
Size NS
S2 Time Time1 Time2 Time3 Time4 Time5 Time6 Time7
Time8
4
4
1
1
1
2
1
1
9
17
30
27
5
15
5
15
5
10
2
5
15
30
2
10
6
20
2
4
3
3
2
2
1
1
31
15
90
27
10
5
10
10
10
5
7
30
30
10
5
60
30
2
2
2
1
4
2
4
2
1
2
4
2
1
2
3
2
1
2
3
2
16
10
19
37
18
27
30
30
90
30
10
5
10
20
10
10
5
20
20
15
10
5
10
20
10
3
3
10
5
30
15
30
30
30
5
5
10
20
10
30
15
30
60
30
4
2
2
2
21
30
20
15
10
5
60
10
20
2
2
2
1
16
45
15
5
10
5
30
5
15
Собираем оценки экспертов по каждому виду работ
Выводим среднее
Нормализуем до min = 1
Округляем до 3-х весовых категорий
17
Fuzzy logic
• Сверяем результаты с
данными по уже
выполненным проектам
o Переоцениваем спеки
o Сравниваем с реальным
временем
o Думаем….
o Еще думаем…
o Обсуждаем с экспертами
o Пересматриваем типы и оценки
сначала
18
Та Да!
19
Матрица типов работ
Type
A
B
C
Section
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
Control panel
Control panel
Control panel
DB Config Work
DB Config Work
DB Config Work
DB Config Work
Menu editor work
Menu editor work
Query Explorer Work
Screent tools work
Screent tools work
Screent tools work
Screent tools work
Screent tools work
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (workflow)
Sysadmin Adapt V11
Sysadmin Adapt V11
Sysadmin Adapt V11
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
Sysadmin Adapt V11
BO Explorer tools
BO Explorer tools
BO Explorer tools
Jasper & Cristal reports
Jasper & Cristal reports
Sysadmin Adapt V11
Action
Add verification for mandatory fields
Create document using existing template
Create email message
Create Journal entry
Populate field on workflow
Refreshing list control, segment…
Set attribute to database
Set parameters and run query
Add link to the Control panel
Change Control panel view
Remove/Rename link from the Control panel
Add new Role to the database
Add/Modify Code group
Add/rename DB items
Reneme existing Role
Create or modify existing menu
Remove item from menu
Create/Modify query
Add new segment
Add/Modify view
Delete existing segment
Region add/modify
Rename existing segment
Add label
Add/Change Entity screen items
Change segment property (title, text stile…)
Modify existing list control
Move/Rename/remove any fields on the screen
Workflow screen items operations
Add new document category to document library
Add/replace template to document library
Rename document category
Create an Appointment
Create new entity
Create task
Filling DropDown
Get & Save document to document library
Change template
Create CSV Report
Create Organogram
XML handler
Add/Modify Cristal report
Add/Modify Jasper report
Create new profile
Measurement
number of fields
number of merge fields
number of attachments + one (body)
number of journal entries
number of fields
one action
number of attributes
number of parameters
number of links
number of changes
number of links
number of roles
number of code elements (x10)
number of attributes
number of roles
number of menu items
number of menu items
number of conditions
number of segments
number of regions
number of segments
number of regions
number of segments
number of labels (x5) per each segment
number of screen items
number of changes
number of colums in list control
number of fields + number of operations
number of items
number of document categories
number of templates
number of document categories
number of appointments
number of entities
number of tasks
number of loops + number of conditions
number of loops
number of merge fields
number of output row data fields
number of Organograms
number of XML nodes
number of outputs + number of conditions
number of outputs + number of conditions
number of roles in new profile
Size
Comment/Example
1
1
1
1
1
1
1
1
1
1
1
1
1 1 code = 1 size; 10 = 1 size; 25 = 3 size
1
1
1
1
1
1
1
1
1
1
1 5 labels on one segment = 1 size; 5 labels on 2 segments = 2 size
1
1
1
1
1
1
1
1
2
2
2
2
2
2
4
4
4
4
4
4
20
Типы работ
Type
A
B
C
Section
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
Control panel
Control panel
Control panel
DB Config Work
DB Config Work
DB Config Work
DB Config Work
Menu editor work
Menu editor work
Query Explorer Work
Screent tools work
Screent tools work
Screent tools work
Screent tools work
Screent tools work
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (entity)
Segment editor Work (workflow)
Sysadmin Adapt V11
Sysadmin Adapt V11
Sysadmin Adapt V11
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
BO Explorer tools
Sysadmin Adapt V11
BO Explorer tools
BO Explorer tools
BO Explorer tools
Jasper & Cristal reports
Jasper & Cristal reports
Sysadmin Adapt V11
Action
Add verification for mandatory fields
Create document using existing template
Create email message
Create Journal entry
Populate field on workflow
Refreshing list control, segment…
Set attribute to database
Set parameters and run query
Add link to the Control panel
Change Control panel view
Remove/Rename link from the Control panel
Add new Role to the database
Add/Modify Code group
Add/rename DB items
Reneme existing Role
Create or modify existing menu
Remove item from menu
Create/Modify query
Add new segment
Add/Modify view
Delete existing segment
Region add/modify
Rename existing segment
Add label
Add/Change Entity screen items
Change segment property (title, text stile…)
Modify existing list control
Move/Rename/remove any fields on the screen
Workflow screen items operations
Add new document category to document library
Add/replace template to document library
Rename document category
Create an Appointment
Create new entity
Create task
Filling DropDown
Get & Save document to document library
Change template
Create CSV Report
Create Organogram
XML handler
Add/Modify Cristal report
Add/Modify Jasper report
Create new profile
21
Единица измерения
Measurement
number of fields
number of changes
number of links
number of roles
number of code elements (x10)
Size
1
1
1
1
1
22
Тщательно разжевываем
Measurement
number of code elements (x10)
number of labels (x5) per each
segment
Size
Comment/Example
1 1 code = 1 size; 10 = 1 size; 25 = 3 size
5 labels on one segment = 1 size; 5 labels on 2
1 segments = 2 size
• Если кто-то может понять что-то неверно – он
так и сделает (Закон Мерфи)
23
Пример подсчета размера
Экран
• 10 полей
• 3 кнопки
• Экран
o Поля – 10А
o Кнопки – 3А
• ОК
o Проверки – 6А
o Действия – 12B
ОК
• 6 проверок
• 12 действий
• Всего
• 19A + 12B = 19 + 24 = 43
• 43 – это размер
24
Ну и что с этим делать?
25
DEE
(даешь его единожды)
Spec
TOTAL
Ref #
Docs
Docs
Screen BO Merge Merge
fields
set
items items
Description
0
Journal
items A B C
Estimated Effort
Work Execution Conditions
Size defenition
Work items
Requirement New work
type
issues
if exist
if exist
2..3
1,5..5
Size
Copy/Paste
work
0,25..0,75
CA level
Senior = 0,5
Middle = 1
Junior = 2
Selftesting
Pure
(manDevelopment
hours)
(man-hours)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Development Estimate
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3 profiles
Total
risk (mandevelopment
hours)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
m-h
26
Как считается effort
𝑬𝒇𝒇𝒐𝒓𝒕 = 𝑺𝒊𝒛𝒆 ∙ 𝑹𝒂𝒕𝒆 ∙ 𝑪𝒐𝒏𝒅𝒊𝒕𝒊𝒐𝒏𝒔
где,
Rate = 1 / avg(Velocity) – т.е. сколько в среднем
времени уходит на изготовление 1-го size
Conditions – коэффициент помех и усилителей
27
Пример подсчета
трудозатрат
Экран
• 10 полей
• 3 кнопки
• Размер – 43
• Rate = 0,25m-h
• Conditions = 1 (идеал)
DEE=43*0,25*1=10,75m-h
ОК
• 6 проверок
• 12 действий
28
DEE поближе (1)
WBS
Work items
Spec
Ref #
Description
29
DEE поближе (2)
• Оцениваем размер
каждого кусочка
отдельно
• Первые 5 колонок – для
удобства заполнения и
пересмотра (review)
• Size считается по
формуле
S = A + 2*B + 4*C
Оценка размера
A
B
C
Size defenition
Docs
Docs
Screen BO Merge Merge
items items
set
fields
Journal
items A B C
Size
0
0
0
30
DEE поближе (3)
Work Execution Conditions
Requirement New work
type
issues
if exist
if exist
2..3
1,5..5
Copy/Paste
work
0,25..0,75
CA level
Senior = 0,5
Middle = 1
Junior = 2
31
DEE поближе (4)
Time rate
0,25
Estimated Effort
Pure
Selftesting
Development
(man(man-hours)
hours)
0
0
0
0
0
0
0
0
0
0
3 profiles
risk (manTotal
hours)
development
0
0
0
0
0
0
0
0
0
0
32
DEE vs Schedule
Pure development
Assigned
On track
3 profiles risk Debugging
QA
On
track
QA
On track
Q
On track
A
Passed
33
Жизнь после
Оценка
работ
Донесение
результатов
Пересмотр
модели
Сбор
актуальных
данных
Анализ
отклонений
34
Примеры пересмотров
Work Execution Conditions
Work Execution Conditions
CA level
Requirement New work Copy/Paste Senior = 1
issues
type
work
Middle = 2
if exist = 2 if exist = 3 if yes = 0,5 Junior = 3
Add label
1
Requirement New work
issues
type
if exist
if exist
1,5..5
2..3
number of labels
Copy/Paste
work
0,25..0,75
CA level
Senior = 0,5
Middle = 1
Junior = 2
1
2
Add label
number of labels (x5)
per each segment
5 labels on one segment =
1 size; 5 labels on 2
1 segments = 2 size
35
Эволюция DEE
Project Execution Conditions
Process quality
Communication quality
Connection quality
Total Estimate
0
3
36
Выздоровление
Проект
Обещано
Реально
Отклонение
EV
1
680
720
40
6%
2
1058
1200
142
13%
3
860
800
-60
-7%
4
200
180
-20
-10%
5,1
330
300
-30
-9%
5,2
900
800
-100
-11%
5,3
180
160
-20
-11%
5,4
260
240
-20
-8%
5,5
400
360
-40
-10%
37
SWOT
38
Другой пример
39
ЧаВо
1. Нечеткие требования – вилка Est … Est x5
2. Риски – типичные риски заложены в оценку
3. Juniors – система ресурсонезависима и позволяет
проверить данную оценку (review)
4. Статистика – 15 проектов с отклонениями не более
+20% (максимум), и около +/-10% в среднем
5. Грубая оценка – увы, надо пересчитать всё, что
описано в спеке. Но если ее нет, то можно сделать
наброски и оценить с учетом вопроса #1
6. Скорость – на оценку можно добавить любое
количество людей (но не больше чем есть абзацев в
спеке)
40
Полезное
http://en.wikipedia.org/wiki/Comparison_of_development_e
stimation_software
Comparison of development
estimation software
41
Вопросы?
42
Практика
43
Технология
Такая елка делается за 5 шагов:
1. Нарисовать и закрасить
кружочек (х5 раз)
2. Написать «С Новым Годом!»
3. Написать «Happy New Year!»
4. Свернуть лист в конус и
склеить скотчем
5. Подогнуть углы, чтобы елка
стояла
44
Экспертная оценка
45
Сбор фактических данных
46
Анализ данных
47
Анализ данных
48
Download