0% found this document useful (0 votes)
20 views25 pages

Ase Unit 3

Uploaded by

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

Ase Unit 3

Uploaded by

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

FUNDAMENTALS OF AGILE PROCESS

Introduction and background, Agile Manifesto and Principles, Stakeholders and Challenges,
Overview of Agile Development Models: Scrum, Extreme Programming, Feature Driven
Development, Crystal, Kanban, and Lean Software Development

What is Agile Methodology?

An agile methodology is an iterative approach to software development. Each iteration of


agile methodology takes a short time interval of 1 to 4 weeks. The agile development process
is aligned to deliver the changing business requirement. It distributes the software with faster
and fewer changes.

The single-phase software development takes 6 to 18 months. In single-phase development,


all the requirement gathering, and risks management factors are predicted initially.

The agile software development process frequently takes the feedback of workable product.
The workable product is delivered within 1 to 4 weeks of iteration.
“Agile is a software development methodology that emphasizes flexibility, collaboration, and
rapid delivery.”

Introduction:

Agile is an iterative and incremental approach to software development that focuses on


delivering working software in short cycles, called sprints or iterations. It emphasizes
flexibility, customer satisfaction, and continuous improvement.

Background:

Agile originated in the 1990s as a response to traditional, rigid, and linear software
development methodologies like Waterfall. The Agile Manifesto, created in 2001 by 17
software developers, laid the foundation for Agile principles and values.

Key Drivers:

1. Faster Time-to-Market: Deliver software quickly to meet changing market demands.

2. Customer Satisfaction: Involve customers throughout the development process.

3. Flexibility: Adapt to changing requirements and priorities.

4. Improved Quality: Focus on delivering working software in each iteration.

5. Collaboration: Encourage teamwork, communication, and shared ownership.

Agile Values:

1. Individuals and Interactions: Over processes and tools.

2. Working Software: Over comprehensive documentation.

3. Customer Collaboration: Over contract negotiation.

4. Responding to Change: Over following a plan.

Agile Methodologies:

1. Scrum

2. Kanban

3. Lean

4. Extreme Programming (XP)

5. Crystal

6. Feature-Driven Development (FDD)


Each methodology has its own framework, practices, and techniques, but all share the core
Agile values and principles.

Benefits:

1. Faster delivery

2. Improved quality

3. Increased customer satisfaction

4. Enhanced collaboration

5. Greater flexibility

Roles in Agile

There are two different roles in a Agile methodology. These are the Scrum Master and
Product Owner.

1. Scrum Master

The Scrum Master is a team leader and facility provider who helps the team member to
follow agile practices, so that the team member meets their commitments and customers
requirements. The scrum master plays the following responsibilities:

o They enable the close co-operation between all the roles and functions.

o They remove all the blocks which occur.

o They safeguard the team from any disturbances.

o They work with the organization to track the progress and processes of the company.

o They ensure that Agile Inspect & Adapt processes are leveraged correctly which
includes

o Planned meetings

o Daily stand-ups

o Demo

o Review

o Retrospective meetings, and

o Facilitate team meetings and decision-making process.


2. Product Owner

The Product Owner is one who runs the product from a business perspective. The Product
Owner plays the following responsibilities:

o He defines the requirements and prioritizes their values.

o He sets the release date and contents.

o He takes an active role in iteration and releasing planning meetings.

o He ensures that the team is working on the most valued requirement.

o He represents the voice of the customer.

o He accepts the user stories that meet the definition of done and defined acceptance
criteria.

Cross-functional team

o Every agile team contains self-sufficient team with 5 to 9 team


members. The average experience of each member ranges from 6
to 10 years. The agile team contains 3 to 4 developers, 1 tester, 1
technical lead, 1 scrum master and 1 product owner.
o The Scrum master and Product owner are considered as a part of
Team Interface, on the other hand remaining members are the part
of Technical Interface.
Advantages of Agile Methodology

1. Customer satisfaction is rapid, continuous development and delivery of useful


software.
2. Customer, Developer, and Product Owner interact regularly to emphasize rather than
processes and tools.
3. Product is developed fast and frequently delivered (weeks rather than months.)
4. A face-to-face conversation is the best form of communication.
5. It continuously gave attention to technical excellence and good design.
6. Daily and close cooperation between businesspeople and developers.
7. Regular adaptation to changing circumstances.
8. Even late changes in requirements are welcomed.

Disadvantages of Agile methodology:

1. It is not useful for small development projects.


