Agile software development is a methodology focused on iterative and incremental progress through collaboration among self-organizing, cross-functional teams. The Agile Manifesto emphasizes customer satisfaction, welcoming changes even late in development, and delivering working software frequently, among other principles. While Agile offers advantages like adaptability, it faces challenges such as difficulties in documentation, measuring progress, and maintaining customer interest.
What is AgileSoftware Development?
■ Agile software development is
a group of software development
methodologies based on iterative
and incremental development,
where requirements and solutions
evolve through collaboration
between self-organizing, cross-functional teams.
2Software and System Engineering
3.
Agile Manifesto
Individual andInteraction over Process andTools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
The manifesto set out to establish principles to guide a better approach
to software development.
https://agilemanifesto.org/
3Software and System Engineering
4.
Agile Manifesto Principles
■Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
■ Welcome changing requirements, even late in development. Agile processes
harness change for the customer’s competitive advantage.
■ Deliver 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.
■ Build 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 to and
within a development team is face-to-face conversation.
4Software and System Engineering
5.
Agile Manifesto PrinciplesCont..
■ 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 behaviour accordingly.
5Software and System Engineering
6.
Differences between Agiledevelopment and
traditional development:
■ Agile is based on the adaptive software development methods where as the
traditional SDLC models like waterfall model is based on predictive approach.
6Software and System Engineering
Agile Software Development: Jinjin LiTechnische Universitat Berlin
7.
Differences between Agiledevelopment
and traditional development:
Software and System Engineering 7
https://www.visual-paradigm.com/scrum/what-is-agile-software-development/
8.
When Agile?
■ Youcan't estimate the time you'll need and don't know the full scope of
requirements
■ You don't know whether there's a need on the market for your software
■ You can afford to iterate and don't need to deliver a fully functional software at
once
■ Clients don't have a fixed budget/schedule
8Software and System Engineering
9.
Problems with Agile
■Documentation tends to get side-tracked, which makes it harder for new
members to get up to speed.
■ It can be difficult to keep the interest of customers who are involved in the
process.
■ It's more difficult to measure progress than it is inWaterfall because progress
happens across several cycles.
■ Agile demands more time and energy from everyone because developers and
customers must constantly interact with each other.
■ Transfer of technology to new team members may be quite challenging due to
lack of documentation.
9Software and System Engineering