SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) :
SDLC means all the procedures required to make a software product advance along with its life cycle phases. In detail, the SDLC model illustrates the diverse activities carried out on a software product from its founding to its retiral.
Requirement analysis and Planning
Requirement analysis is a crucial phase in SDLC. It is achieved with the inputs from all the
stakeholders and domain experts. Identification of risks and quality assurance requirements
is also done in this phase. Product people need to procure all the data like the
requirements, who will be the end-user, and what is the intent of the product.
Defining requirements
After the requirement analysis is done, the next phase is to prepare a document of software
requirements.
Designing the software
In this stage, the knowledge of requirements, analysis, and design of the software project is
understood. This stage is the outcome of the previous two stages.
Developing the project
In this stage, the actual development starts, and the programming is put up. Developers
start coding according to codding guidelines described by their management.
Testing
Once the code is created, it is tested to make sure that the products are serving the needs
addressed during the requirement phase.
Maintenance
After ensuring that there are no bugs or errors, the product is deployed. Then, depending
on the assessment, the product may be released.
Maintenance begins after the software is deployed.
When the client begins the use of developed software, the real issues come up and these issues need to be addressed from time to time.
The above-stated procedure is called maintenance.
DIFFERENT SDLC METHODOLOGIES
Waterfall Method :
This is the classical SDLC methodology. The entire process of development is split into various phases. It is a linear-sequential life cycle model where each stage must be finished before the next stage can start and the outcome of one phase is input for the next stage sequentially. Here, the requirements, process, and results are well documented. This method works well if requirements do not alter. Though this method is suited to smaller projects where requirements are well defined, it has many drawbacks.
Major Drawbacks of Waterfall Method :
AGILE
Agile is a philosophy, driven by a set of Principles and Values to meet the changing requirement of customers, processes, systems, and people as a whole. Agile is used in project management and software development. The Agile mindset enables the conception, collaboration, learning, and adaption to attain high-performing results. Teams can adapt to change and deliver incremental value to their customers by combining processes and tools with an Agile mindset.
Brief History
Agile manifesto took shape in February 2001 at a resort in Utah when seventeen people met to talk, relax and eat. The clique contained representatives from different areas of software engineering who have the conviction that there is a need for a substitute for the traditional, documentation-driven software development process.
Agile Manifesto
Agile Manifesto is made of 4 values and 12 principles.
Agile Values
The four Agile Values can be summarized as follows, respectively.
In fact, the entire Agile manifesto revolves around the above four words.
Agile Principles
Popular Agile frameworks
Scrum
Scrum is a simple framework driven by Agile principles and values formulated to assist small cross-functional and self-organized teams to develop complex products.
Benefits of using Scrum :
Scrum structure
Scrum structure consists of scrum teams and their roles, ceremonies, artifacts, and rules.
SCRUM ROLES:
Product Owner
Scrum Master
Development team
Designs, builds, integrates and tests the product backlog items into increments of working software.
SCRUM PILLARS
“The methodology is founded on the empirical process-control theory and three concepts act as pillars in upholding the implementation of this theory. They are Transparency, inspection, and adaption.”
Transparency
As per the Scrum Guide, "The rising system and work should be apparent to those playing out the work as well as those getting the work." It implies that all aspects of the process should be understandable for everyone in the Scrum Team.
Inspection
Inspection is a critical aspect of empirical process control as it is what makes the Scrum structure versatile to complex issues. The investigation is done not just by the Scrum Master, PO, or CEOs. It is done by everybody associated with the project.
Adaption
With regards to Scrum, product development is regarded as the constant improvement of the product. It is the ability to improve or adapt to the feedback of the inspection. Agile Methodology has forever been adaptive to changes.
Commitment
The primary Scrum value is commitment. Commitment is staying dedicated to the sprint goal. Meeting daily challenges is vital, but it is also important to speak if the project is not on track.
Scrum values:
Focus means staying on track and helping the other team member do the same. It is good to avoid distractions and multitask.
Openness means being open-minded to communicate with the other team members. Need to encourage new ideas and styles of doing the work, which helps the team to move forward.
Team members should have a broad mind of respect for others' opinions and ideas and also need to respect the customers and stakeholders, so that the team's work is aligned with their needs.
courage to move beyond your comfort zone to achieve success is required so that challenging problems are solved.
Scrum Ceremonies
Sprint
Sprint is the container event for all scrum events. It is a fixed time-box of one week to four weeks. Backlog refinement takes place during the sprint. The product owner can cancel the sprint if the sprint goal is absolute.
Sprint Planning
A sprint planning meeting is conducted on the first day of the sprint. In the sprint planning meeting, the entire scrum team collaborates and discusses prioritized backlog items and defines the sprint goal. Scrum Master facilitates the meeting and the product owner set out the sprint goal and reply the questions from the development team regarding execution and acceptance criteria. Finally, developers declare how much of the prioritized work can be completed during the current sprint. In brief, the Sprint planning meeting is all about the following three points.
Participants
The entire Scrum team participates. i.e the development team, product owner, and the Scrum Master.
Time box
8 hours for four weeks sprint. Shorter for shorter sprints.
Inputs for the sprint planning meeting
Outputs of the sprint planning meeting
NOTE: Sprint Backlog = Sprint Goal + selected Product Backlog items + Plan to deliver them.
Daily Standup
A daily standup is a short meeting conducted to know the progress of each team member towards the sprint goal and also to identify if there are any impediments. The daily scrum is conducted daily at the same place and at the same time so that the team has no difficulty attending. Daily scrum reduces the need for other meetings and helps the team to make quick decisions.
Time box
15 minutes
Participants
The entire Scrum team. But developers have the major role whereas Product owner and the Scrum Master are listeners.
Inputs for the daily scrum
Outputs of the daily scrum
Sprint review
The sprint review is an informal meeting conducted on the last day of the sprint where the team demonstrates the product and will find what is completed and what isn't. The agenda of the meeting include new features, sprint impediments and analysis of whether the sprint goal is achieved.
Time box
4 hours for one month sprint. Shorter for shorter sprints.
Participants
Usually, the Product Owner, the development team, the Scrum Master, management and the customers participate in the Sprint review meeting.
Sprint Retrospective
The Retrospective is another scrum event which is conducted on the last day of the sprint. In this event, the Scrum Team inspects how the last sprint went with reference to individuals, interactions, processes, tools. The scrum team discusses what went well during the sprint, what challenges if faced, and how those were (or were not) solved. The Scrum team pick outs the most helpful changes to improve its effectiveness.
During the Sprint Retrospective, the team discusses:
Time box
3 hours for one month sprint. Shorter for shorter sprints.
Participants
The entire Scrum team. (The development team, Scrum Master and the Product Owner)
A user story is a tool used in agile software development to understand a software feature from an end- user perspective. In simple terms, a user story is a requirement expressed from the end user’s perspective. The user story tells the type of user, what they, want and why.
Characteristics of a user story- 3 Cs
The user story in its raw form is a user card. Though there are many different ways of writing user stories, the best way of writing is to follow a template that contains ROLE, GOAL, and BENEFIT.
A conversation is needed to get the further details of the card so that the real value of the card is understood. And the card is to be adjusted to the understanding of the conversation.
Acceptance criteria are said to be the confirmation of the story card. Acceptance criteria capture the essential requirements so that in the end we know if we have successfully delivered the user story.
An Example user story
As a XYZ app user, I want to withdraw cash from my bank account using the mobile app so that I can withdraw the cash even without using the card.
Acceptance criteria