2. There is a lack of intensity on necessary designing and documentation.
3. It requires an expert project member to take crucial decisions in the meeting.
4. Cost of Agile development methodology is slightly more as compared to other
development methodology.
5. The project can quickly go out off track if the project manager is not clear about
requirements and what outcome he/she wants.
Introduction to the Agile Manifesto:

Overview:

 Introduced in 2001 by 17 software developers.


 Aimed to improve software development processes.

Focuses on flexibility, collaboration, and customer satisfaction.

The Four Core Values:

1. Individuals and Interactions over Processes and Tools:


 Emphasizes the importance of communication and teamwork.
2. Working Software over Comprehensive Documentation:
 Prioritizes delivering functional software over extensive documentation.
3. Customer Collaboration over Contract Negotiation:
 Focuses on continuous customer involvement and feedback.
4. Responding to Change over Following a Plan:
 Encourages adaptability and responsiveness to change.
Value 1 - Individuals and Interactions

Explanation:

 People and how they communicate are more important than the processes they
follow.
 Effective communication leads to better understanding and problem-solving.

Scenario: Meet Emma, a skilled developer, and Ryan, a product owner, working on a new
feature for an e-commerce platform. They're part of a cross-functional team using Agile
methodologies.

Traditional Approach: In a traditional setting, Emma and Ryan would have limited
interactions. Emma would receive a detailed specification document from Ryan and work on
the feature independently. They might have a few meetings to discuss progress, but
communication would be mostly formal and infrequent.
Agile Approach:

In an Agile environment, Emma and Ryan work closely together. They attend daily stand-ups,
where they share progress, discuss challenges, and align on goals. They collaborate on
prioritizing tasks, and Ryan provides continuous feedback on Emma's work.

Benefits:

1. Improved understanding: Emma and Ryan develop a deeper understanding of each


other's perspectives, ensuring the feature meets customer needs.
2. Faster issue resolution: When Emma encounters a technical issue, she can quickly
discuss it with Ryan, who provides input on priorities and trade-offs.
3. Enhanced trust: Regular interactions build trust, allowing them to adapt to changes
and make decisions together.
4. Increased productivity: By working together, they avoid misunderstandings, reducing
rework and improving overall efficiency.

Conclusion:

In this scenario, the focus on individuals and interactions enables Emma and Ryan to
collaborate effectively, leading to better outcomes and a more successful project.

Value 2 - Working Software

Explanation:

 The primary goal is to deliver a functional product.

 Working software is a better measure of progress than detailed documentation.

Value 3 - Customer Collaboration

Explanation:

 Continuous collaboration with customers ensures their needs are met.

 Adaptability to customer feedback leads to a more satisfactory product.


In Agile development, customer collaboration is valued over contract negotiation for several
reasons:

Flexibility: Agile emphasizes adaptability and responding to change. Customer collaboration


allows for a more flexible approach, whereas contract negotiation can lead to rigid
agreements.

Trust: Collaboration fosters trust between the customer and development team, promoting
open communication and a shared understanding of project goals.

Shared ownership: Customer involvement encourages shared ownership of the project,


ensuring both parties work together towards a common objective.

Prioritization: Collaboration enables customers to prioritize features and requirements,


aligning the development process with their needs.

Reduced misunderstandings: Direct communication reduces misunderstandings,


misinterpretations, and errors that can arise from contractual terms.

Emphasis on value: Agile focuses on delivering working software and value to the
customer, rather than adhering to a fixed contract.

Iterative refinement: Collaboration allows for iterative refinement of requirements and


solutions, ensuring the final product meets customer needs.

Value 4 - Responding to Change

Explanation:

 Being flexible and open to change is crucial in a dynamic environment.


 Adjusting plans as needed leads to better project outcomes.

Scenario: A software development team is working on a project to build a mobile app for a
client. They have a detailed project plan and timeline, but halfway through the project, the
client suddenly changes their requirements and wants to add a new feature that wasn't
originally planned for.

Following a Plan: - The team insists on sticking to the original plan and timeline, even
though the client's requirements have changed. They try to fit the new feature into the
existing plan, which causes delays and compromises on quality.- The team becomes
frustrated and stressed, and the client is not satisfied with the final product.
Responding to Change:- The team acknowledges the change in requirements and is open to
adjusting the plan.- They collaborate with the client to understand the new requirements and
prioritize the work.- They adapt their approach to accommodate the change, potentially
adjusting the timeline or resources as needed.- The team delivers a high-quality product that
meets the client's new requirements, and both parties are satisfied.

