You are on page 1of 7

SOFTWARE ENGINERRING

UNIT 4 REVISION
 
Q1 Explain in detail about methodologies in Agile process model?
 
The most widely-used Agile methodologies include:
 Agile Scrum Methodology
 Lean Software Development
 Kanban
 Extreme Programming (XP)
 Crystal
 Dynamic Systems Development Method (DSDM)
 Feature Driven Development (FDD)
Agile Scrum Methodology
Scrum is a lightweight Agile project management framework that can be used to
manage iterative and incremental projects of all types. It has gained increasing
popularity over the years due to its simplicity, proven productivity, and ability to
incorporate various overarching practices promoted by other Agile models. In
Scrum, the Product Owner works closely with their team to identify and prioritize
system functionality by creating a Product Backlog.
The Product Backlog consists of whatever needs to be done to successfully deliver
a working software system, including features, bug fixes, non-functional
requirements, etc. Once priorities have been established, cross-functional teams
will estimate and sign-up to deliver “potentially shippable increments” of software
during successive Sprints, typically lasting 30 days. Once a Sprint’s Product
Backlog is committed, no additional functionality can be added to the Sprint except
by the team.
Once a Sprint has been delivered, the Product Backlog is analyzed and
reprioritized, if necessary, and the next set of deliverables is selected for the next
Sprint.
Organizations are even looking to apply Agile Scrum principles to their RPA
(Robotic Process Automation) initiatives to implement automation at scale.
Adopting Agile Scrum principles gives RPA teams or RPA Centers of Excellence
the flexibility to design and optimize business processes to be automated upfront,
maintain an efficient backlog of work that promotes innovation, and implement
constant learning to scale end-to-end automation.
Lean Software Development
Lean Software Development is an iterative Agile methodology that focuses the
team on delivering value to the customer through effective value stream mapping.
It is a highly flexible, evolving methodology without rigid guidelines, rules, or
methods.
The main principles of the Lean methodology include:
1.Eliminating Waste
2.Amplifying Learning
3.Deciding as Late as Possible
4.Delivering as Fast as Possible
5.Empowering the Team
 6.Building Integrity In
7.Seeing the Whole
Lean development eliminates waste by asking users to select only the truly
valuable features for a system, prioritize those features, and then work to deliver
them in small batches. It relies on rapid and reliable feedback between
programmers and customers, emphasizing the speed and efficiency of development
workflows. Lean uses the idea of a work product being “pulled” via customer
request.
It gives decision-making authority to individuals and small teams since this has
been proven to be a faster and more efficient method than a hierarchical flow of
control. Lean also concentrates on the efficient use of team resources, trying to
ensure that everyone is as productive as possible for the maximum amount of time.
It strongly recommends that automated unit tests be written at the same time the
code is written.
Kanban
Kanban is a highly visual workflow management method that is popular among
Lean teams. In fact, 83% of teams practicing Lean use Kanban to visualize and
actively manage the creation of products with an emphasis on continual delivery,
while not adding more stress to the software development life cycle. Like Scrum,
Kanban is a process designed to help teams work together more effectively.
Kanban is based on 3 basic principles: Visualize what you’ll do today (workflow
automation): Seeing all the items within the context of each other can be very
informative Limit the amount of work in progress (WIP): This helps balance the
flow-based approach so teams don‘t start and commit to too much work at once
Enhance flow: When something is finished, the next highest priority item from the
backlog is pulled into play.Kanban promotes continuous collaboration and
encourages active, ongoing learning and improvement by defining the best possible
team workflow
Extreme Programming (XP)
Extreme Programming (XP), originally described by Kent Beck, has emerged as
one of the most popular and controversial Agile models. XP is a disciplined
approach for high-quality agile software development, focused on speed and
continuous delivery. It is intended to improve software quality and responsiveness
in the face of changing customer requirements.
It promotes high customer involvement, rapid feedback loops, continuous testing,
continuous planning, and close teamwork to deliver working software at very
frequent intervals, typically every 1-3 weeks.
The methodology takes its name from the idea that the beneficial elements of
traditional software engineering practices are taken to “extreme” levels. As an
example, code reviews are considered a beneficial practice. Taken to the extreme,
code can be reviewed continuously through the practice of pair programming. The
original XP method is based on four simple values: simplicity, communication,
feedback, and courage.
It also has twelve supporting practices:
1.Planning Game
2.Small Releases
3.Customer Acceptance Tests
 4.Simple Design
5.Pair Programming
6.Test-Driven Development
 7.Refactoring
8.Continuous Integration
 9.Collective Code Ownership
10.Coding Standards
11.Metaphor
12.Sustainable Pace
Diagram refer ppt
In XP, the customer works closely with the development team to define and
prioritize user stories. The development team estimates, plans, and delivers the
highest priority user stories in the form of working, tested software on an iteration-
by-iteration basis. In order to maximize productivity, the practices provide a
supportive, lightweight framework to guide a team and ensure high-quality
enterprise software.
Explain in detail about Agile Maninifesto values and its principles?
Agile Manifesto is the foundation of most modern methodologies of project
management. It has four core values supplemented by 12 principles. Project
managers make use of these principles to deliver extraordinary products, with both
value and quality, while staying within the given constraints of the project.
4 values of Agile Manifesto
 
