0% found this document useful (0 votes)
23 views68 pages

Se - Unit 2

GTU NOTES UNIT 2

Uploaded by

funsite12407
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views68 pages

Se - Unit 2

GTU NOTES UNIT 2

Uploaded by

funsite12407
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 68

SARDAR PATEL COLLEGE OF ENGINEERING, BAKROL

MANAGED BY: TIRUPATI FOUNDATION TRUST

UNIT 2:
Agile Development

P
C

E Prepared By: Pooja Rathod


IT DEPT,SPCE
❖ Outline:
▪ What is Agility?
▪ Agile Process
▪ Agility Principles
▪ Where agile methodology not work?
▪ Agile Process Models
▪ Extreme Programming (XP)
▪ Adaptive Software Development (ASD)
▪ Dynamic Systems Development Method (DSDM)
S ▪ Scrum
P ▪ Feature Driven Development (FDD)
C ▪ Crystal
E ▪ Agile Modelling (AM)
2 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Agility:
▪ It is a property consisting of quickness, lightness, & ease of movement.
▪ The ability to create and respond to change in order to profit in a unstable
global business environment.
▪ The ability to quickly reprioritize use of resources when requirements,
technology, and knowledge shift.
▪ A very fast response to sudden market changes and emerging threats by
intensive customer interaction.
S ▪ Use of evolutionary, incremental, and iterative delivery to converge on an
P optimal customer solution.
C ▪ Maximizing BUSINESS VALUE with right sized, just- enough, and
E just-in-time processes and documentation.
3 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Agility:
▪ Agility means effective (rapid and adaptive) response to change, effective
communication among all stockholder.
▪ Drawing the customer onto team and organizing a team so that it is in
control of work performed. -The Agile process, light-weight methods are
People-based rather than plan-based methods.
▪ The agile process forces the development team to focus on software itself
rather than design and documentation.
S
▪ The agile process believes in iterative method.
P ▪ The aim of agile process is to deliver the working model of software quickly
C to the customer For example: Extreme programming is the best known of
E agile process.
4 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
What is Agility? Cont.
Current Functionality Rapid and Incremental delivery of
Effective software
response
to change
Change Request

Organizing a team Effective


so that it is in control communication
to perform among all
the work stakeholders

S
Development

P Drawing the Eliminate the


Team

C customer onto “us and them”


the team attitude
E
Customer
5 SOFTWARE ENGINEERING (3150711) Prepared By: Pooja Rathod
❖ Agile Process
▪ Agile software process addresses few assumptions
▪ Difficulty in predicting changes of requirements and customer priorities.
▪ For many types of software; design and construction are interleaved (mixed).
▪ Analysis, design, construction and testing are not as predictable as we might
like.
▪ An agile process must adapt incrementally.
S

P ▪ To accomplish incremental adaptation, an agile team requires customer feedback


C (so that the appropriate adaptations can be made).
E

6 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Agility Principles:
▪ Highest priority is to satisfy the customer through early & continuous delivery of
software
▪ Welcome changing requirements
▪ Deliver working software frequently
▪ Business people and developers must work together
▪ Build projects around motivated individuals
▪ Emphasize face-to-face conversation
▪ Working software is the measure of progress
S
▪ Continuous attention to technical excellence and good design
▪ Simplicity – the art of maximizing the amount of work done
P
▪ The best designs emerge from self-organizing teams
C
▪ The team tunes and adjusts its behavior to become more effective
E

7 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Where agile methodology not work

Project plan & Unclear understanding Big Enterprises where


S requirements are clear of Agile Approach team collaboration is
P & unlikely to change among Teams tough
C

8 SOFTWARE ENGINEERING (3150711) Prepared By: Pooja Rathod


❖ Phases of Agile Model:
▪ Following are the phases in the Agile model are as follows:
1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
S 5. Deployment
P
C
6. Feedback
E

9 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Phases of Agile Model:
1. Requirements gathering:
▪ In this phase, you must define the requirements.
▪ You should explain business opportunities and plan the time and effort
needed to build the project.
▪ Based on this information, you can evaluate technical and economic
feasibility.
2. Design the requirements:
▪ When you have identified the project, work with stakeholders to define
S requirements.
P ▪ You can use the user flow diagram or the high-level UML diagram to
C
show the work of new features and show how it will apply to your
existing system.
E

