You are on page 1of 9

The Software Development Life Cycle (SDLC) is a process that provides a framework

for developing software systems. The SDLC framework includes a set of steps that guide software
development teams in designing, developing, testing, and maintaining software systems. The steps in the
SDLC process include:

Analysis/Requirements gathering: In this phase, the software development team conducts a detailed
analysis of the user requirements and defines the system requirements, architecture, and design. They
also identify any constraints or limitations that may affect the development process.

Planning: In this first phase, project managers and software development teams define the scope of the
project, the budget, the timeline, and the resources needed to complete the project. They also identify
the stakeholders, users, and customers who will be involved in the project.

Design: In this phase, the software development team creates a detailed design of the software system,
including the user interface, data models, and system architecture. They also define the software
components and the software development environment.

Implementation/Development: In this phase, the software development team begins to write the code
for the software system, integrating the various software components and ensuring that they function
together as expected.

Testing: In this phase, the software development team tests the software system to ensure that it meets
the user requirements and that it is free from defects. This includes unit testing, integration testing,
system testing, and user acceptance testing.

Deployment: In this phase, the software system is deployed in the production environment, making it
available to users. This includes installing the software system, configuring the system, and testing the
system in the production environment.

Maintenance: In this phase, the software development team maintains the software system by fixing any
bugs, addressing any issues that arise, and updating the system as needed to keep it functioning
effectively.

The SDLC process is widely used in software development projects to ensure that software systems are
developed efficiently, effectively, and with high quality. By following the SDLC process, software
development teams can minimize risks, reduce costs, and improve the quality of the software that they
develop. Additionally, the SDLC process provides a structured approach to software development that
can be easily adapted to different types of software development projects.

Sprint planning
Sprint planning is a collaborative meeting that takes place at the beginning of each
sprint, which is a time-boxed period of typically one to four weeks during which a set of
product backlog (prioritize list of items) items will be completed by the development team.
During sprint planning, the development team meets with the product owner and the Scrum
Master to review the product backlog and to plan the work that will be accomplished during the
upcoming sprint. The main goal of the sprint planning meeting is to create a sprint backlog,
which is a list of tasks that the development team will work on during the sprint.

The sprint planning meeting typically lasts for two hours for each week of the sprint, and
involves the following activities:
1. Reviewing the product backlog items and understanding the user stories, acceptance
criteria, and priorities
2. Estimating the effort required to complete each product backlog item
3. Selecting the product backlog items that will be completed during the sprint
4. Defining the tasks that need to be completed to achieve the sprint goal
5. Estimating the time required to complete each task
6. Creating a sprint backlog that lists all of the tasks that the development team will work
on during the sprint
At the end of the sprint planning meeting, the development team should have a clear
understanding of the work that needs to be done during the sprint and should have a detailed
plan for how to accomplish that work. This plan will guide the development team as they work
through the sprint and will help ensure that the sprint goal is achieved on time and with high
quality.

Agile (Move Quickly)


Small projects dividing into chunks called iterations.
Iteration first develops and then tests. After testing it releases. Then takes feedback. If I need to
enhance, then we rerelease.
Advantages
frequent delivery
Face to face client communication
Frequently changes
Less time to work.
Disadvantages

Scrum
Most popular agile methodology
Light weight, incremental and iterative methodology
Scrum breaks down development phases into stages or cycles called sprint.
Sprint is duration of time and task to complete in that time.
Backlog: Keeping notes of what to do along with priorities. In software testing, a backlog refers
to a prioritized list of tasks or test cases that need to be completed in order to achieve the
testing objectives. The testing backlog is typically created by the test lead or manager, in
collaboration with the development team and other stakeholders.
Daily scrum: a meeting of 15 minutes daily. All team lead and members are equal and have
equal right to share idea in meeting. Idea may be selected and then come in sprint.
Scrum master: leading team and managing stakeholders.
Product owner: Person taking features from client. Manage product backlog. Responsible for
team responsibilities, keeping eye on team to meet user requirements.
Notes: Current sprint should be completed first (preferable). If not completed, then before
starting next sprint complete previous and then move to 2nd sprint.
Backlog glooming and refinement: glomming is subset of refinement. Glooming is done to
update sprint details, next start we update backlog. But refinement ensure that backlog is
always up to date.

User story: Requirements of user.


Backlog grooming, also known as backlog refinement, is a process in Agile software
development where the team reviews and updates the product backlog. The product backlog
is a list of all the features, enhancements, and bug fixes that need to be completed for a project.

