1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
1
00:00:00,150 --> 00:00:03,250
And assuming that cost is flat that we can really lower that
2
00:00:03,250 --> 00:00:06,590
curve then teher are a few interesting consequences. First of all upfront
3
00:00:06,590 --> 00:00:10,330
work becomes a liability, we pay for speculative work some of which
4
00:00:10,330 --> 00:00:13,320
is likely to be wrong. Some of which we are likely to undo
5
00:00:13,320 --> 00:00:16,870
and the reason for ambiguity and volability for example in requirements then
6
00:00:16,870 --> 00:00:19,310
it's good to delay We don't want to plan for something that
7
00:00:19,310 --> 00:00:22,380
might never happen, to invest resources in something that we might have
8
00:00:22,380 --> 00:00:25,170
to throw away later on. In general, if cost is flat it is
9
00:00:25,170 --> 00:00:28,820
cost effective to delay all decisions until the last possible
10
00:00:28,820 --> 00:00:30,990
moment and only pay for what we use, so to
11
00:00:30,990 --> 00:00:34,550
speak. In other words, there is value in waiting, time
12
00:00:34,550 --> 00:00:37,810
answers questions and removes uncertainty. And we want to take advantage
13
00:00:37,810 --> 00:00:40,610
of that. This and other considerations led to the birth
14
00:00:40,610 --> 00:00:44,590
of Agile Softer Development. Specifically for those of you who are
15
00:00:44,590 --> 00:00:47,200
interested in a little bit of history. In February 2001
16
00:00:47,200 --> 00:00:50,430
a group of software developers, 17 of them, met to discuss
17
00:00:50,430 --> 00:00:53,950
lightweight development methods and published Manifesto for Agile
18
00:00:53,950 --> 00:00:57,630
Software Developement. Which introduces and defines the concept of
19
00:00:57,630 --> 00:01:00,990
agile software development, or agile methods. In a
20
00:01:00,990 --> 00:01:03,770
nutshell, agile methods aim at flat cost and a
21
00:01:03,770 --> 00:01:06,190
decrease in traditional overhead by following a set
22
00:01:06,190 --> 00:01:09,400
of important principles. Our first principle is to focus
23
00:01:09,400 --> 00:01:11,700
on the code, rather than the design, to avoid
24
00:01:11,700 --> 00:01:16,080
unnecessary changes. Another principle is to focus on people,
25
00:01:16,080 --> 00:01:20,100
value people over process, and make sure to reward people.
26
00:01:20,100 --> 00:01:22,990
In addition agile methods are all based on iterative approaches to
27
00:01:22,990 --> 00:01:26,310
software development, to deliver working software quickly, and to be
28
00:01:26,310 --> 00:01:29,230
evolve it Just as quickly based on feedback. And feedback can
29
00:01:29,230 --> 00:01:31,740
come from many sources, in particular, it'll come from the
30
00:01:31,740 --> 00:01:34,500
customer, it'll be customer feedback. And to be able to do
31
00:01:34,500 --> 00:01:38,040
so, agile methods need to involve the customer throughout the development
32
00:01:38,040 --> 00:01:41,260
process. Finally, there are two more principles I want to mention.
33
00:01:41,260 --> 00:01:43,620
Which are cornerstones of agile methods. The first
34
00:01:43,620 --> 00:01:46,520
one is the expectation that requirements will change, and
35
00:01:46,520 --> 00:01:48,010
therefore, we need to be able to handle some
36
00:01:48,010 --> 00:01:50,570
changes. We can't count on the requirements to be
37
00:01:50,570 --> 00:01:52,890
still and unmutable. And the last principle is
38
00:01:52,890 --> 00:01:56,430
the mentality of simplicity. Simple design and simple code
39
00:01:56,430 --> 00:01:58,810
and so on. But be careful, because simple does
40
00:01:58,810 --> 00:02:02,060
not mean inadequate, but rather, as simple as possible.
|