10 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Phases of Agile Model:
3. Construction/ iteration:
▪ When the team defines the requirements, the work begins. Designers and
developers start working on their project, which aims to deploy a working product.
The product will undergo various stages of improvement, so it includes simple,
minimal functionality.
4. Testing:
▪ In this phase, the Quality Assurance team examines the product's performance and
looks for the bug.
5. Deployment:
S ▪ In this phase, the team issues a product for the user's work environment.
P 6. Feedback:
C ▪ After releasing the product, the last step is feedback. In this, the team receives
E
feedback about the product and works through the feedback.
11 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Phases of Agile Model

P
C

12 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Agile Process Models
▪ Extreme Programming (XP)

▪ Adaptive Software Development (ASD)

▪ Dynamic Systems Development Method (DSDM)

▪ Feature Driven Development (FDD)

▪ Crystal
S

P ▪ Agile Modelling (AM)


C

13 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Extreme Programming (XP)
▪ Extreme Programming (XP) is an agile software development framework
that aims to produce higher quality software, and higher quality of life for
the development team.
▪ XP is the most specific of the agile frameworks regarding appropriate
engineering practices for software development.
▪ The extreme programming model recommends taking the best practices
that have worked well in the past in program development projects to
extreme levels.
S ▪ Good practices need to be practiced in extreme programming.
P ▪ XP is a set of engineering practices. Developers have to go beyond their
C capabilities while performing these practices.
E ▪ That’s where the “extreme” in the framework’s title comes from.
14 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ The process (phases)of extreme programming
▪ The XP framework normally involves 5 phases or stages of the
development process that iterate continuously:
1. Planning :
the first stage, is when the customer meets the development team and
presents the requirements in the form of user stories to describe the
desired result.
then The team estimates the stories and creates a release plan broken
down into iterations needed to cover the required functionality part after
part.
S
If one or more of the stories can’t be estimated, so-called spikes can be
P
introduced which means that further research is needed.
C

15 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
2. Designing:
Designing is actually a part of the planning process, but can be set apart
to emphasize its importance.
A good design brings logic and structure to the system and allows to
avoid unnecessary complexities and redundancies.
3. Coding :
Coding is the phase during which the actual code is created by
implementing specific XP practices such as coding standards, pair
S
programming, continuous integration, and collective code ownership (the
P
entire list is described below).
C

16 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
4. Testing:
Testing is the core of extreme programming.
It is the regular activity that involves both unit tests (automated testing to
determine if the developed feature works properly) and acceptance tests
(customer testing to verify that the overall system is created according to
the initial requirements).
5. Listening
Listening is all about constant communication and feedback.
S

P
The customers and project managers are involved to describe the
C
business logic and value that is expected.
E

17 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
S

P
C

18 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Roles of Extreme Programming:
▪ This kind of development process entails the cooperation between several
participants, each having his or her own tasks and responsibilities.
▪ Extreme programming puts people in the center of the system,
emphasizing the value and importance of such social skills as
communication, cooperation, responsiveness, and feedback. So, these
roles are commonly associated with XP:
i. Customers
ii. Programmers
S
iii. Trackers or managers
P
C
iv. Coaches
E

19 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Roles of Extreme Programming:
1. Customers are expected to be heavily engaged in the development
process by creating user stories, providing continuous feedback, and
making all the necessary business decisions related to the project.
2. Programmers or developers are the team members that actually create
the product.
They are responsible for implementing user stories and conducting user
tests (sometimes a separate Tester role is set apart).
Since XP is usually associated with cross-functional teams, the skill set of
S
such members can be different.
P
C

20 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Roles of Extreme Programming: (cont..)
3. Trackers or managers link customers and developers.
It’s not a required role and can be performed by one of the developers.
These people organize the meetups, regulate discussions, and keep track
of important progress KPIs.
4. Coaches can be included in the teams as mentors to help with
understanding the XP practices.
It’s usually an outside assistant or external consultant who is not involved
S
in the development process, but has used XP before and so can help
P
avoid mistakes.
C

21 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Values and principles of extreme programming
▪ In the late 90s, Ken Beck summarized a set of certain values and principles
that describe extreme programming and lead to more effective
cooperation within the team and, ultimately, higher product quality.

P
C

22 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Values of extreme programming
XP has simple rules that are based on 5 values to guide the teamwork:
1. Communication. Everyone on a team works jointly at every stage of the project.
2. Simplicity. Developers strive to write simple code bringing more value to a
product, as it saves time and effort.
3. Feedback. Team members deliver software frequently, get feedback about it, and
improve a product according to the new requirements.
S 4. Respect. Every person assigned to a project contributes to a common goal.
P
5. Courage. Programmers objectively evaluate their own results without making
C