In Agile, responding to change is valued over following a plan because it allows teams to be
flexible, adaptable, and customer centric. By embracing change, teams can deliver better
outcomes and build stronger relationships with their clients.

Agile Principles:

1. Customer Satisfaction:

Deliver valuable software early and continuously. Our highest priority is to


satisfy the customer through early and continuous delivery of valuable software. You
may concentrate on the project's primary goal—delivering what the customer wants,
not what you planned—by cutting down on time it takes between the project
documentation, reporting to your client, and then obtaining feedback.

2. Welcome Change:
Embrace changing requirements. It is time consuming to handle large and
complicated work while managing project activities. Therefore, a better
strategy is to break the task into manageable, sizeable chunks. In addition, it
would be simpler for the team members to see possible bottlenecks and deal
with delays if the clients were always kept informed.

3. Frequent Delivery:

Deliver working software frequently. According to the Agile methodology,


working software is frequently delivered in a shorter amount of time. Team members
must consistently raise their performance standards because of this iterative process.

4. Collaboration:

Work together daily with business stakeholders. To ensure that the business
and development sides of the project can communicate effectively and, more
importantly, collaborate, a bridge between them must be built. To facilitate an
intellectual exchange that both parties can agree on, make use of the same tools you
would have used in managing remote teams.

5. Motivated Individuals:

Build projects around motivated individuals. The project manager must


establish a supportive and stimulating environment where team members are free to
express their ideas and make recommendations for enhancing the output of the group.
This results in a massive improvement in their general performance, eventually aiding
the project.

6. Face-to-Face Conversation:

The best way to convey information. Efficient communication among the


parties concerned is stressed strongly in the Agile manifesto. Thanks to improvements
in communication technologies, it's now simpler. Instead of having a quick conference
in the office, all participants can now meet via video conferencing.

7. Working Software:

The primary measure of progress. Delivering a functional product that pleases


the consumer is the single determinant that can guarantee success. Before Agile,
numerous success metrics decreased the quality of the finished product.

8. Sustainable Development:

Maintain a constant pace. Burnout will occur if you work on a project for a
long time. It's inevitable. Avoid placing too much of a workload on your employees.
The value of your project will be affected. So, assemble the best team for the job that
will work hard but refrain from overworking themselves and endangering the project's
quality.

9. Technical Excellence:

Enhance agility through good design. Any Agile team's main goal should be
to provide value to the client. Therefore, a multi-skilled team that can manage all the
project's technical components and offers the chance for continual improvement is
crucial.

10. Simplicity:

Maximize the amount of work not done. You should avoid adding extraneous
complexity to a project if you want to complete it swiftly. You can accomplish this in
various ways, including by using agile tools, which eliminate busywork and offer you
more significant influence over all project-related decisions.

11. Self-Organizing Teams:

The best solutions emerge from self-organizing teams. Simply said, a self-
organized workforce with decision-making autonomy would function better since
each team member would be responsible for meeting client expectations rather than a
lone project manager.

12. Reflection and Adjustment:

Regularly reflect and adjust. Agile techniques are constructed on the notion of
iteration, where teams consistently enhance their game by learning from their
previous wrongdoings. Project managers should inspire team meetings where
everyone evaluates their work and discusses how to develop their management and
technical skills.

Stakeholders:

A stakeholder is anyone who has an interest or concern in a project. They can be internal or
external to the organization.

Identifying Stakeholders:

1. Project Team

2. Customers/End-users

3. Business Leaders/Executives

4. Product Owners

5. Scrum Masters (in Agile environments)

6. Testers/QA Engineers

7. Designers

8. Project Sponsors

9. External Partners/Vendors

Categorizing Stakeholders:

1. High Interest, High Influence: Engage closely with these stakeholders

2. High Interest, Low Influence: Keep informed and engaged

3. Low Interest, High Influence: Keep informed and monitor


4. Low Interest, Low Influence: Monitor only

Challenges:

1. Communication Breakdowns: Ensure clear and regular communication

2. Changing Requirements: Be flexible and adapt to changes

3. Scope Creep: Clearly define project scope and boundaries

4. Time Constraints: Prioritize tasks and manage time effectively

5. Budget Limitations: Establish a realistic budget and monitor expenses

Managing Stakeholders and Challenges:

1. Develop a Stakeholder Management Plan

2. Establish clear communication channels

3. Set realistic expectations

4. Prioritize tasks and manage time effectively

5. Monitor and adapt to changes

By understanding stakeholders and challenges, you can develop effective strategies to


