1 00:00:00,100 --> 00:00:02,860 We just saw several software process models, and there 2 00:00:02,860 --> 00:00:06,330 are many, many more. And because these process models define 3 00:00:06,330 --> 00:00:09,330 the master plan for our project, the specific process 4 00:00:09,330 --> 00:00:12,220 model that we choose has as much influence over a 5 00:00:12,220 --> 00:00:15,700 project's success as any other major planning decision that 6 00:00:15,700 --> 00:00:18,610 we make. Therefore, it is very important that we pick 7 00:00:18,610 --> 00:00:22,100 the appropriate model for our development process. Picking an appropriate 8 00:00:22,100 --> 00:00:25,100 model can ensure the success of a project. On the 9 00:00:25,100 --> 00:00:27,830 contrary, if we choose the wrong model, that can be a 10 00:00:27,830 --> 00:00:31,010 constant source of problems and ultimately, it can make the project 11 00:00:31,010 --> 00:00:33,830 fail. So how can we choose the right model for a 12 00:00:33,830 --> 00:00:36,310 project? To be able to do so, we have to take into 13 00:00:36,310 --> 00:00:40,490 consideration many factors. In particular, we need to be aware of 14 00:00:40,490 --> 00:00:44,390 what level of understanding we have of the requirements. Do we understand 15 00:00:44,390 --> 00:00:46,720 all the requirements? Are we going to be able to collect all 16 00:00:46,720 --> 00:00:50,430 the requirements in advance, or collecting requirements is going to be hard and 17 00:00:50,430 --> 00:00:53,460 therefore, we might want to follow a process that is more flexible 18 00:00:53,460 --> 00:00:57,470 with that respect. Another important point is the expected lifetime of the 19 00:00:57,470 --> 00:01:00,300 project. Is this a quick project that we are putting together for 20 00:01:00,300 --> 00:01:03,100 a specific purpose or something that's going to last for for a number 21 00:01:03,100 --> 00:01:05,910 of years and that we're going to maintain over all those years? 22 00:01:05,910 --> 00:01:08,380 That's going to make a difference in the way we decide to develop 23 00:01:08,380 --> 00:01:12,190 that project. Also, what is the level of risk involved? Do we 24 00:01:12,190 --> 00:01:15,530 know the domain very well? Do we know exactly the technologies involved? 25 00:01:15,530 --> 00:01:19,100 Well, if so, we might go with a more traditional process. Otherwise, 26 00:01:19,100 --> 00:01:21,902 we might want to be more agile, more flexible. It is also 27 00:01:21,902 --> 00:01:24,900 very important to know the schedule constraints. How much time, how many 28 00:01:24,900 --> 00:01:28,640 resources do we have for this project? What is the expected interaction 29 00:01:28,640 --> 00:01:31,870 with the management and the customer? In particular for this ladder, there 30 00:01:31,870 --> 00:01:34,840 are many processes that rely on the fact that there can be 31 00:01:34,840 --> 00:01:38,310 a continuous interaction with the customer. If that interaction is not there, 32 00:01:38,310 --> 00:01:41,230 there's no way we are going to be able to use these processes. 33 00:01:41,230 --> 00:01:44,580 Conversely, there are processes that don't require the presence of the customer 34 00:01:44,580 --> 00:01:47,868 at all, except for the initial phase and maybe some checking points and 35 00:01:47,868 --> 00:01:51,020 so if the customer is very inaccessible, we might want to follow 36 00:01:51,020 --> 00:01:53,740 one of those processes, instead of one of the more demanding ones in 37 00:01:53,740 --> 00:01:57,340 terms of customer's time. Finally, it is important to take into account 38 00:01:57,340 --> 00:02:00,450 the level of the expertise of the people involved. Do we have people 39 00:02:00,450 --> 00:02:02,730 that know the technologies that we're using? Do we know people that 40 00:02:02,730 --> 00:02:04,590 know a specific kind of process? 41 00:02:04,590 --> 00:02:06,930 Some processes require some specific expertise and 42 00:02:06,930 --> 00:02:09,320 we're not going to be able to follow that process if we don't 43 00:02:09,320 --> 00:02:12,410 have the right expertise. So we need to take into account all of 44 00:02:12,410 --> 00:02:15,570 these aspects, and sometimes more, in order to be able to make 45 00:02:15,570 --> 00:02:19,560 the right decision and pick the right software process model for our project.