All Software Development Models

Water fall model / Linear sequential model

  • The waterfall Model illustrates the software development process in a linear sequential flow. This means that any phase in the development process begins only if the previous phase is complete.
  • Waterfall Model is a sequential model that divides software development into pre-defined phases. Each phase must be completed before the next phase can begin with no overlap between the phases.
Water Fall Model
    When to go for waterfall model?   
    • Requirements are not changing frequently
    • Application is not complicated and big
    • Project is short
    • Requirement is clear
    • Environment is stable
    • Technology and tools used are not dynamic and is stable
    Advantages:  
    • This model is easy to understand easy to implement 
    • Is is suitable for small projects 
    • No changes in the middle of the project
    Disadvantages:   
    •  No feedback path:  In this model It assumes that no error is ever committed by developers during any phases. Therefore, it does not incorporate any mechanism for error correction. 
    •  Not a good model for complex and object-oriented projects.
    •  Poor model for long and ongoing projects.
    •  Cannot accommodate changing requirements.
    Please refer the below video for more detail on waterfall model:

    Iterative Model 

    •  We create rough product or product piece in one iteration, then review it and improve it in next iteration and so on until it’s finished.
    • The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental).
    Advantages:   
    •  Testing and debugging during smaller iteration is easy.
    •  It is easily acceptable to ever-changing needs of the project.
    •  Limited time spent on documentation and extra time on designing.
    •  Risks are identified and resolved during iteration. 
    Disadvantages:   
    •  It is not suitable for smaller projects.
    •  Design can be changed again and again because of imperfect requirements.
    •  Requirement changes can cause over budget.
    •  Project completion date not confirmed because of changing requirements.
    Please refer the below video for more detail on Iterative model:

    Spiral Model

    The spiral model is a risk-driven software development process model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping.
    Spiral Model
    • It is incremental development approach. The project is developed phase by phase. The new  requirements are integrated to the existing application. 
    • The requirements are prioritized based on business requirements.
    • This is a risk-driven software development process model. 
    • It is suitable for large and complex projects.
    • This Spiral model is a combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis on risk analysis.
    When to use Spiral Model?   
    •  When deliverance is required to be frequent.
    •  When Project is large.
    •  When requirements are unclear and complex.
    Advantages:
    • The requirement are prioritized based on the business requirement 
    • Is is suitable for large and complex projects
    Disadvantages:   
    •  Can be a costly model to use.
    •  Risk analysis needed highly particular expertise.
    •  Doesn't work well for smaller projects.
    Please refer the below video for more detail on Spiral model:

    V- Model

    The V-model is a type of SDLC model where process executes in a sequential manner in V-shape. It is also known as Verification and Validation model. It is also known as Verification and Validation model. The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage.
    V- Model
    • The V-model is a type of SDLC model where process executes in a sequential manner in V-shape. It is also known as Verification and Validation model. 
    • The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage.
    •  This is a highly-disciplined model and the next phase starts only after completion of the previous phase.
    When to use?   
    • Requirements are well defined, clearly documented and fixed.
    • Product definition is stable.
    • There are no ambiguous or undefined requirements.
    • The project is short.
    Advantages:
    • Start testing from beginning of the project 
    • Testing include both validation and verification
    • Defect found at early stages cost of fixing defect is less 
    • As testing is involve from beginning better understanding of requirement.
    Disadvantages:   
    •  High risk and uncertainty.
    •  Not a good model for complex and object-oriented projects.
    •  Poor model for long and ongoing projects.
    •  Not suitable for the projects where requirements are at a moderate to high risk of changing.
    •  Once an application is in the testing stage, it is difficult to go back and change a functionality.
    •  No working software is produced until late during the life cycle.
    Please refer the below video for more detail on Verification and Validation:

    Please refer the below video for more detail on V&V Model:

    Agile Development Model

    • Agile methods break tasks into smaller iterations, or parts do not directly involve long term planning. The project scope and requirements are laid down at the beginning of the development process.
    • All the team member should work together to deliver a quality product.
    • Management is also involved continuously in this project.
    • It is one of the most widely used process in software development world as it helps teams to deliver the work faster in small increments with less issues.
    General terminologies used in Agile process
    • Product Backlog – User stories(requirements are split into user stories) will be added here. For any sprint, user stories will be picked from product backlog and worked upon.
    • Epic – It is the complete feature or requirement which needs to be implemented.
    • User story – An Epic is split into user stories based on the complexity or work involved in order to develop it. User story is generally part of Epic. In case of small feature, it will be a single user story.
    • Story points – It is a measurement to define the complexity of the user story from dev and QA perspective. This activity will be done in Sprint planning.
    • Burn down chart – This is a pictorial graph representation of time and work. This is drawn with the help of the time spent on tasks along with the work. Team need to burn the hours on daily basis for the work accomplished against the tasks.
    Agile Process:   
    • Customer satisfaction by rapid, continuous delivery of useful software Here in Agile process, we can monitor the project progress every day. 
    • Every release is implemented in iterations or sprints. Every iteration or sprint consists of 2 or 3 weeks in general. However, this sprint duration varies from project to project and also to sprint to sprint as well sometimes. 
    • Many meetings were involved in this Agile process to know the progress of the release in each sprint.
    Agile Meetings:   
    • Sprint Planning meeting is conducted before the start of the sprint to discuss the user stories that can be covered in that particular sprint.
    • Daily stand up/Scrum is conducted to know the work done by each in the team. Mainly the below things are discussed,
    • What work is done yesterday
    • What work is planned for today
    • What work is planned for tomorrow
    • Any impediments to complete the work
    Agile Meetings:   
    • Sprint Review meeting is conducted at the end of the sprint to discuss the progress and where does the team stand for that sprint. However this is a optional meeting which is conducted based on the projects/companies as required.
    • Sprint Retrospective meeting is conducted once a sprint is completed and next sprint got started. Following things will be discussed,
    • What went well in the last sprint
    • What didn’t went well in the last sprint
    • What can be done to improve or perform well in the ongoing sprint
    • Defect Triage meeting is conducted to review and have a proper action on the defects. Dev team, testing team and sometimes the Product owner also will be involved in this meeting. Defects identified in the particular sprint will be triaged and assigned to respective team or deferred sometimes depending on the defects.
    • Sprint Planning meeting is conducted before the start of the sprint where the user stories for that particular sprint and the timelines for the same would be planned.
    Advantages:   
    • Customer satisfaction by rapid, continuous delivery of useful software.
    • Working software is delivered frequently (weeks rather than months).
    • Weekly release are expected if any large requirement are split so that development and testing is completed in the week scheduled. 
    • Customers, developers and testers constantly interact with each other.
    • Daily cooperation between business people and developers.
    Disadvantages:   
    • Sometimes in Agile methodology the requirement is not very clear hence it’s difficult to predict the expected result.
    • In few of the projects at the starting of the software development life cycle it’s difficult to estimate the actual effort required.
    • Because of the ever-evolving features, there is always a risk of the ever-lasting project.
    • For complex projects, the resource requirement and effort are difficult to estimate.
    Best Agile and Scrum Certifications:   
    • Certified Scrum Professional
    • Certified Scrum Master
    • Agile Certified Coach
    • Agile Certified Practitioner
    • SAFe 4 Agilest
    Please refer the below video for more detail on Agile model:

    Please refer the below video for more detail on SAFe Agile:

    Please refer the below video for more detail on Shift Left Testing in Agile:

     Prototype Model

    • The prototyping model is a systems development method in which a prototype is built, tested and then reworked as necessary until an acceptable outcome is achieved.
    • If customer is not having clear understanding of requirement a sample design is developed and present to the customer. based on feedback finalized the requirement.
    When to use Prototype model:   
    • Prototype model should be used when the desired system needs to have a lot of interaction with the end users.
    • Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model.
    Advantages:   
    • Active involvement :Users are actively involved in development. 
    • Easy detection of missing functionality: errors can be detected in the initial stage of the software development process.
    • Quick feedback: Quicker user feedback helps you to achieve better software development solutions.
    • Flexibility : Encourages innovation and flexible designing.
    Disadvantages:   
    • This model is costly and time consuming.
    • It has poor documentation because of continuously changing customer requirements.
    • There may be too much variation in requirements.
    Please refer the below video for more detail on Prototype model:

    Hybrid Model

    The hybrid model is the combination of two or more primary (traditional) models and modifies them as per the business requirements.

    Hybrid Model Examples:
    • Spiral and prototype
    • V & V and Prototype
    Advantages:   
    • The hybrid model is highly flexible.
    • In this model, the customer rejection is less because of the Prototype.
    • It is easy to implement because it has the flexibility of synchronization.
    Disadvantages:   
    •  It does not follow the usual standards.
    •  Every hybrid model is different from each other.
    Please refer the below video for more detail on Hybrid Model:

    Derived/Customized Model

    • Here we will take a basic model or single model and change it according to the customer business requirement or company standards is called as derived model / customized model.
    • The most significant disadvantage of previous models (waterfall and spiral) is that there were lots of customer rejection that happens after the application was developed, and there was no involvement of the customers in between the project.
    • Hence, they started the new approach, which is known as the prototype model
    Example
    • The spiral model is derived from the Water Fall Model.
    • V - Model is also derived from Water Fall Model.
    • Water Fall model is Known as Mother of all Models.
    Please refer the below video for more detail on Derived Model:

    2 comments:

    1. Fantastic blog post. Many many thanks for sharing an important and useful article with us. I hope a lots of people will be helpful to get this article. Keep it up. And before leaving this page I want to say that if anyone want to know useful information about the uat testing then just no worry. Anyone can visit that (If needed). Thanks again.

      ReplyDelete
      Replies
      1. Thanks Jeck for your kind words. Your webpage for UAT testing is Excellent. Thanks for Sharing.

        Delete