manage them and ensure project success.

An example of stakeholders in an Agile project:

Project: Developing a new mobile app for a retail company

Stakeholders:

1. Product Owner (PO): Responsible for defining and prioritizing product backlog items

2. Development Team: Cross-functional team responsible for developing the app

3. Scrum Master: Facilitates Agile processes and ensures team follows framework

4. Customers: End-users of the app, providing feedback and input

5. Business Leaders: Retail company executives, interested in app's impact on business

6. Design Team: Responsible for app's user experience and design

7. QA Engineers: Test and ensure app meets quality standards


8. Project Sponsor: Retail company's project champion, providing resources and support

9. External Partners: Third-party vendors, providing services like payment gateways

Engagement Plan:

1. Product Owner: Regular meetings, backlog refinement

2. Development Team: Daily stand-ups, iteration planning

3. Scrum Master: Regular meetings, Agile coaching

4. Customers: Feedback sessions, user testing

5. Business Leaders: Quarterly updates, progress reports

6. Design Team: Design reviews, feedback sessions

7. QA Engineers: Test planning, defect reporting

8. Project Sponsor: Regular updates, project status

9. External Partners: Contract management, service-level agreements

By identifying and engaging stakeholders effectively, the Agile team ensures that the project
meets the needs of all parties involved.

Overview of Agile Development Models:

The meaning of Agile is swift or versatile. “Agile process model" refers to a software
development approach based on iterative development. Agile methods break tasks into
smaller iterations, or parts do not directly involve long term planning. The project scope and
requirements are laid down at the beginning of the development process. Plans regarding the
number of iterations, the duration and the scope of each iteration are clearly defined in
advance.

Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks. The division of the entire project into smaller parts
helps to minimize the project risk and to reduce the overall project delivery time
requirements. Each iteration involves a team working through a full software development
life cycle including planning, requirements analysis, design, coding, and testing before a
working product is demonstrated to the client.
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
5. Deployment
6. Feedback

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 requirements. You can use the user flow diagram or the high-level UML diagram to
show the work of new features and show how it will apply to your existing system.

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: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

Agile Challenging Approaches:

o Scrum
o Crystal
o Dynamic Software Development Method (DSDM)
o Feature Driven Development (FDD)
o Lean Software Development
o eXtreme Programming (XP)

Scrum:

SCRUM is an agile development process focused primarily on ways to manage tasks in team-
based development conditions.

There are three roles in it, and their responsibilities are:

o Scrum Master: The scrum can set up the master team, arrange the meeting and
remove obstacles for the process
o Product owner: The product owner makes the product backlog, prioritizes the delay
and is responsible for the distribution of functionality on each repetition.
o Scrum Team: The team manages its work and organizes the work to complete the
sprint or cycle.
prescribed events are used to create regularity. All events are time-boxed events, such that
every event has a maximum duration. Sprint

The heart of Scrum is a Sprint, a time-box of two weeks or one month during which a
potentially releasable product increment is created. A new Sprint starts immediately after the
conclusion of the previous Sprint. Sprints consist of the Sprint planning, daily scrums, the
development work, the Sprint review, and the Sprint retrospective.

 In Sprint planning, the work to be performed in the Sprint is planned collaboratively


by the Scrum Team.
 The Daily Scrum Meeting is a 15-minute time-boxed event for the Scrum Team to
synchronize the activities and create a plan for that day.
 A Sprint Review is held at the end of the Sprint to inspect the Increment and make
changes to the Product Backlog, if needed.
 The Sprint Retrospective occurs after the Sprint Review and prior to the next Sprint
Planning. In this meeting, the Scrum Team is to inspect itself and create a plan for
improvements to be enacted during the subsequent Sprint.

Conclusion

Scrum is a process framework that defines certain rules, events, and roles to bring in
regularity. However, it can be adapted to any organization, based on needs, provided the basic
scrum rules are not violated.

eXtreme Programming (XP):

This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance. It is a type of agile
software development. It advocates frequent releases in short development cycles, which is
intended to improve productivity and introduce checkpoints where new customer
requirements can be adopted. The methodology takes its name from the idea that the
beneficial elements of traditional software engineering practices are taken to extreme levels.
(Extreme Programming is a software-development discipline that organizes people to
produce higher-quality software more productively.) XP addresses the analysis, development,
and test phases with novel approaches that make a substantial difference to the quality of the
end-product.
 Writing unit tests before programming and keeping all of the tests running at all times.
