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

Agile Development Class Notes

Uploaded by

salihsami79
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)
65 views4 pages

Agile Development Class Notes

Uploaded by

salihsami79
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 Development Class Notes

What is Agile Development?

Agile development is an iterative and incremental approach to software


development that emphasizes flexibility, collaboration, and customer
feedback. It contrasts with traditional "waterfall" models, which are
more linear and sequential. Agile prioritizes working software over
extensive documentation, responding to change over following a rigid
plan, and customer collaboration over contract negotiation. It's a
philosophy more than a specific methodology, with several frameworks
falling under the "Agile" umbrella.

Key Principles of Agile:

 Customer satisfaction through early and continuous delivery of


valuable software.
 Welcoming changing requirements, even late in development.
 Delivering working software frequently, from a couple of
weeks to a couple of months, with a preference to the shorter
timescale.
 Business people and developers must work together daily
throughout the project.
 Building projects around motivated individuals. Give them the
environment and support they need, and trust them to get the
job done.
 The most efficient and effective method of conveying
information within a development team is face-to-face
conversation.
 Working software is the primary measure of progress.
 Agile processes promote sustainable development. The
sponsors, developers, and users should be able to maintain a
constant pace indefinitely.
 Continuous attention to technical excellence and good design
enhances agility.
 Simplicity—the art of maximizing the amount of work not
done—is essential.
 The best architectures, requirements, and designs emerge from
self-organizing teams.
 At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.

Common Agile Frameworks:

 Scrum: A popular framework that uses short iterations called


"sprints" (typically 2-4 weeks) to deliver increments of working
software. Involves roles like Product Owner (represents the
customer), Scrum Master (facilitates the process), and
Development Team. Uses daily stand-up meetings, sprint planning,
sprint reviews, and sprint retrospectives.
 Kanban: A lightweight framework that focuses on visualizing the
workflow and limiting work in progress (WIP). Uses a Kanban
board to track tasks through different stages (e.g., To Do, In
Progress, Done). Emphasizes continuous flow and improvement.
 Extreme Programming (XP): A more prescriptive framework
that emphasizes technical practices like pair programming, test-
driven development, and continuous integration.

Core Agile Practices:

 Iterative Development: Breaking down the project into smaller,


manageable iterations (sprints).
 Incremental Development: Delivering working software
increments at the end of each iteration.
 Continuous Integration: Regularly integrating code changes into
a shared repository.
 Test-Driven Development (TDD): Writing tests before writing
code.
 Pair Programming: Two developers working together on the
same code.
 Refactoring: Improving the structure and design of existing code.
 Daily Stand-ups: Short daily meetings to discuss progress and
identify roadblocks.
 Sprint Reviews: Demonstrating the working software to
stakeholders at the end of each sprint.
 Sprint Retrospectives: Reflecting on the sprint and identifying
areas for improvement.

Benefits of Agile:

 Faster time to market: Delivering working software more


frequently.
 Increased flexibility: Adapting to changing requirements more
easily.
 Improved quality: Continuous testing and feedback.
 Greater customer satisfaction: Involving customers throughout
the development process.
 Improved team morale: Empowering teams and fostering
collaboration.

Challenges of Agile:

 Requires a change in mindset: From a traditional, plan-driven


approach to a more flexible, adaptive approach.
 Can be difficult to implement in large organizations: Requires
strong commitment from management and teams.
 Requires strong communication and collaboration skills:
Between team members and stakeholders.
 Can be challenging to estimate project costs and timelines: Due
to the iterative nature of development.

Agile vs. Waterfall:

Feature Agile Waterfall


Approach Iterative and incremental Linear and sequential
Requirements Evolving Fixed
Customer Input Continuous Limited
Integrated throughout the At the end of the
Testing
process development cycle
Minimal, focuses on
Documentation Extensive
working software
Change Embraced Resisted
Delivery Frequent, small releases Infrequent, large releases
Export to Sheets

Further Study:

Agile is a broad topic with many nuances. Further study should include
exploring specific Agile frameworks (Scrum, Kanban, XP), learning
about Agile practices in detail, and understanding how to implement
Agile in different contexts. Consider pursuing certifications like
Certified Scrum Master (CSM) or Professional Agile Leader (PAL).
Practical experience working in an Agile team is invaluable.

You might also like