Software Development Life Cycle (SDLC)Development modelsagile, spiral and waterfall
|
Development model approaches, including
|
When you are faced with a big, complex job how do you tackle it? Do you leap into it and do bits here and there until you finish, occasionally going back to fix or add to bits you started before? Or do you start at step 1, conscientiously finish every part of it before moving to step 2? In IT there are several different philosophies - or models - of managing large, complicated software development projects. The ones you need to know are named agile, spiral and waterfall. Each is a type of a Software Development Life Cycle (SDLC) model. Note - there is no objective 'best' SDLC model. If there were, the others would no longer exist. Each model has its advantages and disadvantages. |
ALL OF THEM share certain features. They all describe a process of steps to develop software or other products, from its original conception to its final deployment and evaluation. Depending on whom you talk to, the naming and number of SDLC steps vary a little, but they are essentially the same. VCAA's official SDLC (aka 'Problem Solving Methology' aka PSM*) are:
* See pp.13-16 of the Applied Computing study design [download it]. The fact that VCAA dedicates 4 pages to it in the study design shows how much they love it. Pay attention to it. |
Important distinctions:ANALYSIS v DESIGN
TESTING v EVALUATION
Example:
|
THE SDLC MODELS |
THE WATERFALL MODEL- the first SDLC, described in 1956. This brutal model works in a strictly step-by-step fashion: each step is completely and perfectly finished, reviewed and verified before starting the next step. Just like going over a a waterfall, you can't go backwards. This model is valued where late changes to needs, design, or construction would be prohibitively expensive (or indeed impossible) so 100% accuracy is needed from the very beginning to ensure success at the end. The only way to go back to a previous stage in the waterfall model is to completely scrap the project and start again. As I said - it's brutal, but it can save lots of time and money wasted due to insufficient planning. But... What happens if - halfway through a project - a rival company launches a product that is better than the one you are working on? What happens if unexpected technology changes occur, e.g. the computer mouse is invented so a GUI interface is now a realistic target? Or... The clients (the ones requesting and paying for the solution) originally ask for certain features but change their minds as they see demo versions of the finished solution? Do you persevere with a product that is already obsolete even before it's finished? Do you scrap it? Or do you go back and tweak it? Sometimes, real-world market or technological pressures force a re-evaluation of a project to keep it relevant. Sometimes, a project model needs to be more f-l-e-x-i-b-l-e. Note - there are several modified versions (with overlapping phases, risk reduction, sashimi etc) of the 'pure' waterfall model, but the basic one is all you need to know. |
THE AGILE MODEL - popularised about 2001 The Agile model includes flexibility that the waterfall model lacks. It allows adaptive planning (to cope with changes to needs or developing technologies), development that can backtrack to incorporate new techniques or technologies, continual improvement and flexible responses to changes in requirements, capacity limits, or new problems (e.g. new laws that suddenly make your sofware illegal or subject to public ridicule.) Agile Features:
As has been said: "Agile = make it up as you go along. Waterfall: make it up before you start, live with the consequences" |
THE SPIRAL MODEL - first described 1986 Key words: Risk-driven. It is best used when end-needs are changeable or fuzzy. But it can be slow and expensive. It's basically a blend whatever other SDLC models (e.g. waterfall, agile or other) do the job best. Its creator, Barry Boehm, defined six necessary features of the spiral model: 1. It's best to use the waterfall model unless: the requirements are not fully known or might change; there may be high-risk consequences of doing it wrong; there is not enough time to develop the solution. 2. Keep in mind what stakeholders would consider a "win" for them. Consider alternative strategies to accomplish that win. Identify and prevent risks from those strategies. Get the approval of stakeholders for the strategies. Otherwise, risks may be too great, or stakeholders may find the solution unacceptable (and won't pay for it). 3. How much effort goes into each activity is guided by how much risk it poses. A risky step requires more effort to prevent problems. 4. If risk can be reduced by more detailed planning, do it. Less-risky components deserve less detailed design. 5. Is there a clear definition of what the client considers a "win" - and how to achieve it - by the time the solution is finished? Is everything (technology, training, documentation, publicity, maintenance and support staff etc) prepared for a "win" when the solution is launched? 6. Has the solution been provided with enough long-term maintenance, support, and upgrades for its expected lifespan? |
As with all theoretical models, none of these models will probably ever be used fully and unchanged in the real world. Instead, each offers a set of useful philosophical approaches that can be adopted and adapted according to need and circumstance. |
Write to Mark Kelly |
All original content copyright ©
vcedata.com This page was created on 2022-04-14 @ 13:59 |