Software Life Cycle
Software Life Cycle
● Software Development Life Cycle (SDLC) is a process used by the software industry to design,
develop and test high quality softwares.
● The SDLC aims to produce a high-quality software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.
● Then based on the feedback, the product may be released as it is or with suggested enhancements in the targeting
market segment. After the product is released in the market, its maintenance is done for the existing customer base.
SDLC Models
● There are various software development life cycle models defined and designed which are followed during the software
development process. These models are also referred as Software Development Process Models". Each process model
follows a Series of steps unique to its type to ensure success in the process of software development.
Following are the most important and popular SDLC models followed in the industry −
● Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptability and
customer satisfaction by rapid delivery of working software product. Agile Methods break the product into small
incremental builds. These builds are provided in iterations. Each iteration typically lasts from about one to three weeks.
Every iteration involves cross functional teams working simultaneously on various areas like −
● Planning
● Requirements Analysis
● Design
● Coding
● Unit Testing and
● Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important stakeholders.
Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit
the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a
release.
Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit
the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a
release.
Roles in Agile
Scrum Master
A Scrum Master is a team leader and facilitator who helps the team members to follow agile practices so that they can meet their
commitments. The responsibilities of a scrum master are as follows −
To ensure that Agile Inspect & Adapt processes are leveraged properly which includes
● Daily stand-ups,
● Planned meetings,
● Demo,
● Review,
● Retrospective Meetings, and
● To facilitate team meetings and decision-making process.
Product Owner
A Product Owner is the one who drives the product from business perspective. The responsibilities or a Product Owner are as follows
−
Cross-functional Team
Every agile team should be a self-sufficient team with 5 to 9 team members and an average experience ranging from of 6 to 10
years. Typically, an agile team comprises of 3 to 4 developers, 1 tester, 1 technical lead, 1 product owner and 1 scrum master.
Point
A Point defines how much a team can commit. A point usually refers to 8 hours. Each story is estimated in points.
Capacity
Capacity defines how much an individual can commit. Capacity is estimated in hours.
During release planning, a rough estimate is given to a user story using relative scale as points. During iteration planning, the
story is broken down into tasks.
Relationship of User Stories and Tasks
● User story talks about what is to be done. It defines what a user needs.
● Task talks about how it is to be done. It defines how a functionality is to be implemented.
● Stories are implemented by tasks. Each story is a collection of tasks.
● User story is divided into tasks when it is planned in current iteration.
● Tasks are estimated in hours, typically from 2 to 12 hours.
● Stories are validated using acceptance tests.