1 The Software Development Process

softwarebuck April 25, 2021 0 Comments



What is the Waterfall methodology?


A waterfall model methodology is a linear approach to the development ofsoftware which is also known as the Linear Sequential Life Cycle Model. Itfollows a sequential order which brings in a rigid structure, system, andsteps to be followed to move from one phase to another.The order is usually as follows: * Gather the required documents * Create a design * Code and unit test * Perform the system testing and user acceptance testing * Fix any bugs or issues * Delivery of the finished productWhat is an Agile methodology?Agile methodology is an iterative and team-based method of softwaredevelopment. It is characterized by a practice that promotes continuousiteration of development as well as testing in the process. The testingactivities are concurrent in the agile method, which allows for bettercommunication between managers, developers, and customers.

Waterfall Model


Traditionally used in the construction and manufacturing industries, thewaterfall model has found its way into software-development projects. Unlikethe flexible nature of the agile methodologies, the waterfall model is definedby its strict and linear principles. Projects start at the first phase andonly progress to the next when everything in the previous phase has beencompleted.

Agile vs Waterfall: Project Success and Failure Rates


A number of different studies have been conducted to identify the success andfailure rates associated with the agile and waterfall methods across a numberof areas, and the results are fairly unanimous:Ambysoft’s 2013 Project Success Rates Survey concluded that the agile methodhas a 64% success rate, compared to just 49% for the waterfall model.Ambysoft’s survey analyzed the main factors that contribute to a project’ssuccess or failure and found the following:The 2015 CHAOS report from the Standish Group also discovered that the agilemethod produces a higher success rate than the waterfall model:The Standish Group originally defined the outcomes based on the degree towhich the following critical constraints were met: schedule, cost and scope.In this way: * Successful project is one that meets the assumed schedule, cost, and scope. * Challenged project meets two out of three constraints, and schedule, cost or scope is not met. * Failed project is one that is canceled before it is completed, or is completed but not used.Statistics clearly show that, considering the degree to which the constraintsare met, the agile methodologies consistently deliver more successful projectsthan the waterfall model. This is seconded by the 2017 study conducted by PWC,which also indicates that agile projects are 28% more successful thantraditional projects.Agile methodologies also lend well to working with distributed developmentteams – we’ve explored the subject more extensively in one of our previousposts.The sources above clearly show that the agile methodologies deliver moresuccessful projects than the waterfall model, but what areas of softwaredevelopment contribute to a project’s success of failure? Well, the truth isthat there are many, but here are the three main factors:

1. The Software-Development Process


The software-development process is made up of a number of stages. Within theagile and waterfall models, the stages are the usually the same, but involvedifferent approaches:

Waterfall


Waterfall is considered the traditional method. Due to the linear character ofthe model, each stage of the development process is considered separately, andthus starts and is completed one by one.In theory, this approach should produce a working application sooner; however,building an application isn’t that simple and straightforward. Obstacles are adime a dozen in software development, and all it takes is one small,undetected bug in the beginning of the process to bring the whole projectcrashing down.

Waterfall


The testing phase in the waterfall model is a completely separate part of thedevelopment process, and is usually carried out once the whole application hasbeen built. As this is the first time software testing is conducted, it is notunusual for it to be full of bugs and other major problems. This results inmore time spent in the testing phase – or worse, the phase may be attemptedhalf-heartedly (or partially completed) due to the pressure applied by theclient to move the project forward into the next development stage.

Waterfall


In waterfall, value delivery comes at the end of the development process. Ifthe project exceeds the agreed budget – which is very likely in the case of ITcontracts, there may be no time and money left to deliver the value that wasagreed upon with the client.It is not to say that waterfall is downright bad; it just requires verycareful planning and estimations, which, at the early phases of thedevelopment process, may simply be impossible for many projects. We know thatin software development not everything can be fully planned in advance andproblems should be expected along the way. Initial assumptions are very likelyto change, or may turn out completely unrealistic.

Waterfall Approaches


Waterfall is a linear approach to software development process. Each of theserepresents a distinct phase of software development, and each phase generallyfinishes before the next one can begin. There is also typically a milestonebetween each development phase. * Structured as one big project in a sequential process * Suited for situations where change is uncommon * A process that requires clearly defined requirements upfrontThus the waterfall model maintains that one should move to a phase only whenits preceding phase is reviewed and verified as shown in the Figure below:Waterfall approachFor example:In Royce’s original waterfall model, the following phases are followed inorder: * System and software requirements: captured in a product requirements document * Analysis: resulting in models, schema, and business rules * Design: resulting in the software architecture * Coding: the development, proving, and integration of software * Testing: the systematic discovery and debugging of defects * Operations: the installation, migration, support, and maintenance of complete systems

Agile Development – Iterative Lifecycle


Agile development stages include traditional planning, analyzing requirements,design, coding, testing, and deployment, but they form a cycle rather than aline. This means the processes are flexible, repeatable, can happen in anyorder and in parallel. This allows gathering the user feedback, continuoustesting against different environments and changing the scope of the projecton the run.

The Agile Approach Umbrella


Since the birth of the Agile Manifesto in 2001, there has much buzz aroundbeing agile. In fact, Agile approach is just a way of thinking that enablesteams and organizations to innovate, quickly respond to changing demand, whilemitigating risk. Organizations can be agile using many of the availableframeworks available such as Scrum, Kanban, Lean, XP and etc….Scrum agile umbrella

Waterfall Approaches


Waterfall is a linear approach to software development process. Each of theserepresents a distinct phase of software development, and each phase generallyfinishes before the next one can begin. There is also typically a milestonebetween each development phase. * Structured as one big project in a sequential process * Suited for situations where change is uncommon * A process that requires clearly defined requirements upfrontThus the waterfall model maintains that one should move to a phase only whenits preceding phase is reviewed and verified as shown in the Figure below:Waterfall approachFor example:In Royce’s original waterfall model, the following phases are followed inorder: * System and software requirements: captured in a product requirements document * Analysis: resulting in models, schema, and business rules * Design: resulting in the software architecture * Coding: the development, proving, and integration of software * Testing: the systematic discovery and debugging of defects * Operations: the installation, migration, support, and maintenance of complete systems

Agile Development – Iterative Lifecycle


Agile development stages include traditional planning, analyzing requirements,design, coding, testing, and deployment, but they form a cycle rather than aline. This means the processes are flexible, repeatable, can happen in anyorder and in parallel. This allows gathering the user feedback, continuoustesting against different environments and changing the scope of the projecton the run.

The Agile Approach Umbrella


Since the birth of the Agile Manifesto in 2001, there has much buzz aroundbeing agile. In fact, Agile approach is just a way of thinking that enablesteams and organizations to innovate, quickly respond to changing demand, whilemitigating risk. Organizations can be agile using many of the availableframeworks available such as Scrum, Kanban, Lean, XP and etc….Scrum agile umbrella

Leave a Reply

Your email address will not be published. Required fields are marked *