0% found this document useful (0 votes)
8 views

2-AgileDevelopment

Agile development emerged in response to the challenges of traditional, process-driven software development, emphasizing iterative approaches and flexibility to accommodate frequent changes. The Agile Manifesto prioritizes customer satisfaction, collaboration, and working software over extensive documentation and rigid planning. Various Agile methodologies, such as Extreme Programming and SCRUM, promote practices like daily stand-ups, continuous integration, and customer involvement to enhance productivity and team satisfaction.

Uploaded by

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

2-AgileDevelopment

Agile development emerged in response to the challenges of traditional, process-driven software development, emphasizing iterative approaches and flexibility to accommodate frequent changes. The Agile Manifesto prioritizes customer satisfaction, collaboration, and working software over extensive documentation and rigid planning. Various Agile methodologies, such as Extreme Programming and SCRUM, promote practices like daily stand-ups, continuous integration, and customer involvement to enhance productivity and team satisfaction.

Uploaded by

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

Agile Development

Agile
 Commercial software development was process
driven – heavy in documentation, management
 Changes were hard to manage and caused
challenges in design/project management
 By 1990s people felt that change was too frequent
and essential, and processes too heavy and slow to
handle it

 Agile development came as an answer/response


Agile Approaches
 Iterative development approach
 Each iteration is self contained
 Leads to an iteration release that integrates all
components across the team
 Each iteration moves software closer to final system
 Often iterations fixed in duration
 I.e. features/requirements are adjusted to fit the
schedule, not the other way around
 Can avoid “feature bloat”
 Iterations often short duration
 Instead of many months, a few weeks (1 to 4)

3
Principles
 The champions wrote an “Agile Manifesto” (2001)
 Some values articulated in it:
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan
 Individuals and interactions over processes and tools
 It is stating that the first item is valued more (does not
mean that the second item is valueless)
 Many implications
 Light on documentation – more on interaction/collaboration
 Light on planning (and management)
 Focus on code, light on methodologies like modeling, etc
 Software development viewed as an evolution

4
The Agile Manifesto
 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 time scale.
 Business people and developers must work together daily
through 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.
 Working software is the primary measure of progress.

5
The Agile Manifesto…
 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.

6
Agile Approaches
 Many methods evolved (with their own process)
 Main ones:
 Extreme Programming (XP)
 SCRUM
 Lean software development
 Crystal
 Feature Driven Development
 …
 Agile processes need a culture to succeed
 We will briefly discuss one – XP. XP has many
practices; some relate to project management,
others to engineering

7
Agile (XP) – PM practices
 There is a project manager, who is also the interface with
external groups
 Team - Small, cross-functional (< a dozen)
 Sit together in open office format
 Continuity – keep team together
 Shrinks with time – as experience grows, reduce team
 Customer rep (or someone acting as one)
 Planning game – planning is not done at the start of the
project, but for an iteration, reviewed weekly
 Release Planning. Write stories to capture requirements; estimate
effort for impl. a story; sort them by value and risk; adjust as
needed
 Iteration planning. At wk start – review of progress, and plan for
this iteration – stories to be implemented, broken in tasks, …
 Task list. Tasks (0.5 to 3 days) for user stories to be completed in
this iteration; team members volunteer for tasks

8
PM Practices
 Daily stand-up meetings. Each member updates on
work done, what is planned today, difficulties;
pairs may be formed in this meeting
 40 hr week for developers
 Customer involvement. Ready availability for
clarifications; a rep may be with the team
 Customer acceptance tests. Are to be developed
by the customer; may be automated

9
Technical Practices…
 User stories. High level requirements (not full
specs) – details developed through interaction,
priority (by customer), estimates (by developer)
 Coding standards to be adopted and followed
 Pair programming. Two programmers work
together at one computer, collaborating…
 This has been studied very widely
 Test-first programming. Also called test driven
development (TDD); for all stories at least one AT
designed early, tests added as code develops –
automated test scripts

10
Technical Practices…
 Continuous integration. Code can be checked in only if
passes its unit tests, and tests of the entire code; code
checked in daily
 Simple, incremental design. Initial design simple; need
not handle contingencies; Keep refining design as
system evolves
 Design change may require refactoring – additional effort; is
a whole technical area
 Refactoring. Change design without changing functionality
 Iterative development and deployment. Usually
timeboxed iterations. Often iterations will result in
deployment
 Shared code. Once checked in, anyone in team can
alter the code, i.e. collective ownership
11
Impact on Agile Use
 Developers: needs strong developers; not able to
accommodate technically weak ones
 Testers: Automated testing requires different types
of testers who can build scripts
 Project managers. More collaborative, share
decision making, handle more change
 Customers. Have to be more involved, spend more
time (a rep may be needed full time)
 Executive management. Culturally different - little
documentation, weak estimation upfront, ..

12
Practice Usage (where adopted)

Used often Used infrequently


Daily stand-up  TDD
Iterative development
Coding standards
 Pair programming
Continuous integration  Simple design,
Unit testing refactoring
40 hr work week  On-site customer
Open office
Planning game (prioritized
work list, iteration..)
…

13
Benefits of Agile and Key Success Factors

Benefits (perceived, actual) Important success factors


 Productivity  Ability of programmers
 Customer relationship  Project management
 Managing req change
 Organization culture
 Quality
 Contract practices
 Team satisfaction
 Reduce cycle time
 Team commn.
 Improved learning
 …
14

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy