0% found this document useful (0 votes)
21 views4 pages

Agile Methodology

The document provides an overview of agile methodology, including its history, values, principles and frameworks like Scrum, Kanban and Extreme Programming. It discusses the concept, inception, iteration, release and retirement phases of agile development as well as roles, events, artifacts and practices of the Scrum framework.

Uploaded by

Warren Peralta
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)
21 views4 pages

Agile Methodology

The document provides an overview of agile methodology, including its history, values, principles and frameworks like Scrum, Kanban and Extreme Programming. It discusses the concept, inception, iteration, release and retirement phases of agile development as well as roles, events, artifacts and practices of the Scrum framework.

Uploaded by

Warren Peralta
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/ 4

Agile Methodology

– incremental and iterative product dev Agile Methodology Steps


performed in a collaborative environment. 1. Concept
– produces high quality software in a cost- 2. Inception
effective and timely manner 3. Iteration
4. Release
Brief History 5. Production
– 1990s waterfall inefficiencies led devs to adopt 6. Retirement
agile alternatives
– was founded in 2001 having adaptability and
responsiveness Concept
– it offers flexibility and effectiveness –Teams and stakeholders brainstorm and
– was created by a group of software devs who prioritize projects. Feasibility and value are assessed,
wanted a better approach to the traditional dev process creating a project backlog, setting the foundation for
– In Agile Manifesto(Founding Document), the what will be developed.
group outlined 4 values and 12 principles that guide the – Project Backlog – a complete list that breaks
agile philosophy down work that needs to be completed.

Values of Agile Inception


– Individuals and Interactions over processes – Plans how to execute it. Team formation,
and tools. initial customer requirements, and scoping work in
– Working software over comprehensive diagrams occur to establish the project’s framework.
documentation.
– Customer collaboration over contract Iteration
negotiation. – Development starts in Iterative cycles.
– Responding to change over following a plan. Requirements are confirmed, development occurs based
on these requirements, QA testing is conducted, and a
Principles of Agile working product is delivered. Feedback informs the next
1. Satisfy the customer through early and iteration.
continuous delivery of valuable software. *Basic workflow during this phase*
2. Welcome and harness changes for the 1. Requirement
customer’s competitive advantage, even late 2. Development
in development. 3. Testing
3. Deliver working software frequently, from a 4. Delivery
couple of weeks to a couple of months, with 5. Feedback
a preference for shorter timescales.
4. Have daily collaboration between business Release
people and developers throughout the – it ensures final testing, quality assurance, and
project. user documentation. The product is released into a
5. Build projects around motivated individuals. production, marking the end of development cycles.
Create the environment and support
developers need, and trust them to get the Production
job done. – The product is live in the production phase.
6. Prioritize face to face conversation as the Ongoing monitoring and support are provided to ensure
most efficient and effective method of the system runs smoothly, and users are supported in
conveying information to and within a understanding and using the features.
development team.
7. Measure progress by the amount of working Retirement
software completed. – When a system is outdated. End-of-life
8. Maintain a constant and sustainable pace of activities include notifying users and migrating the
development indefinitely. system out of production, marking the conclusion of its
9. Enhance agility through continuous attention lifecycle.
to technical excellence and good design.
10. Keep it simple. Simplicity – the art of
maximizing the amount of work not done –
is essential.
11. Recognize that the best architectures,
requirements, and designs emerge from self-
organizing teams.
12. Regularly reflect and adapt behavior for Agile Frameworks
continual improvement. – SCRUM
– KANBAM
Benefits of Agile – Extreme Programming (XP)
– Stakeholder engagement and collab, – Feature Driven Development (FDD)
– Predictable Costs and Scheduling – Dynamic Systems Development Method
– Flexible Amidst Change – Lean Software Development (LSD)
– Higher Quality Products
– Reduced Risk of faster ROI Scrum
– User-focused Decision Making
– Minimized Risk and Quick Value Delivery
– Agile Framework that focuses on multi-functional – Ongoing support and maintenance
teamwork, accountability and iteration, primarily used – Highly variable priorities
for software development – No fixed roles
– Continuous improvement focus
Key Roles in Scrum Framework – Limited need for time-boxed releases
Scum Roles: – Visualizing and managing workflow
– Product Owner – Small teams or solo projects
– Scrum Master – Project with varying skill sets
– Scrum Development Team
Scrum Events: Extreme Programming (XP)
– Daily Scrum aims to produce a higher quality of life for the
– Sprint Planning Meeting development team and higher quality software.
– Sprint Review XP was created by Kent Beck during the late 1990s and
– Sprint Retrospective has since gained popularity for its emphasis on close
Scrum Artifacts: collaboration, flexibility, and rapid iteration.
– Product Backlog
– Sprint Backlog Key Practices used in XP
– Increment (or Sprint Goal) – Pair Programming
– Test-driven development (TDD)
– Continuous Integration
– Continuous Integration
– On-Site Customer
– Small Releases
– Refactoring
– 40-Hour Workweek