E
excuses and are always ready to respond to changes.
23 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Principles of extreme programming
1. Rapid feedback. Team members understand the given feedback and react to it right
away.

2. Assumed simplicity. Developers need to focus on the job that is important at the
moment .

3. Incremental changes. Small changes made to a product step by step work better than
big ones made at once.

S 4. Embracing change. If a client thinks a product needs to be changed, programmers


P should support this decision and plan how to implement new requirements.
C
5. Quality work. A team that works well, makes a valuable product and feels proud of it.
E

24 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Extreme programming advantages:
▪ The XP framework can be beneficial and help reduce development time
and costs for the following reasons:
▪ Continuous testing and refactoring practices help create stable
well-performing systems with minimal debugging;
▪ Simplicity value implies creating a clear, concise code that is easy to read
and change in the future if needed;
▪ The minimalistic iterative approach to development ensures that the
S
workable results can be delivered very soon and only necessary features
P
are built;
C ▪ Documentation is reduced as bulky requirements documents are
E substituted by user stories;
25 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Extreme programming advantages: (contd..)
▪ No or very little overtime is practiced;
▪ Constant communication provides a high level of visibility and
accountability and allows all team members to keep up with the project
progress;
▪ Pair programming has proven to result in higher-quality products with
fewer bugs; most research participants also reported enjoying such
collaboration more and feeling more confident about their job;
▪ Customer engagement ensures their satisfaction as their participation in
S

P
the development and testing process can directly influence the result,
C
getting them exactly what they wanted
E

26 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Extreme programming disadvantages:
▪ In many instances, the customer has no clear picture of the end result,
which makes it almost unrealistic to accurately estimate scope, cost, and
time.
▪ Regular meetings with customers often take a great deal of time that could
instead be spent on actual code writing;
▪ Documentation can be rare and lack clear requirements and specifications,
leading to project scope to move slowly
▪ The rapid transition from traditional methods of software development to
S
extreme programming demands significant cultural and structural changes;
P
C
▪ Pair programming takes more time and doesn’t always work right due to the
human factor and character incompatibility.
E

27 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ When to use XP
▪ Highly-adaptive development.

▪ Risky projects.

▪ Small teams.

▪ Automated testing.

▪ Readiness to accept new culture and knowledge.


S

P ▪ Customer participation.
C

28 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Adaptive Software Development (ASD):
▪ Adaptive Software Development has evolved from RAD practices.

▪ The team aspects also were added to these practices.

▪ Jim Highsmith published Adaptive Software Development in 2000.

▪ Adaptive Software Development practices provide ability to accommodate


change and are adaptable in turbulent environments with products

S
evolving with little planning and learning.
P
▪ Adaptive Software Development is a method to build complex software
C

E
and system.
29 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Adaptive Software Development (ASD): (CONT..)
▪ ASD focuses on human collaboration and self-organization. ASD “life cycle”
incorporates three phases namely:
1. Speculation
2. Collaboration
3. Learning

P
C

30 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Adaptive Software Development (ASD): (CONT..)
▪ Speculation:
▪ In Adaptive Software Development, the term plan is replaced by the term
speculate.
▪ While speculating, the team does not abandon planning, but it acknowledges
the reality of uncertainty in complex problems.
▪ Speculate encourages exploration and experimentation. Iterations with short
cycles are encouraged.
▪ Collaboration :
▪ Group emergence is given emphasis in this phase since it aims to solve intricate
S
problems through the team’s diverse experiences and knowledge.
P ▪ In project management, a collaborative environment invites the team to work
C as one to produce the desired result.
E

31 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
▪ Learning : The Learn part of the Lifecycle is vital for the success of the project. Team
has to enhance their knowledge constantly, using practices such as −
▪ Technical Reviews
▪ Project Retrospectives
▪ Customer Focus Groups
▪ Reviews should be done after each iteration.
▪ Both, the developers and customers examine their assumptions and use the results of
each development cycle to learn the direction of the next. The team learns −
▪ About product changes
S
▪ More fundamental changes in underlying assumptions about how the products are
P being developed
C

