Classical Waterfall Model: Proposed by Winston W. Royce Sequential Phases
Classical Waterfall Model: Proposed by Winston W. Royce Sequential Phases
Proposed by Winston W. Royce, it divides the development process into sequential phases.
Phases between feasibility study and testing are known as development phases.
Consists of 2 activities:
Limitations:
4. Prototyping Model
Develops an early working version of the system before full-scale development.
Why Prototyping?
Process:
❌ Disadvantages:
● High costs (building and discarding prototypes).
● Users might mistake the prototype for the final system.
5. Evolutionary Model
Also known as the Incremental Model, it builds the system in phases.
✅ Best for large projects that can be incrementally implemented, users get a chance to
experiment with a partially developed system much before the full working version is released,
helps finding exact user requirements much before fully working system is developed. Core
❌
modules get tested thoroughly and reduce chances of errors in the final product.
Difficult to divide all problems into independent modules.
6. Rapid Application Development (RAD)
Combines prototyping and incremental development for faster delivery. Emphasizes quick
and iterative release cycles, primarily focusing on delivering working software in shorter
timelines.
Features:
8. Agile Development
Designed for fast-changing business environments.
Key Features:
● Scrum
● Extreme Programming (XP)
● Kanban
9. Extreme Programming
In XP, requirements are expressed as scenarios (called user stories), which are implemented
directly as a series of tasks. Takes an extreme approach to iterative development.
❌
XP was created to solve problems in traditional software development, such as:
Late deliveries due to long development cycles.
❌ Unclear or changing requirements causing rework.
❌ Poor communication between developers and customers.
❌ Defects and bugs discovered late in testing.
✅ XP focuses on rapid, continuous feedback to create high-quality software with minimal
waste.
2. Core Principles of XP
XP is based on five key values:
1. Communication
○ Continuous collaboration between developers, customers, and stakeholders.
○ Pair Programming ensures that code is reviewed in real-time.
2. Simplicity
○ Build only what is needed—no unnecessary complexity.
○ Refactoring keeps code clean and maintainable.
3. Feedback
○ Frequent releases help get real user feedback quickly.
○ Automated testing ensures early bug detection.
4. Courage
○ Developers should be willing to make bold changes if needed.
○ Fixing problems immediately instead of delaying them.
5. Respect
○ Teams trust and support each other to produce the best software.
3. Practices of XP
XP uses specific engineering and project management practices to maintain quality and
adaptability.
✅ Small Releases
● Deliver working software in short cycles (1-2 weeks).
● Allows customers to give early feedback.
✅ On-site Customer
● A customer representative is part of the team.
● Ensures requirements are clear and changes can be made quickly.
✅ Coding Standards
● Follows consistent naming conventions, indentation, and structure.
● Ensures readability and maintainability.
XP Workflow
XP follows a simple but structured workflow:
1️⃣ User writes a story → 2️⃣ Developers write test cases → 3️⃣ Code is implemented (Pair
Programming, Refactoring) → 4️⃣ Automated Tests are Run → 5️⃣ Code is Integrated &
Released → 6️⃣ Customer gives feedback
Advantages of XP
✔️ Faster Development – Continuous feedback allows quick changes.
✔️ Fewer Bugs – Test-driven development (TDD) ensures all code is tested.
✔️ Better Collaboration – Pair programming and on-site customers improve communication.
✔️ Customer Satisfaction – Frequent releases ensure software meets needs.
✔️ High Code Quality – Refactoring and coding standards keep code clean.
Challenges of XP
❌ Requires High Discipline – Teams must strictly follow XP practices.
❌ Not Suitable for Large Teams – XP works best with small, co-located teams.
❌ Customer Involvement Needed – A customer representative must be available daily.
❌ Pair Programming Resistance – Some developers prefer working alone.
9. Scrum Framework
A widely used Agile project management framework with three key roles:
Scrum Workflow:
❌
● Continuous customer feedback improves product quality.
Not suitable for projects with strict regulatory requirements.
● Unstable requirements do not hold up the progress.
Teamwork in Scrum
1. Product owner: The product owner is responsible for communicating the customer’s
perspective of the software to the development team. The product owner in consultation
with the team members defines the features of the software to be developed in the next
sprint, decides on the release dates, and also may reprioritize the required features that
are yet to be developed if necessary.
2. Team member: A scrum team usually consists of cross-functional team members with
expertise in areas such as quality assurance, programming, user interface design, and
testing.
3. Scrum master: The ‘Scrum master’ is a facilitator who arranges daily meetings, tracks
the backlog of work to be done, records decisions, measures progress against the
backlog and communicates with customers and management outside of the team.
Scrum Artifacts
1. Product Backlog: The Product Backlog is a prioritized list of all features,
enhancements, bug fixes, and requirements needed in the product.
Key Features:
2. Sprint Backlog: The Sprint Backlog contains the Product Backlog items selected for the
current sprint + a plan to complete them.
Key Features:
● The team identifies one or more features (user stories) from the product backlog
● From sprint backlog lists, the tasks that are identified and committed by the team
to develop and complete during the ensuing sprint.
3. Sprint burndown chart: A Burn-Down Chart visually tracks work completed vs. work
remaining in a sprint.
Key features:
● The sprint burndown chart is used as a tool to visualize the progress made and
the work remaining to be undertaken on a daily basis.
● daily stand-up meeting.
✅ Best for startups and companies using MVP (Minimum Viable Product) strategies.
Lean development can be summarized by seven principles, very close in concept to lean
manufacturing principles:
● Eliminate waste
● Amplify learning
● Decide as late as possible
● Deliver as fast as possible
● Empower the team
● Build in integrity
● Optimize the whole
11. Kanban