Some common tasks that are performed during backlog grooming include:

Reviewing the backlog: The team reviews the backlog to make sure it's up-to-date and includes
all the necessary items.
Prioritizing backlog items: The team collaborates to determine the priority of each item, based
on its business value, customer need, and technical feasibility.
Breaking down larger items: Large backlog items are broken down into smaller, more
manageable tasks that can be completed in a single sprint.
Estimating effort: The team estimates the effort required to complete each item, based on their
experience and expertise.
Adding more details: The team adds more details to the backlog items, such as acceptance
criteria, technical specifications, and user stories.
By regularly refining the backlog, the team can ensure that they are always working on
the most important tasks, and that they have a clear understanding of what needs to be done.
This can help to increase productivity, reduce waste, and deliver high-quality products that
meet the needs of customers.

A retrospective meeting, also known as a sprint retrospective or iteration


retrospective, is a meeting that is held at the end of a sprint or iteration in Agile software
development. The purpose of the meeting is to reflect on the previous sprint or iteration,
identify what went well and what didn't, and make improvements for the next sprint or
iteration.

During a retrospective meeting, the team typically discusses the following topics:

What went well during the sprint or iteration? The team identifies the things that went well,
such as completed tasks, successful collaborations, and effective communication.

What didn't go well during the sprint or iteration? The team identifies the things that didn't go
well, such as missed deadlines, communication breakdowns, and technical issues.
What can be improved for the next sprint or iteration? The team discusses potential
improvements, such as better communication, clearer goals, or changes to the process or tools
used.

The retrospective meeting is an important part of the Agile development process because it
allows the team to continuously improve and adapt to changing needs and circumstances. By
reflecting on past performance and identifying areas for improvement, the team can work more
efficiently and effectively, and deliver high-quality products that meet the needs of customers.
Sprint backlog and product backlog are both important components of Agile software
development methodology. However, they serve different purposes and are used at different
stages of the development process.

Product backlog is a prioritized list of user stories, features, and requirements that the
development team will work on over multiple sprints or iterations. It is typically maintained by
the product owner and represents the full scope of work that needs to be done for the
project. The product backlog is continually refined and updated as the team learns more about
the project and stakeholders' needs. The product backlog helps the team to understand the
overall vision and goals of the project and helps the product owner to communicate the
project's priorities to the team.
Provided by product owner.
Sprint backlog, on the other hand, is a list of tasks that the development team plans to
complete during a single sprint or iteration. The sprint backlog is created during the sprint
planning meeting and is based on the team's understanding of the user stories and
requirements that have been prioritized in the product backlog. The sprint backlog is owned
by the development team, and they are responsible for organizing and completing the tasks
within the sprint.

The key difference between the two is that the product backlog represents the entire scope of
the project, while the sprint backlog represents a subset of that work that will be completed
during a single sprint. The product backlog is continuously updated and refined throughout the
project, while the sprint backlog is created at the beginning of each sprint and focuses on the
immediate work that needs to be done
Agile methodology.
Agile methodology is an iterative and incremental approach to software development that
emphasizes flexibility, collaboration, and rapid response to change. It is based on the Agile
Manifesto, a set of principles for software development that prioritize customer satisfaction,
working software, and the ability to respond to change.

Agile methodology is often used in software development projects where the requirements are
not well defined or are likely to change over time. It is an alternative to traditional Waterfall
methodology, which is a more linear approach to software development that emphasizes a
sequential process of planning, development, testing, and deployment.

The Agile methodology is based on a set of values and principles that prioritize individuals and
interactions, working software, customer collaboration, and response to change. It emphasizes
the importance of self-organizing teams that work collaboratively to deliver working software
in short iterations or sprints.

There are several popular Agile methodologies, including Scrum, Kanban, and Lean Agile.

Scrum is perhaps the most widely used Agile methodology and is based on the principles of
transparency, inspection, and adaptation. It is an iterative and incremental approach to
software development that emphasizes the importance of a cross-functional team, product
backlog, sprint planning, daily stand-up meetings, sprint review, and retrospective.

Kanban is another popular Agile methodology that emphasizes visual management and
continuous flow. It is based on the principles of visualize workflow, make process policies
explicit, manage flow, limiting work in progress, and delivering on customer needs. Kanban
uses a visual board to track work items, such as user stories or tasks, and emphasizes
continuous improvement through the use of metrics and feedback loops.