32 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Adaptive Software Development (ASD): (CONT..)
Strengths and Weakness of Adaptive Software Development.
❑ ASD’s strengths include:
▪ Focused on the end users, which can lead to better and more intuitive
products
▪ Allows for on-time and even early delivery
▪ Encourages more transparency between developers and clients
❑ ASD’s weaknesses include:
S
▪ Demands extensive user involvement, which can be difficult to facilitate
P
▪ Integrates testing into every stage, which can add to a project’s costs
C

E
▪ Emphasis on rapid iterating and continuous feedback can lead to scope creep
33 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Adaptive Software Development (ASD): (CONT..)
▪ Speculate - Collaborate - Learn Cycle as a Whole

▪ As you observe from the Speculate-Collaborate-Learn cycle, given above, it is obvious


that the three phases are nonlinear and overlap.

▪ We observe the following from an Adaptive framework.

▪ It is difficult to Collaborate without Learning or to Learn without Collaborating.

▪ It is difficult to Speculate without Learning or to Learn without Speculating.


S
▪ It is difficult to Speculate without Collaborating or to Collaborate without
P
C
Speculating.

34 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Dynamic Systems Development Method (DSDM):
▪ DSDM is approach to system development, which, as the name suggests,
develops the system dynamically.
▪ The DSDM is dynamic as it is a Rapid Application Development method that uses
incremental prototyping.
▪ DSDM is an iterative and incremental approach that emphasizes continuous user/
customer involvement.
▪ Its goal is to deliver projects on time and on budget while adjusting for changing
requirements along the way.
▪ DSDM is one of a number of Agile methods for developing software and non- I.T.
S
solutions.
P
▪ This method is particularly useful for the systems to be developed in short time
C span and where the requirements cannot be frozen at the start of the application
E building.
35 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Dynamic System Development Method
▪ Dynamic System Development Method (DSDM) has a five-phase life cycle:

1. Feasibility Study
2. Business Study
3. Functional Model Iteration
4. Design and Build Iteration
S 5. Implementation
P
C

36 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Phase of Dynamic Systems Development
1. Feasibility Study:
▪ In this phase the problem is defined and the technical feasibility of the desired
application is verified.
▪ Apart from these routine tasks, it is also checked whether the application is suitable for
Rapid Application Development (RAD) approach or not.
▪ Only if the RAD is found as a justified approach for the desired system, the
development continues.

S 2. Business Study:
P ▪ It establishes the use and knowledge necessities that may permit the applying to
C supply business value; additionally, it is the essential application design and identifies
E the maintainability necessities for the applying.
37 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
3. Functional Model Iteration:
▪ It produces a collection of progressive prototypes that demonstrate
practicality for the client.
▪ The intent throughout this unvarying cycle is to collect further necessities by
eliciting feedback from users as they exercise the paradigm.
4. Design and Build Iteration:
▪ It re-visits prototypes designed throughout useful model iteration to make
S
sure that everyone has been designed during a manner that may alter it to
P
supply operational business price for finish users.
C ▪ In some cases, useful model iteration and style and build iteration occur at
E
the same time.
38 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
5. Implementation:
▪ It places the newest code increment (an “operationalized” prototype) into the
operational surroundings. It ought to be noted that:
▪ the increment might not 100% complete or, changes are also requested
because the increment is placed into place.
▪ In either case, DSDM development work continues by returning to the useful
S
model iteration activity.
P
C

39 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Principles of DSDM:
1. Focus on the business need. DSDM teams work towards achieving projects that align
with greater business objectives and exist within parameters that make sense for the
business.

2. Deliver on time. Prompt delivery is a vital part of DSDM projects, as one of the
method's goals is to reap benefits early.

3. Collaborate. It's crucial that DSDM teams involve all relevant parties and grant each
S other the means to give feedback and make decisions.
P
4. Maintain high quality. DSDM teams set clear standards before beginning work and
C

E
evaluate their progress regularly to ensure they're meeting these standards.
40 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Principles of DSDM:
5. Build incrementally from firm foundations. Teams strive to produce the right amount
of work at the right time to ensure they produce work that aligns with their plans.

6. Develop iteratively. Teams implement feedback promptly and adapt to ongoing


changes in a project's specifications and needs.

7. Communicate continuously and clearly. DSDM teams can use a variety of tools to
provide written, verbal and visual updates to teammates, other departments,
S managers and interested parties.
P
8. Demonstrate control. A team leader or project manager practices transparency to
C
make all team members aware of changes, plans, progress, updates and goals.
E