The unit tests are automated and eliminates defects early, thus reducing the costs.
 Starting with a simple design just enough to code the features at hand and redesigning
when required.
 Programming in pairs (called pair programming), with two programmers at one
screen, taking turns to use the keyboard. While one of them is at the keyboard, the
other constantly reviews and provides inputs.
 Integrating and testing the whole system several times a day.
 Putting a minimal working system into the production quickly and upgrading it
whenever required.
 Keeping the customer involved all the time and obtaining constant feedback.

Crystal:

There are three concepts of this method-

1. Chartering: Multi activities are involved in this phase such as making a development
team, performing feasibility analysis, developing plans, etc.
2. Cyclic delivery: under this, two more cycles consist, these are:

A. Team updates the release plan.


B. Integrated product delivers to the users.

3. Wrap up: According to the user environment, this phase performs deployment, post-
deployment.

Feature Driven Development (FDD):

This method focuses on "Designing and Building" features. In contrast to other smart
methods, FDD describes the small steps of the work that should be obtained separately per
function.

 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 are
given to last 2 activities.
 Frequent releases: Feature-driven development provides continuous releases of
features in the software and retaining continuous success of the project.

Lean Software Development:

Lean software development methodology follows the principle "just in time production." The
lean method indicates the increasing speed of software development and reducing costs. Lean
development can be summarized in seven phases.

1. Eliminating Waste
2. Amplifying learning
3. Defer commitment (deciding as late as possible)
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole.

Kanban is a popular framework:

It is used to implement agile software development. It takes real time communication of


capacity and complete transparency of work. The work items are represented in a kanban
board visually, allowing team members to see the state of every piece of work at any time.
 Reduces inventory in the range of 25%-75%, thereby reducing company costs.
 Since all segments/states in the workflow are visually organized, the required items,
reducing the wait times and ensuring speed, continually support all the tasks in the
workflow.
 Overproduction of inventory is avoided, thereby saving resources and time as well.
This is termed as eliminating waste.

When to use the Agile Model?

o When frequent changes are required.


o When a highly qualified and experienced team is available.
o When a customer is ready to have a meeting with a software team all the time.
o When project size is small.

Advantage (Pros) of Agile Method:

1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.

Disadvantages (Cons) of Agile Model:

1. Due to the shortage of formal documents, it creates confusion and crucial decisions
taken throughout various phases can be misinterpreted at any time by different team
members.
2. Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can become
a difficulty.
Points to Remember
Introduction and Background

 Agile Methodology: Focuses on flexibility, collaboration, and customer satisfaction.


 Iterative Progress: Requirements and solutions evolve through collaborative efforts.

Agile Manifesto and Principles

 Agile Manifesto:
o Individuals and Interactions over processes and tools
o Working Software over comprehensive documentation
o Customer Collaboration over contract negotiation
o Responding to Change over following a plan
 12 Principles:
o Customer satisfaction through early and continuous delivery
o Welcoming changing requirements
o Frequent delivery of working software
o Collaboration between stakeholders and developers
o Motivated individuals and self-organizing teams
o Technical excellence and good design
o Simplicity and regular reflection for improvement

Stakeholders and Challenges

 Stakeholders:
o Customers
o Development Team
o Product Owners
o Scrum Masters
 Challenges:
o Resistance to change
o Inconsistent communication
o Balancing flexibility with control
o Integrating Agile with existing processes
Overview of Agile Development Models

1. Scrum:
o Framework for managing work with an emphasis on iterative progress.
o Roles: Product Owner, Scrum Master, Development Team.
o Events: Sprints, Daily Stand-ups, Sprint Reviews, and Retrospectives.
2. Extreme Programming (XP):
o Focuses on technical excellence and customer satisfaction.
o Practices: Pair Programming, Test-Driven Development, Continuous
Integration, and Refactoring.
3. Feature Driven Development (FDD):
o Model-driven, focusing on designing and building features.
o Steps: Develop an overall model, build a feature list, plan by feature, design
by feature, and build by feature.
4. Crystal:
o Emphasizes people, interaction, community, skills, talents, and
communications.
o Variants: Crystal Clear, Crystal Orange, and Crystal Red, each suited for
different team sizes and project complexities.
5. Kanban:
o Visual system for managing work as it moves through a process.
o Focuses on continuous delivery, flexibility, and improving workflow.
6. Lean Software Development:
o Derived from Lean manufacturing principles.
o Principles: Eliminate waste, build quality in, create knowledge, defer
commitment, deliver fast, respect people, and optimize the whole.

You might also like