Lean Agile is an Agile methodology that combines the principles of Lean manufacturing with
Agile development. It emphasizes the importance of minimizing waste, optimizing flow, and
delivering value to the customer. Lean Agile is based on the principles of continuous
improvement, customer focus, and respect for people.
Agile methodology has several benefits, including the ability to respond to changing
requirements, increased collaboration between teams and stakeholders, and improved quality
and speed of delivery. However, it also has some challenges, including the need for a strong
focus on team communication and collaboration, the need for continuous improvement, and
the potential for scope creep or feature creep.

In conclusion, Agile methodology is an iterative and incremental approach to software


development that emphasizes flexibility, collaboration, and rapid response to change. It is based
on a set of values and principles that prioritize individuals and interactions, working software,
customer collaboration, and response to change. Agile methodology has several popular
methodologies, including Scrum, Kanban, and Lean Agile, each with its own set of principles and
practices.

Roles in QA
Main Aim of QA is to make customer/client confident so about our product or service will
functioning as per requirements or will meet quality and performance standard in certain
time under certain conditions.
In the software industry, Quality Assurance (QA) is a critical function that is responsible for ensuring that
software products meet the desired level of quality and performance. Here are some of the roles that
typically work in the QA domain:

QA Analyst: A QA Analyst is responsible for testing software applications and systems to identify bugs,
defects, and performance issues. They work closely with the development team to ensure that the
product meets the required quality standards and specifications.

QA Engineer: A QA Engineer is responsible for designing and developing test plans, scripts, and
automated tests for software applications. They also work closely with the development team to identify
and resolve issues, and to ensure that the product meets the required performance and quality
standards.

-an individual who is responsible for applying the principles and practices of software quality
assurance throughout the software development life cycle-

Test Automation Engineer: A Test Automation Engineer is responsible for developing and maintaining
test automation frameworks and scripts to ensure efficient and effective testing of software applications.
They work closely with the development team to integrate test automation into the development
process and to identify opportunities for automation.
QA Manager: A QA Manager is responsible for managing the overall QA function, including planning,
organizing, and overseeing testing activities. They work closely with other stakeholders to ensure that
the product meets the required quality and performance standards, and to identify and implement
process improvements.

Release Manager: A Release Manager is responsible for managing the software release process,
including testing, deployment, and monitoring. They work closely with the development and QA teams
to ensure that the release meets the required quality and performance standards, and to minimize the
risk of issues and defects.

DevOps Engineer: A DevOps Engineer is responsible for managing the software development, testing,
and deployment processes, with a focus on automation and continuous integration and delivery. They
work closely with the development and QA teams to ensure that the product meets the required quality
and performance standards, and to identify and resolve issues quickly.

Diff bet QA manager and analyst.


The roles of a QA Manager and a QA Analyst are both important in ensuring software quality,
but they differ in their responsibilities and scope of work. Here are some of the key differences
between these two roles:

Responsibilities: A QA Manager is responsible for managing the overall QA function, including


planning, organizing, and overseeing testing activities. They work closely with other
stakeholders to ensure that the product meets the required quality and performance standards,
and to identify and implement process improvements. In contrast, a QA Analyst is responsible
for testing software applications and systems to identify bugs, defects, and performance issues.
They work closely with the development team to ensure that the product meets the required
quality standards and specifications.

Level of Authority: A QA Manager typically has a higher level of authority and decision-making
power than a QA Analyst. The QA Manager is responsible for setting the overall QA strategy and
approach, while the QA Analyst is responsible for executing testing activities according to the
established strategy and approach.
Scope of Work: A QA Manager typically has a broader scope of work than a QA Analyst. The QA
Manager is responsible for overseeing the testing of multiple projects and products, while the
QA Analyst is typically focused on testing a specific application or system.

Skills and Qualifications: A QA Manager requires strong leadership and management skills, as
well as experience in software testing, quality assurance, and process improvement. They may
also have a background in project management, business analysis, or software development. In
contrast, a QA Analyst requires strong technical skills in software testing, as well as knowledge
of testing methodologies and tools.

In summary, a QA Manager is responsible for managing the overall QA function and ensuring
that testing activities are aligned with the organization's goals and objectives. In contrast, a QA
Analyst is responsible for executing testing activities and ensuring that software products meet
the required quality standards and specifications.

Lean methodology
It’s a process improvement methodology that agile uses to reducing/eliminating waste, improving
efficiency and delivery value to customer.

You might also like