41 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Advantages of DSDM
• Improves collaboration

• Supports rapid deliverables

• Promotes feedback

• Enhances project organization

• Sets clear guidelines


S

P
C

42 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Disadvantages of DSDM
▪ Requires resources: DSDM can be costly to implement. Although it
requires an investment to implement, it may also save an organization
money by encouraging teams to work efficiently and reducing
time-to-market for products.
▪ Minimizes creativity: Because it encourages developers to work quickly, it
may limit risk-taking. The focus on iterative development may allow
professionals to revisit their work to infuse more unique, creative elements
later.
▪ Demands structure: DSDM works best when teams have a reliable
S

P
structure, full support from management and capable project managers to
C
lead the project life cycle. You can implement more structure in your team
E before committing to DSDM to ensure its success.
43 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Scrum
▪ Scrum is a framework that helps agile teams to work together.
▪ Using it, the team members can deliver and sustain the complex product.
▪ It encourages the team to learn through practice, self-organize while working on
the problem.
▪ Scum is a work done through the framework and continuously shipping values to
customers.
▪ It is the most frequent software that is used by the development team.
▪ Its principle and lessons can be applied to all kinds of teamwork.
S ▪ Its policy and experiences is a reason of popularity of Scrum framework.
P ▪ The Scrum describes a set of tools, meetings, and roles that help the teams
C
structure.
E
▪ It also manages the work done by the team
44 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ What is Scrum?
• Scrum is a framework that helps
It is a lightweight process framework.
teams work together.
• Much like a rugby team (where it Lightweight means the overhead of the process is kept as
gets its name) training for the big small as possible in order to maximize the productivity.
game, scrum encourages teams
Product Backlog Product Owner
to learn through experiences,

Product
self-organize while working on a
problem, and reflect on their
wins and losses to continuously
improve.

Daily Scrum Meeting

Sprint
S

P
C

E
45 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Keywords of Scrum:
▪ Sprint :A sprint is a short, time-boxed period when a scrum team works to
complete a set amount of work. Sprints break down a project into bite-sized
chunks. Teams plan a single sprint at a time and adapt future sprints based on the
outcome of the previous one.
▪ Daily Scrum :It’s a daily meeting usually hosted by the Scrum master. Every
morning, the Scrum team gets together for 15 minutes to discuss their day
ahead.
▪ Scrum master :The Scrum master is the leader of the Scrum. They organize
S meetings, remove impediments, and work with the product owner to ensure that
P
the product backlog is up to date.
C ▪ Scrum board :It’s a virtual or physical board that displays tasks that need to be
E
done in a sprint.
46 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Keywords of Scrum:
▪ Backlog : It’s a list of new product features, updates, bug fixes, etc. that are
required by the user.
▪ Product backlog :A product backlog is Scrum terminology that refers to a list of
new features, updates, bug fixes, etc. that are required by the user.
▪ Scrum meeting: A Scrum meeting is an essential part of the Scrum framework.
Without them, the sprint would have no structure or project plan in place!.
▪ Scrum team :It’s a cross-functional team of 5-10 individuals with different skill
S sets ranging from graphic design, UX, coding, etc. They work together to develop
P a product under the Scrum framework.
C ▪ Product owner :They are the key members of an Agile or Scrum team. They
E decide the vision and features of the final software
47 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Lifecycle of Scrum:

P
C

48 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Scrum framework at a glance

Inputs from Customers,


Team Selects starting at
Team, Managers
top as much as it can
commit to deliver by end Scrum
Daily Scrum
Master
of sprint Meetings

Sprint Review

Product Owner

Finished Work
S
Product Sprint Planning Sprint
P Backlog
Backlog Meeting
C Sprint Retrospective
Sprint end date and team
Prioritized list of what is required:
E deliverable do not change
features, bugs to fix...
49 SOFTWARE ENGINEERING (3150711) Prepared By: Pooja Rathod
❖ Silent features of Scrum are:
▪ Scrum is light-weighted framework
▪ Scrum emphasizes self-organization
▪ Scrum is simple to understand
▪ Scrum framework help the team to work together

P
C

50 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Advantages of SCRUM.
▪ Scrum can help teams complete project deliverables quickly and efficiently
▪ Scrum ensures effective use of time and money
▪ Large projects are divided into easily manageable sprints
▪ Developments are coded and tested during the sprint review
▪ Works well for fast-moving development projects
▪ The team gets clear visibility through scrum meetings

