KEMBAR78
Agile Development Ultimate Slides | PPT
Agile development Extreme Programming (XP) Abder-Rahman Ali M.S.Software Engineering DePaul CTI [email_address]
Just before we begin… Agile development is a: Software development  process model . .
Software development  Process Task (1) Task (2) Task (3) . . . Task (n) Goal HIGH QUALITY SOFTWARE Action
In other words…
THE ROADMAP THAT YOU FOLLOW
Software development Process   Models
Nature of Software Change
Change in what? Software being built (i.e. requirements). Team members. New technology appearing.
Implications … Change is the  HEART  of software. Support for changes should be built in  everything  we do in software
So, what is Agility? A  rapid  and  effective   response  to  change .
So, what is Agility? Effective  communication  among stakeholders.
So, what is Agility? Drawing the  customer into the team .
This yields to…
Rapid  &  incremental  delivery of software.
An Agile team… A team that is able to appropriately  to changes.
Extreme Programming (XP) Planning Design Test Coding Release The XP Process The most widely used Agile process, and it is originally proposed by Kent Benck.
Planning
Design KIS Principle We  just  want the design to provide an  implementation guidance  for the story  as it is written ---nothing less, nothing more. Don’t  try to design  extra  functionality because you  assume  it will be required later.
Design CRC Cards
Design Spike Solutions 1- A design problem occurs. 2- Create a  PROTOTYPE  of that portion of the design. 3- Implement and evaluate the prototype. Intent: To lower risk when true implementation starts.
Design Refactoring Changing  a software system in such a way that: 1- The internal structure is improved. 2- The external behavior is not altered (not changed). Design occurs  CONTINUOUSLY  as the system is constructed. Also means:
Testing TEST FIRST
Testing Unit tests are written  before  the code. Tests are run to ensure that our software  fails . A  good  test case is one that ensures that the software fails. Test is rerun  until it passes .
Testing All unit tests are executed  daily . This can raise warning flags  early  if things are going wrong.
Testing Acceptance tests (customer tests): They are specified by the customer. They focus on the overall system features and functionality that are visible and reviewable by the customer.  They are derived from user stories.
Testing Fixing small problems every few hours takes  less time  than fixing huge problems just before the deadline. Fact:
Coding Pair Programming
Coding Two people work together at one computer to create code for a story. This provides a mechanism for  real-time  problem solving  and real-time  quality assurance . Keeps the developers focused on the problem at hand. As pair programmers complete their work, the code they develop is  integrated  with the work of others.
Coding ROI
Coding ROI
Release Project Velocity The  number of stories  that we performed in this release.
When to use XP? Dynamically changing requirements. Risky projects. Small development groups (up to 100). Non-fixed price contract.
XP Rules… Planning User Stories Release Planning Small Releases Measure Project Velocity Divide project to iterations Iterations Planning Move People around Stand up meeting Designing Simplicity CRC cards Spike solutions Refactor
XP Rules… Coding Customer available Code standards Test-Driven Pair Programming Sequential change integration Integrate often Collective code ownership Don’t optimize early No overtime Testing Unit test everything All tests pass before release Bug == new test Acceptance tests
We Must Ask Ourselves… Do we need Agile or any other  Software Development Process models  in our lab?
Questions?

Agile Development Ultimate Slides

  • 1.
    Agile development ExtremeProgramming (XP) Abder-Rahman Ali M.S.Software Engineering DePaul CTI [email_address]
  • 2.
    Just before webegin… Agile development is a: Software development process model . .
  • 3.
    Software development Process Task (1) Task (2) Task (3) . . . Task (n) Goal HIGH QUALITY SOFTWARE Action
  • 4.
  • 5.
    THE ROADMAP THATYOU FOLLOW
  • 6.
  • 7.
  • 8.
    Change in what?Software being built (i.e. requirements). Team members. New technology appearing.
  • 9.
    Implications … Changeis the HEART of software. Support for changes should be built in everything we do in software
  • 10.
    So, what isAgility? A rapid and effective response to change .
  • 11.
    So, what isAgility? Effective communication among stakeholders.
  • 12.
    So, what isAgility? Drawing the customer into the team .
  • 13.
  • 14.
    Rapid & incremental delivery of software.
  • 15.
    An Agile team…A team that is able to appropriately to changes.
  • 16.
    Extreme Programming (XP)Planning Design Test Coding Release The XP Process The most widely used Agile process, and it is originally proposed by Kent Benck.
  • 17.
  • 18.
    Design KIS PrincipleWe just want the design to provide an implementation guidance for the story as it is written ---nothing less, nothing more. Don’t try to design extra functionality because you assume it will be required later.
  • 19.
  • 20.
    Design Spike Solutions1- A design problem occurs. 2- Create a PROTOTYPE of that portion of the design. 3- Implement and evaluate the prototype. Intent: To lower risk when true implementation starts.
  • 21.
    Design Refactoring Changing a software system in such a way that: 1- The internal structure is improved. 2- The external behavior is not altered (not changed). Design occurs CONTINUOUSLY as the system is constructed. Also means:
  • 22.
  • 23.
    Testing Unit testsare written before the code. Tests are run to ensure that our software fails . A good test case is one that ensures that the software fails. Test is rerun until it passes .
  • 24.
    Testing All unittests are executed daily . This can raise warning flags early if things are going wrong.
  • 25.
    Testing Acceptance tests(customer tests): They are specified by the customer. They focus on the overall system features and functionality that are visible and reviewable by the customer. They are derived from user stories.
  • 26.
    Testing Fixing smallproblems every few hours takes less time than fixing huge problems just before the deadline. Fact:
  • 27.
  • 28.
    Coding Two peoplework together at one computer to create code for a story. This provides a mechanism for real-time problem solving and real-time quality assurance . Keeps the developers focused on the problem at hand. As pair programmers complete their work, the code they develop is integrated with the work of others.
  • 29.
  • 30.
  • 31.
    Release Project VelocityThe number of stories that we performed in this release.
  • 32.
    When to useXP? Dynamically changing requirements. Risky projects. Small development groups (up to 100). Non-fixed price contract.
  • 33.
    XP Rules… PlanningUser Stories Release Planning Small Releases Measure Project Velocity Divide project to iterations Iterations Planning Move People around Stand up meeting Designing Simplicity CRC cards Spike solutions Refactor
  • 34.
    XP Rules… CodingCustomer available Code standards Test-Driven Pair Programming Sequential change integration Integrate often Collective code ownership Don’t optimize early No overtime Testing Unit test everything All tests pass before release Bug == new test Acceptance tests
  • 35.
    We Must AskOurselves… Do we need Agile or any other Software Development Process models in our lab?
  • 36.