about summary refs log tree commit diff
path: root/usth/ICT2.7/P2L1 Requirements Engineering Subtitles/6 - Identifying Purpose - lang_en_vs4.srt
blob: 0accc390ee0108343c69f52a3e55a1d0b4318b53 (plain) (blame)
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
1
00:00:00,050 --> 00:00:03,480
And identifying the purpose of a softer system means

2
00:00:03,480 --> 00:00:06,980
defining the requirements for the system. And if you have

3
00:00:06,980 --> 00:00:09,540
ever done anything like that, for example, we did

4
00:00:09,540 --> 00:00:12,060
it for the first project in the previous mini course,

5
00:00:12,060 --> 00:00:14,720
you will know that it is an extremely hard

6
00:00:14,720 --> 00:00:17,760
task. Identifying the purpose of the software and defining its

7
00:00:17,760 --> 00:00:21,600
requirements is very, very hard. Why is it so hard?

8
00:00:21,600 --> 00:00:25,560
First of all, the purpose of most systems is inherently,

9
00:00:25,560 --> 00:00:27,920
extremely complex, so this has to do with the

10
00:00:27,920 --> 00:00:31,330
sheer complexity of the purpose of the requirements. Just think

11
00:00:31,330 --> 00:00:34,810
of how complex is the functionality provided by most systems.

12
00:00:34,810 --> 00:00:38,790
Second, it is hard, very hard to extract from humans

13
00:00:38,790 --> 00:00:41,780
this purpose and make it explicit. So, paraphrasing a

14
00:00:41,780 --> 00:00:45,130
famous quote from the late Steve Jobs, often people don't

15
00:00:45,130 --> 00:00:47,475
know what they want until you show it to them.

16
00:00:47,475 --> 00:00:50,490
It's hard to figure out what people really want. Third,

17
00:00:50,490 --> 00:00:54,260
requirements often change over time. Customers change their

18
00:00:54,260 --> 00:00:57,490
mind. Designing and building a system raises new requirements.

19
00:00:57,490 --> 00:01:00,270
So for many reasons requirements tend not to

20
00:01:00,270 --> 00:01:02,760
be stable, tend to evolve. And that, of course,

21
00:01:02,760 --> 00:01:05,440
makes it harder to collect them. Finally, for

22
00:01:05,440 --> 00:01:09,600
any realistic system, there are many stakeholders and they

23
00:01:09,600 --> 00:01:12,990
often have conflicting goals and requirements. And it

24
00:01:12,990 --> 00:01:15,900
can be very hard to reconcile the possibly conflicting

25
00:01:15,900 --> 00:01:19,630
requirements that might emerge in these cases. So for all these reasons,

26
00:01:19,630 --> 00:01:21,230
it is very, very difficult to

27
00:01:21,230 --> 00:01:23,930
perform requirements engineering in an effective way.