S
▪ Scrum, being agile, adopts feedback from customers and stakeholders
P ▪ Short sprints enable changes based on feedback a lot more easily
C ▪ The individual effort of each team member is visible during daily scrum
E meetings
51 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Disadvantages of Scrum
▪ Scrum often leads to scope creep, due to the lack of a definite end-date
▪ The chances of project failure are high if individuals aren't very committed
or cooperative
▪ Adopting the Scrum framework in large teams is challenging
▪ The framework can be successful only with experienced team members
▪ Daily meetings sometimes frustrate team members
S ▪ If any team member leaves in the middle of a project, it can have a huge
P negative impact on the project
C
▪ Quality is hard to implement until the team goes through an aggressive
E
testing process
52 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Feature Driven Development (FDD)
▪ It is an agile iterative and incremental model that focuses on progressing
the features of the developing software.
▪ The main motive of feature-driven development is to provide timely
updated and working software to the client.
▪ In FDD, reporting and progress tracking is necessary at all levels.
▪ FDD allows teams to update the project regularly and identify errors
quickly.
▪ clients can be provided with information and substantial results at any
S time.
P ▪ FDD is a favorite method among development teams because it helps
C reduce two known moral-killers in the development world: Confusion and
E rework.
53 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Feature Driven Development (FDD)

P
C
In FDD, the feature means client valued function.
E

SOFTWARE ENGINEERING (3150711) Prepared By: Pooja Rathod


❖ The five steps in FDD :
▪ Develop the overall model :Here, an FDD team will determine the project scope.
Multiple models will be proposed and merged to create one overall model.
▪ Build the features list: Next, the team members will outline the customer-focused
features to be developed. They will be small functions that can be completed in a short
period of time. An example could be to create an automatic reminder for subscription
renewal.
▪ Plan by feature : The team will assess the individual features in the list and arrange
them in the appropriate order. Then, the features will be assigned to team members.
▪ Design by feature: At this stage, the team’s chief programmer will choose which features
S to develop within a two-week period. A design package will be created for each feature,
P and team members will conduct a review before building commences.
C ▪ Build by feature: Developers work to build the code for the aforementioned features.
E This code will be tested before the final version is created.
55 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Characteristics of FDD
▪ Short iterative: FDD lifecycle works in simple and short iterations to efficiently
finish the work on time and gives good pace for large projects.

▪ Customer focused: This agile practice is totally based on inspection of each


feature by client and then pushed to main build code.

▪ Structured and feature focused: Initial activities in lifecycle builds the domain
model and features list in the beginning of timeline and more than 70% of efforts
S are given to last 2 activities.
P
C
▪ Frequent releases: Feature-driven development provides continuous releases of
E features in the software and retaining continuous success of the project.
56 Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ Advantages and disadvantages of FDD :
Advantages of FDD
▪ Reporting at all levels leads to easier progress tracking.
▪ FDD provides continuous success for larger size of teams and projects.
▪ Reduction in risks is observed as whole model and design is build in smaller
segments.
▪ FDD provides greater accuracy in cost estimation of the project due to feature
segmentation.
Disadvantages of FDD
S
▪ This agile practice is not good for smaller projects.
P
▪ There is high dependency on lead programmers, designers and mentors.
C
▪ There is lack of documentation which can create an issue afterwards.
E

57 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Crystal :
▪ The crystal method is an agile framework that is considered a lightweight or agile methodology
that focuses on individuals and their interactions.
▪ The methods are color-coded to significant risk to human life.
▪ It is mainly for short-term projects by a team of developers working out of a single workspace.
▪ Crystal family is collection of agile software development methodologies that can be used for
different software projects depending upon size, complexity, criticality and number of people
involved.
▪ Crystal methods focus on people and communication among people rather than process to
frequently deliver a working software
▪ Among few Agile Software Development Life Cycle (SDLC) models crystal is considered as one of
S the Agile SDLC models.
P ▪ Two core beliefs of the Crystal method :
▪ Find your own way and methods to optimize workflow.
C
▪ Make use of unique methods to make the project unique and dynamic.
E

58 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Crystal
▪ Crystal methodology is actually a grouping of different methods and it
always takes team size into account.
▪ Because of that, Crystal can be further broken down into color groups that
hinge on the size of the team and the complexity or size of the project.
▪ Think about it this way: small teams can move quickly and have more
straightforward collaborations.
▪ But, as the team size grows, that often means the complexity of the project
S
does too. That’s what the different Crystal methods represent.
P
C

