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