Pair Programming
– Two programmers work together at one workstation.
One writes the code, while the other reviews each line as
it is written. They frequently switch roles.
When to use Scrum: Test-driven development (TDD)
– Complex projects evolving requirements – Write tests before writing the corresponding code. This
– Predictable timeboxed releases ensures that the code meets specified requirements and
– Collaborative team structure allows for easier refactoring.
– Customer engagement feedback Continuous Integration
– Prioritization of backlog items – Integrate code changes frequently into a shared
– Clear roles and responsibilities repository. Automated builds and tests are run after each
– Fixed-length sprints and iterative development integration to catch issues early.
– Focus on delivering value Collective Code Ownership
– Need for sprint planning and review – All team members are responsible for the entire
– Continuous improvement through retrospectives codebase. This promotes collaboration and allows any
team member to modify any part of the code.
Kanban On-Site Customer
– Used to implement agile and DevOps software – Have a customer or a representative from the
development. Requires real-time communication of customer's side available on-site to provide real-time
capacity and full transparency of work. Work items are feedback and clarify requirements.
represented visually on a kanban board, allowing team
members to see the state of every piece of work at any
time.

4 Guiding Principles Small Releases


– Visualize your workflow – Release small increments of the software frequently,
– Limit the amount of work in progress (WIP) ensuring that valuable features reach the customer
– Focus on flow sooner.
– Continuous improvement Refactoring
– Regularly improve the design of the code without
changing its
behavior. This prevents the accumulation of technical
debt.
40-Hour Workweek
– Encourage a sustainable work pace by limiting the
workweek to 40 hours. This helps maintain productivity
and avoid burnout.

When to use Extreme Programming:


– Frequent changes in software requirements
When to use Kanban: – Short-term projects with rapid changes
– Unclear customer requirements
– Steady flow of work – Urgent project risk mitigation
– Unpredictable workload – Limited number of programmers
– Ability to create automated test cases Progress Reports - Project managers should provide
– Fixed time project with new technology frequent progress reports of completed work.
– Continuous development and collaboration priorities
Key Roles in FDD:
Roles in Extreme Programming Project Manager - Oversees the entire project, ensuring
The Customer overall success.
– Makes business decisions, sets requirements, and Chief Architect - Focuses on system design and
manages project aspects. collaborates with skilled developers.
The Developer Development Manager - Leads the team, ensuring day-
– Every team member is a developer with a mix of skills to-day activities align with project goals.
for collaboration. Chief Programmer - Involved in analysis, design, and
The Tracker may manage small teams.
– Monitors progress using metrics, such as velocity and Class Owner - Responsible for feature development in
test outcomes (optional role). smaller teams.
The Coach Domain Expert - Contribute vital knowledge about the
– Offers guidance, especially for teams new to XP, customer's needs, guiding development priorities.
mentoring and promoting self-
discipline.

Feature – Driven Development


