Professional Documents
Culture Documents
Agile Unit - 2
Agile Unit - 2
1 Lean Production
Lean methodology aims to eliminate wasteful resources and tasks for improved efficiency and
reduced costs — while never sacrificing quality
/
Advantages of Lean Software Development:
om
Efficiency: Streamlines processes to reduce unnecessary work and focus on delivering
.c
value.
Waste Reduction: Minimizes non-value-adding activities, enhancing productivity.
ot
Customer Value: Emphasizes delivering what customers need, promoting customer
sp
satisfaction.
Continuous Improvement: Encourages iterative enhancements to processes and
og
products.
bl
Principles of Lean Software Development:
s.
Eliminate Waste: Remove non-value-adding activities, such as unnecessary
nv
documentation or delays.
Build Quality In: Emphasize quality in all stages to avoid defects and rework.
ar
teams.
Defer Commitment: Delay decisions until the last responsible moment to maximize
flexibility.
yk
Deliver Fast: Aim for quicker delivery of value to customers through smaller
ija
iterations.
Respect People: Empower and respect team members, fostering collaboration and
//v
innovation.
Optimize the Whole: Optimize the entire software development process, not just
s:
individual parts.
tp
ht
/
om
.c
ot
sp
og
bl
s.
nv
ar
um
yk
The Lean framework in software development emphasizes reducing waste, optimizing processes,
and delivering value to customers. Here's a step-by-step breakdown of the Lean framework with
//v
a use case:
s:
3. Create Flow:
/
om
● Objective: Streamline the process to ensure a smooth flow of work.
● Use Case Example: Optimizing feature development.
.c
● Activity: Implement Agile methodologies like Scrum or Kanban to break down work
ot
into smaller tasks, establish clear priorities, and ensure continuous delivery through
sprints or iterations.
sp
og
4. Establish Pull:
● Objective: Enable work to be pulled by customer demand or actual needs.
bl
● Use Case Example: Customer-driven feature development.
s.
● Activity: Prioritize tasks based on customer demand and feedback. Features or
nv
5. Seek Perfection:
um
og
bl
s.
nv
ar
um
yk
Real-World Example:
ija
the development process (value stream mapping), implements Agile practices for
s:
(seeking perfection).
ht
By following these steps within the Lean framework, the team aims to continuously deliver
value, reduce waste, and optimize their processes to create an efficient and customer-centric
e-commerce platform
2.2 SCRUM
Scrum is a framework for developing and sustaining complex products. Ken Schwaber and Jeff
Sutherland developed Scrum.
Scrum roles:
/
1. Scrum Master:
om
● Responsibilities:
.c
● Guides the Scrum team and ensures adherence to Scrum principles and practices.
● Facilitates Scrum events (such as Sprint Planning, Daily Stand-ups, Sprint
ot
Review, and Retrospective).
sp
● Removes impediments or obstacles hindering the team's progress.
● Helps the team understand and embrace the values, principles, and practices of
og
Scrum.
● Analogy: Often compared to a coach or facilitator who ensures the team follows the rules
bl
and helps them achieve their best performance.
s.
2. Product Owner:
nv
● Responsibilities:
ar
● Defines and prioritizes the product backlog based on customer and business
needs.
● Collaborates with the team to ensure the right features are developed and
yk
delivered.
ija
3. Development Team:
tp
● Responsibilities:
ht
Each role plays a crucial part in ensuring the effectiveness and success of the Scrum framework.
The Scrum Master supports the team in following Scrum practices, the Product Owner prioritizes
work according to business value, and the Development Team collaborates to deliver
high-quality increments within short timeframes.
/
om
.c
ot
sp
og
bl
s.
nv
ar
um
yk
ija
//v
● Objective: Define and prioritize the list of requirements or features (Product Backlog)
tp
● Activity: The Product Owner collaborates with stakeholders to compile a prioritized list
of user stories or features that need to be developed.
2. Sprint Planning:
● Objective: Plan the work to be done during the upcoming Sprint.
● Activity: The Scrum Team (Product Owner, Scrum Master, and Development Team)
conducts a Sprint Planning meeting to select items from the Product Backlog for the
Sprint. The team decides on the Sprint Goal and creates a Sprint Backlog.
/
om
Stand-up meeting. Each member shares:
● What they've done since the last meeting.
● What they plan to do until the next meeting.
.c
● Any impediments blocking their progress.
ot
sp
4. Sprint Execution:
og
● Objective: Develop and deliver a potentially releasable product increment.
● Activity: The Development Team works on the tasks identified in the Sprint Backlog,
bl
guided by the Sprint Goal. They collaborate daily to complete work and address any
challenges.
s.
nv
5. Sprint Review:
ar
● Objective: Demonstrate the work completed during the Sprint and gather feedback.
● Activity: The Scrum Team, along with stakeholders, conducts a Sprint Review meeting.
um
The Development Team showcases the completed work, and stakeholders provide
feedback. The Product Backlog may be adjusted based on this feedback.
yk
6. Sprint Retrospective:
ija
● Activity: The Scrum Team holds a Sprint Retrospective meeting to discuss what went
well, what didn't, and how to improve. Action items for improvement are identified and
s:
Iterative Process:
ht
● Repeat: After the Sprint Retrospective, the next Sprint begins, following the same
sequence of events. Each Sprint delivers a potentially shippable product increment, and
the process continues iteratively.
This iterative approach in the Scrum framework allows teams to regularly inspect and adapt,
delivering value incrementally with each Sprint while continuously improving their processes.
2.3 Crystal
The Crystal methodology, developed by Alistair Cockburn, is a family of Agile methodologies
that adapts to various project sizes and contexts. It emphasizes the human aspects of software
development and tailors practices to the specific needs of a project. The Crystal Clear variant is
/
om
one of the iterations within the Crystal family, suitable for small teams working on relatively
straightforward projects.
.c
Crystal Clear Methodology Steps:
ot
sp
Project Initiation:
● Objective: Define the project vision, goals, and initial requirements.
og
● Example: Initiating the development of an online portfolio website for a
freelance designer.
bl
Iteration Planning:
s.
● Objective: Plan iterations or increments of work.
● Example: Planning the first iteration to include basic website structure,
nv
● Example: After each iteration (say, every two weeks), deliver a functional part
of the website to gather feedback.
yk
Close Collaboration:
s:
/
om
Technical Environment with Automated Tests: Foster a technical environment
where testing is automated, ensuring code quality.
.c
2.4 Feature Driven Development (FDD).
ot
sp
Feature Driven Development (FDD) is an iterative and incremental software development
methodology. Here are the eight practices within FDD, along with an example of its life
og
cycle:
bl
s.
Eight Practices of Feature Driven Development (FDD):
nv
/
● Objective: Design and develop features collaboratively.
om
● Example: Collaboratively design the user interface and functionality for each
.c
feature in the payroll system.
ot
Build by Feature:
sp
● Objective: Develop and implement features according to the design.
● Example: Program and code each feature, ensuring adherence to the design
og
specifications.
Regular Builds: bl
s.
● Objective: Ensure regular integration and testing of developed features.
nv
Inspections:
● Objective: Review and assess the progress of features regularly.
yk
Domain Walkthrough: Understand the project scope and define the domain model.
ht
Develop Overall Model: Create an object model that represents the system's initial state.
Feature List Creation: Identify and list features to be implemented.
Plan by Feature: Plan development cycles based on features.
Design by Feature: Collaboratively design the features.
Build by Feature: Develop and implement features.
Regular Builds and Testing: Integrate and test features regularly.
Client Sign-Off: Obtain client approval for completed features.
Iterate and Refine: Iterate through the steps for subsequent features.
/
om
.c
ot
sp
og
bl
s.
nv
ar
throughout the software development life cycle. Within ASD, the Speculate-Collaborate-Learn
ija
(SCL) life cycle serves as a guideline for iterative and adaptive development. Here's an
//v
1. Speculate:
tp
/
om
3. Learn:
● Objective: Continuously learn and adapt based on feedback, evolving requirements, and
.c
changing market conditions.
ot
● Example: After releasing the initial version of the app, analyze user behavior, ratings,
and feedback. Use this data to identify areas for improvement, such as refining the user
sp
interface, optimizing delivery routes, or adding new features based on user requests.
og
bl
s.
nv
ar
um
yk
ija
//v
s:
tp
ht
Real-World Application:
● Scenario: A team developing a food delivery app using ASD's SCL cycle.
● Speculate: Initial discussions and market research focus on essential app features, user
personas, and potential technical challenges.
● Collaborate: Collaborative workshops with stakeholders refine the app's scope,
incorporating insights from chefs, delivery personnel, and customers into the project plan.
● Learn: After launching the app, continuous analysis of user data and feedback helps in
adapting the app's features, usability, and services to meet evolving customer needs and
preferences.
/
adaptability and continuous improvement by embracing change, involving stakeholders in
om
decision-making, and learning from real-world feedback to refine and evolve the software
.c
product iteratively.
ot
sp
Six characteristics :
og
Adaptive Software Development's (ASD) Speculate-Collaborate-Learn (SCL) life cycle is
underpinned by six basic characteristics that guide its iterative and adaptive nature:
bl
s.
1. Collaboration and Communication:
nv
● Example: Analyzing user behavior, market trends, and user feedback to continuously
ht
refine and enhance the software throughout its development life cycle.
3. Incremental Development:
● Objective: Develop the software incrementally, delivering small, manageable pieces of
● Example: Releasing and improving upon a basic version of the software and gradually
/
om
4. Flexibility and Adaptability:
.c
● Objective: Maintain flexibility to adapt to evolving requirements, technology
ot
advancements, and changing market conditions.
sp
● Example: Being responsive to changing customer needs or industry trends by adjusting
og
the project scope or feature priorities as required.
bl
5. Collaboration with Customers:
s.
nv
sessions to ensure the software aligns with their needs and preferences.
yk
● Objective: Establish a continuous feedback loop to gather insights and refine the
development approach.
s:
2. Planning Phase:
/
om
● Objective: Plan the project's scope, features, and iterations.
● Activities: Break down project requirements into user stories, estimate tasks, and create a
.c
release plan. For example, in the healthcare app project, planning involves prioritizing
ot
features like appointment scheduling and medical history tracking for the initial release.
sp
3. Iteration to Release Phase:
og
● Objective: Develop, test, and integrate features in iterative cycles.
bl
● Activities: Teams work on short iterations (e.g., 1-2 weeks), completing coding, testing,
and integrating features. In the healthcare app, each iteration may focus on specific
s.
modules, such as user authentication or database integration.
nv
4. Productionizing Phase:
ar
5. Maintenance Phase:
//v
● Activities: Address user feedback, fix bugs, and implement enhancements. In the
healthcare app, this phase includes regular updates to improve features, security patches,
tp
6. Death Phase:
● Objective: Decommission or replace the software at the end of its lifecycle.
● Activities: Plan for the retirement of the software, archive data, and migrate users to
newer versions or alternative solutions. In the healthcare app example, this phase occurs
when a more advanced app replaces the older version.
Real-World Example:
● Scenario: Developing a project management tool using Extreme Programming.
● Application: During the Exploration Phase, discussions with project managers identify
critical features. In the Iteration to Release Phase, each iteration adds functionalities like
task assignment and progress tracking. The Productionizing Phase ensures scalability for
a large user base. Maintenance addresses user feedback, and the Death Phase occurs
when a newer, more advanced tool supersedes it.
/
om
XP's life cycle ensures continuous collaboration, adaptability, and high-quality software delivery
by iteratively developing, testing, and refining features while remaining responsive to changing
.c
requirements throughout the software's lifecycle.
ot
sp
og
bl
s.
nv
ar
um
yk
ija
//v
Tester: Conducts testing, ensures code quality, and validates user stories.
Tracker: Manages project progress, monitors tasks, and updates team boards.
Coach: Guides the team on XP principles and practices, facilitates communication, and
resolves issues.
Work Products in Extreme Programming:
User Stories: Descriptions of desired functionality from the user's perspective.
Code: Developed software components meeting user story requirements.
Tests: Automated and manual tests verifying the functionality and quality of code.
Release Plan: Plan detailing feature implementation and release schedules.
Documentation: Minimal but sufficient documentation for understanding code and
features.
/
om
Practices in Extreme Programming:
.c
Pair Programming: Two programmers collaborate on the same task, promoting code
ot
quality and knowledge sharing.
sp
Test-Driven Development (TDD): Writing tests before writing code to guide
development and ensure test coverage.
og
Continuous Integration (CI): Integrating code changes frequently into a shared
repository and running automated tests.
bl
Refactoring: Restructuring and improving code without altering its external behavior.
s.
Simple Design: Emphasizing simplicity and avoiding unnecessary complexity in code
architecture.
nv
ar
um
yk
ija
//v
s:
tp
ht