What is it?
An approach for developing software
Definition
Categories
- Traditional
- Agile
5 Generic Framework Activities
- Communication
- Planning
- Modelling
- Construction
- Deployment
- Feedback
- Maintenance
Traditional Processes / Process Models
Non Evolutionary
Incremental
The software is broken down into small increments.
Multiple development cycles take place
Software requirements are divided or broken down into multiple stand-alone modules / increments in the SDLC
Waterfall AKA Linear Sequential Model
Breakdown of a project into linear sequential tasks
Each task is given forward as a series of waterfall
Each task depends on the previous tasks
We get the complete application in the end in one go
Evolutionary
IKIWISI
I Know It When I See IT
Prototyping
A Prototype is a toy implementation of the actual system.
Before carrying out the development of actual software, a working prototype of the system is made.
That would be the incomplete version of software program.
Model in which prototype is built, tested, and reworked until an acceptable prototype is achieved
Spiral
Meta-label Process
Risk-driven software development process model
During the early iterations, the additional release may be a paper model or prototype. During later iterations, more and more complete versions of the engineered system are produced.
Processes Workflow
Agile Processes / Models
Agile Manifesto
Clause | Domain |
---|---|
Individuals & Interactions | Process & Tools |
Working Software | Comprehensive Documentation |
Customer Collaboration | Contract Negotiation |
Responding the Change | Following a Plan |
- Customer Satisfaction
- Welcoming Change
- Frequent Delivery
- Together
- Face to face communication
- Design Excellence
- Sustainable Development
- Self-Organizing Teams
- KIS (Keep it simple)
- Reflection
XP
eXtreme Programming
Uses the 5 Framework Activities
Key Principles
- Pair Programming
- Planning Game
- Continuous Process
- Coding Standards
- Sustainable Pace
- Test Driven Development
Hint
SCRUM
The most popular agile method as of today.
A Sprint is same as an iteration.
A Sprint takes about 30 days.
Scrum Master
Project Manager
Product Owner
Requirements Engineer
Manages the Product Backlog
Product Backlog
Prioritized Requirements
Running todo list
Features, requirements, enhancements, and fixes that acts as the input for the Sprint Backlog
Sprint Backlog
Priorities you will be taking in the sprint
Items, user stories, or bug fixes, selected by the development team for implementation in the current sprint cycle
Sprint Plan
The plan to be followed
Time Boxing
Fixing of duration
User Stories
An informal, general explanation of a software feature written from the perspective of the end user. Its purpose is to articulate how a software feature will provide value to the customer.
SCRUM Ceremonies
- Organize the Backlog
- Sprint Planning
- Sprint
- Daily Scrum / Standup
- What did I do yesterday?
- What do I plan to do today?
- Are there any obstacles?
- Sprint Review
- Sprint Retrospective
What When Where Why Who
How
How Much