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 the study design 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 MODELThe 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. a brand new type of storage device is released that blows SSD out of the water? Or... The clients (the ones requesting and paying for the solution) originally asked for certain features but now 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. And that is the Agile model. Note - there are several modified versions of the Waterfall model with overlapping phases, risk reduction, etc, but the basic model is all you really need to know.
|
THE AGILE MODELThe 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" * Contrary to popular illiteracy, there is no such word as "adaption." It is always "adaptation"
|
THE SPIRAL MODELKey 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?
|
CONCLUSION - Which one should you use? 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. Adopt, and adopt, as necessary. |
or Tell me why you don't want to write to Mark Kelly or Look at this Yeah. I know which option you went for. (If I cry quietly, no one will hear) |
All original content copyright ©
vcedata.com This page was created on 2022-04-14 @ 13:59 |