59 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Crystal Team Member

P
C

60 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Properties of Crystal Agile Framework :
▪ Frequent Delivery- It allows you regularly deliver the products and test code to real users. Without this, you
might build a product that nobody needs.
▪ Reflective Improvement- No matter how good you have done or how bad you have done. Since there are
always areas where the product can be improved, so the teams can implement to improve their future
practices.
▪ Osmotic Communication- Alistair(defender of Team stated that having the teams in the same physical phase
is very much important as it allows information to flow in between members of a team as in osmosis.
▪ Personal Safety- There are no bad suggestions in a crystal team, team members should feel safe to discuss
ideas openly without any fear.
▪ Focus- Each member of the team knows exactly what to do, which enables them to focus their attention.
This boosts team interaction and works towards the same goal.
S ▪ Easy access to expert users- It enhances team communication with users and gets regular feedback from
real users.
P
▪ Technical tooling- It contains very specific technical tools which to be used by the software development
C team during testing, management, and configuration. These tools make it enable the team to identify any
E error within less time.

61 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Advantages and Disadvantages of Crystal
Advantages of Crystal Methods:
▪ Effective team communication is key feature of successful projects.
▪ Crystal methods provide proper guidance about team communication of varying team
sizes.
▪ Different crystal methods can be used for different project sizes and criticality.
▪ Crystal method provides good risk control and technical.
Disadvantages of Crystal Methods:
▪ Only two method (crystal clear and crystal orange) are defined out of four.
S ▪ These methods lack design and code verification activities.
P ▪ Crystal methods do not provide any guidance about business enterprise.
C ▪ Crystal methods lack system validation practices which make them inappropriate for the
E development of life critical systems.
62
▪ There is no well-defined team structure in crystal methods. Prepared By: Pooja Rathod
SOFTWARE ENGINEERING (3150711)
❖ AGILE MODELING (AM)
▪ Agile Modeling (AM) is a practice-based methodology for modeling and
documentation of software-based systems.
▪ Agile Modeling is a collection of values, principles, and practices for
modeling and it is applied to software system.
▪ In actual practice, the agile models are more effective and lightweight as
compared to traditional models.

P
C

63 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Agile Modeling Core Principles:
▪ Model with a Purpose- A software developer using agile modelling must have a
proper and specific goal in his mind before he start developing a project.
▪ Use Multiple Models- The software developer is free to use to various model and
notation to explain a software in a better way. The Agile modelling suggests
different aspect of system and provides the value to the intended end-users.
▪ Travel Light- Traveling light is another way of saying that you have sufficient
documentation about the models you’re developing, but no more than that.
S ▪ If you have too little documentation, the developing team might lose its way—if
P
you have too much, the development team may forget that the primary goal is
C
not writing documentation but instead building software and the right models.
E

64 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
▪ Content is more important than presentation- In Agile modelling the
contents are very important for the intended users.
▪ Based on presentation only, the work can not be accomplished.
▪ Understand the models and supporting tools- It is necessary to
understand the strengths and weaknesses of the model that are used and
the tools that are used in development process.
▪ Adapt locally- The needs of modeling team must be satisfied by adopting
S
appropriate modeling approach
P
C

65 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ Advantages and Disadvantages of AM
Advantages
▪ Facilitates effective communication between teams and clients
▪ Enhances project flexibility, easily handling sudden changes anytime
▪ Cuts overall development time
▪ Increases customer satisfaction via rapid, continuous delivery of a workable product
▪ Delivers functioning software frequently, in weeks instead of months
Disadvantages
▪ Confusion between teams may develop because documentation wasn’t emphasized. This
uncertainty can lead to difficult transitions between phases.
S ▪ It is sometimes difficult to gauge how much effort will be needed to start the development life
cycle of larger software deliverables.
P
▪ If stakeholders project ladder are not on the same page, the project will derail.
C ▪ The modeling isn’t for newbies. The sort of decisions involved in Agile require people with
E experience and solid developer and programming skills.

66 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
THANK YOU

P
C

67 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)
❖ GTU Question.
▪ Define agile process .Give any two agile principles.
▪ Explain Scrum with its advantages and disadvantages.
▪ Explain Extreme Programming (XP) in detail.
▪ Explain Agile model

P
C

68 Prepared By: Pooja Rathod


SOFTWARE ENGINEERING (3150711)

You might also like