Dynamic Systems Development Method
– an iterative and incremental software development
– first came about in 1994 and was, at that time, used for
methodology that focuses on delivering features in a
software development. It was meant to be an
timely and efficient manner.
improvement on Rapid Application Development
– It emphasizes collaboration, domain modeling, and a
(RAD), which prioritized rapid prototyping and iteration
structured approach to feature development.
based on user feedback.
Best Practices:
– Domain object modeling
– Feature -centric development
– Individual class ownership
– Feature teams
– Inspections
Principles:
– Configuration management
1. Focus on the business need
– Regular build schedule
2. Deliver on time
– Progress reports
3. Collaborate
4. Never compromise quality
5. Build incrementally from firm foundations
6. Develop iteratively
7. Communicate continuously and clearly
Domain Object Modeling - Teams build class diagrams
8. Demonstrate control
to describe objects in a domain and the relationships
between them. This process saves time by helping you
Techniques & Practices:
uncover what function to add for each feature.
– Timeboxing
Feature - Centric Development - FDD organizes
– MoSCoW (Must have, Should have, Could have, Wont
development around specific features, ensuring a
have)
focused and manageable approach to building
– Modeling and Iterative Development
functionality.
– Prototyping
Individual Class Ownership - Each class or group of
– Workshops
code is assigned to a single owner.
Feature Teams - Although one person is responsible for
Timeboxing - DSDM adheres to strict deadline
the performance and quality of each class, a feature may
standards. To do so, one must break down the whole of
involve more than one class, so everyone in the feature
the project into smaller items that each have a firm
team contributes to design and implementation
budget and timeframe. To navigate this, requirements are
decisions.
prioritized. If time or money is running out, lowest
Inspections - FDD teams perform inspections to detect
priority requirements are removed. A finished project
defects and ensure the best quality.
then comes from only the most essential requirement
Configuration Management - This practice involves
items.
identifying source code for all features and documenting
MoSCoW - This is the prioritization groups used to rank
changes.
items from highest level of importance to the lowest.
Regular Build Schedule - This best practice will make
The prioritizations groups are Must Have, Should Have,
sure that the team always has an up-to-date system that
Could Have, and Won't Have. Configuration
they can demonstrate for the client.
management helps to navigate all of these competing
deliverables, often being developed at the same time.
Modelling and Iterative Development - Modelling
helps to visualize different aspects of the project along
the way. This helps to present each item in development
and allow for iterative development by providing regular
feedback and implementing improvement.
Prototyping - Like many agile methodologies,
prototyping is essential to test run the project at an early,
conceptual stage. It is a way to map out the basic
functions, discover glaring weaknesses, and allow users Eliminate Waste
to test run the software. – Lean Philosophy states that everything that does not
Workshops - Users and stakeholders are brought provide value to the finished product is waste.
together to discuss requirements, issues, results, and Amplify Learning
testing. DSDM relies on high levels of user interaction, It is to create and retain knowledge to avoid costly
right from the get-go. Testing is hugely important for relearning and gather and test new ideas to avoid
DSDM, as it ensures high quality results. building the wrong features or contributing to defects.
Decide as Late as Possible
DSDM Roles: To remove as much uncertainty as possible by testing
– The Executive Sponsor and experimenting iteratively to adapt to changes or
– Visionary correct mistakes before they get locked in by further
– Ambassador User development.
– Advisor User Deliver as Fast as Possible
– Project Manager The shorter the iterations, the better the learning and
– Technical Coordinator communication within the team.
– Team Leader Empower the Team
– Solutions Developer Also called respect for people
– Solutions Tester Build Integrity In
– Scribe Quality of the software code “Build quality in”
– Facilitator 2 types of integrity:
– Specialist Roles Perceived – elements obvious to end users
Conceptual –The product should work on consistent
entities or operations to avoid duplication and ensure the
system as a whole has integrity.
Optimize the whole development process
It looks at dependencies and builds for collaboration to
ensure that every employee is incentivized to optimize
for the whole - not just for their part.

Lean Software Development (LSD)


An agile framework based on optimizing development
time and resources, eliminating waste, and ultimately
delivering only what the product needs. The Lean
approach is also often referred to as the Minimum Viable
Product (MVP) strategy, in which a team releases a bare-
minimum version of its product to the market, learns
from users what they like, don't like and want to be
added, and then iterates based on this feedback.
Brief History:
Toyota has been credited to inspire the lean development
approach which is meant for optimizing production and
minimize waste. Seeing Toyota's lean approach many
other manufacturing teams started to follow the same
strategy. And it was first adopted in software
development in 2003.

You might also like