1. Individuals and interactions over processes and tools This value of the Agile
manifesto focuses on giving importance to communication with the clients. There
are several things a client may want to ask and it is the responsibility of the team
members to ensure that all questions and suggestions of the clients are promptly
dealt with.
2. Working product over comprehensive documentation In the past, more focus
used to be on proper documentation of every aspect of the project. There were
several times when this was done at the expense of the final product. The Agile
values dictate that the first and foremost duty of the project team is completing the
final deliverables as identified by the customers.
3. Customer collaboration over contract negotiation Agile principles require
customers to be involved in all phases of the project. The Waterfall approach or
Traditional methodologies only allow customers to negotiate before and after the
project. This used to result in wastage of both time and resources. If the customers
are kept in the loop during the development process, team members can ensure that
the final product meets all the requirements of the client.
4. Responding to change over following a plan Contrary to the management
methodologies of the past, Agile values are against using elaborate plans before the
start of the project and continue sticking to them no matter what. Circumstances
change and sometimes customers demand extra features in the final product that
may change the project scope. In these cases, project managers and their teams
must adapt quickly in order to deliver a quality product and ensure 100% customer
satisfaction
12 Principles of Agile Manifesto
1.Customer satisfaction through continuous delivery of the product 2.Divide large
chunks of work into smaller and achievable tasks for quicker completion and easier
integration of changes
 3.Adhere to the decided timeframe for the delivery of a working product
4.All stakeholders must frequently collaborate to ensure that the project is going in
the correct direction
5.Create a supportive environment to motivate team members and encouraging
them to get the job done
6.Prefer face-to-face communication over other methods
 7.Working software is the primary measure of progress
 8.Try to maintain a constant pace of development
. 9.Maintain the quality of the product by paying attention to technical details
10.Maintain simplicity
11.Promote self-organization in the team 12.Regularly reflect on your performance
for continuous improvement

1. Customer satisfaction through continuous delivery of the product


In the case of traditional management methodologies, customers get to see the
product only after completion and when several tests and quality checks have been
performed. This not only keeps the customers in dark but also makes it problematic
for the team members to introduce any changes in the product.

In order to keep the customers happy, it’s important to continuously engage them
with a working version of the product. Show small increments every sprint
planning and make changes as required.

2. Divide large chunks of work into smaller and achievable tasks for quicker
completion and easier integration of changes

Handling a huge and complex task would be both time and energy-consuming
while managing project tasks. A better way is to divide the task into smaller parts
that can be easily completed. The customers would always be kept in the loop and
it would be easier for the team members to identify potential bottlenecks and
handle any potential delays.

3. Adhere to the decided timeframe for the delivery of a working product

The Agile philosophy favors a smaller time frame and delivers working software
frequently. This iterative process requires team members to continuously improve
their performance.

4. All stakeholders must frequently collaborate to ensure that the project is going in
the correct direction

A major problem associated with traditional project management methodologies is


that the project stakeholders are often oblivious to the development stages of the
project. The Agile principles encourage all stakeholders to remain involved in all
stages of the project in order to ensure constant feedback and a valuable end
product.

5. Create a supportive environment to motivate team members and encouraging them


to get the job done

It is the responsibility of the project manager to create a motivating environment


and support where members are not afraid to voice their opinions and give
suggestions for the betterment of the team’s performance. Giving the team
members the confidence and motivating them would cause their overall
performance to improve significantly which will ultimately be better for the
project.

6. Prefer face-to-face communication over other methods

In the Agile manifesto, a lot of importance is given to effective


communication between the involved parties. For effective communication,
methods like memos and email are not preferred and more importance is given to
face-to-face communication. This is now easier because of the advances in
communication technologies. All stakeholders can now have a meeting through
video conferencing rather than coming to the office for a short meeting.

7. Working software is the primary measure of progress

The only factor to measure success is the delivery of a working product that
satisfies the customer. Before Agile, there were many measures of success and that
resulted in a drop in the quality of the final product.

8. Try to maintain a constant pace of development

A repeatable and iterative pattern should be established where sustainable


development of the project takes place at a constant rate. This prevents the team
members from being overwhelmed and over-stressed, while the project keeps on
progressing at an acceptable rate.

9. Maintain the quality of the product by paying attention to technical details

Providing value to the customer is the primary objective of any Agile team. It’s
extremely important to have a multi-skilled team that can handle all the technical
aspects of the project and provides the opportunity for continuous improvement.

10. Maintain simplicity

In each time box, the tasks at hand should be the main focus of all team members.
Too much planning and adding extra features to the product should be avoided
during the development.

11. Promote self-organization in the team


A self-organized team with decision-making powers would simply perform better
because the responsibility of satisfying the customers will on the team members,
rather than a single project manager.

12. Regularly reflect on your performance for continuous improvement

Agile methodologies stand on the concept of iteration, where teams learn from
their past mistakes and continuously improve their performance. Project managers
should promote sessions where the whole team reflects on their performance and
discuss ways to improve their technical and management skills.

Explain in detail about Scrum Methodology?


Refer Rar document 4th point
 
Project initiation:
Refer ppt in rar document unit 4 (ppt slides from 46 to 53)

Sprint planning and executing :


Refer ppt in rar document unit 4(ppt slides from 35 to 44)

Scrum Planning :
Refer ppt in rar document unit 4(ppt slides from 11 to 25)

Identifying Stake holders:


Refer Rar document 4th unit 5th point

You might also like