Waterfall Model:
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. Each phase is designed for performing specific activity during the SDLC phase.
Advantages:
- This model is simple and easy to understand and use.
- It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
- In this model phases are processed and completed one at a time. Phases do not overlap.
- Waterfall model works well for smaller projects where requirements are clearly defined and very well understood.
Disadvantages
- No working software is produced until late during the life cycle.
- High amounts of risk and uncertainty.
- Not a good model for complex and object-oriented projects.
- Poor model for long and ongoing projects.
The waterfall model involves teams following a series of steps, and only going forward after the previous steps are completed.
What is Agile?
Agile is a set of principles used in project management and software development. (Agile is a set of methods and practices that focuses on iterative development.)
Evaluation of the requirements, plan, and results take place continuously. This allows teams to respond to changes quickly.
The Agile Manifesto
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Principles:
Customer satisfaction | working Software |
Welcome change | Constant Pace |
Delivery Frequently | Good Design |
Work Together | Simplicity |
Motivated Team | Self-organization |
Face to Face | Reflect and Adjust |
Advantages:
- In Agile methodology the delivery of software is unremitting.
- The customers are satisfied because after every Sprint working feature of the software is delivered to them.
- Customers can have a look of the working feature which fulfilled their expectations.
- If the customer has any feedback or any change in the feature then it can be accommodated in the current release of the product.
Disadvantages:
- In Agile methodology the documentation is less.
- 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.
- It is not useful for small development projects.
Agile Methodologies
Extreme Programming (XP)
- It is a framework that enables teams to create high-quality software and improves their quality of life.
- It enables software development with the appropriate engineering practices.
Kanban
- This method is used to design, manage and improve the flow of systems.
- Organizations can visualize their flow of work and limiting their work in progress.
Lean
- Lean is a set of tools and principles that aims to identify and remove waste to increase the speed of process development.
- It focuses on maximizing value to the client, ensuring waste is minimized.
Scrum
- Scrum is a framework that is used by teams to establish a hypothesis, try it out, reflect on the experience and adjust.
- It is used to enable teams to incorporate practices from other frameworks depending on the team’s requirements.
Crystal
- Its focus is on strengthening team communication.
What is Scrum?
Scrum is a framework that enables teams to work together.
With Scrum, teams can:
- Learn from experiences
- self organize working on problems
- To reflect on their Victories
- And their losses to improve
Scrum Framework:
What is Agile Project Management?
APM is a way by which a project can be managed by breaking it into several stages or sprints.
Principles:
- High Product Quality
- High Customer Satisfaction
- Reduced Risk
- Better and Faster ROI
What are User stories?
User stories are an agile software development/ project management tool that provides users with simple, natural language explanations of one or more features written from the end-user’s perspective.
User Stories Advantages:
- Delivers high quality content
- Eases collaboration with team members
- Helps understand users better
- Improves transparency
- Reduced risks
- Support iterative development
INVESTing in user stories
Independent – Stories should be independent of one another so that each of them can be developed and delivered separately.
Negotiable – stories should be discussable and should be open for negotiation
Valuable – Stories must ensure there’s value being added to the customers
Estimable – The stories must be estimable and can be divided into tasks.
Small – Stories shouldn’t be too big and should be complete in about 40 hours or 3 to 4 days
Testable – They should have an acceptance criteria that can be tested to check if they fulfil the customer’s needs.
3C’s of users stories:
Card – It’s provide written description of the story.
Conversation – This represents discussion between users, team, product owners, etc.
Confirmation – These represent condition that need to be satisfied to ensure that the story.
User story Map:
- It’s arrange user stories based on priority along the horizontal axis.
- On the vertical axis, they’re represented based on increasing levels of sophistication.
User story map advantages:
- Helps with prioritizing work
- The focus is on user value
- Roadblocks are highlighted
- Helps with prioritizing work
- Ensuring team unity
- The focus is on user value
Frameworks
- Large – Scale Scrum(LeSS)
- Scaled Agile Framework(SAFe)
- Disciplined Agile(DAD)
- Scrum at scale
- Nexus Scrum
- Spotify model
Scaled Agile Framework(SAFe)
Software Development Life cycle:
Agile Vs Waterfall:
Life Cycle: It’s continuous iteration life cycle model for developing and testing a software |
Linear sequential life cycle model for developing and testing software |
Rigidity: |
Structured way of S/W development |
Collaboration: |
Waterfall model is least flexible and follows a sequence of steps, not allowing the team to collaborate |
Process: The entire process of development is divided into sprints |
The software development process is broken down into several phases |
Changes: In the Agile approach, the changes may be made even after the initial planning is completed |
In the Waterfall approach, the development requirements cannot be changed once the project development begins |
We can summarize the differences between XP and Scrum as follows:
Aspects |
Practices |
XP |
Scrum |
Iteration Length |
Whether to allow modification of requirements |
1-2 weeks |
1-2 weeks |
Handle Changes with an Iteration |
Whether the demand is strictly in accordance with the priority |
It can be replaced with other requirements when a need is not implemented, but the implementation time is equal. |
Scrum is not allowed to do this. Once the iteration is completed, no changes are allowed, and Scrum Master is strictly checked. |
Priority of Features |
Whether the demand is strictly in accordance with the priority |
Yes |
No need to |
Engineering Practices |
Whether to adopt strict engineering methods to ensure progress or quality |
Very strict |
Require developers to be conscious |
Scrum vs. Agile:
Methodology Agile is a set of principles that’s iterative and incremental in nature |
|
Leadership Project head takes care of all tasks and is vital to the project |
|
Flexibility Changes cannot be handled frequently |
|
Delivery The methodology requires frequent delivery to the end user |
|
Collaboration Face to face interactions take place between cross-functional teams |
|
Design The design and execution is simple |
|
Scrum vs. Kanban:
Cadence |
|
Release Methodology |
|
Changes |
|
Metric |
|
Teams |
|
Adding new items |
|
Job Roles |
|
Representation |
|
Project Length |
Kanban works better for projects that are expected to finish in a shorter period |