Agile Software Development
Methodologies


  Presented by
         Prageeth Sandakalum
         Faculty of Information Technology,
         University of Moratuwa
         prageeth.itfac@live.com
The Agenda...
1.    What is SDLC ?
2.    The heavyweight approaches
3.    Why Agile ?
4.    The Agile Approach
5.    The Principles of Agile
6.    Agile for different Organizations
7.    Agile Project Development Issues
          Requirement Analysis, Project Management, Effort Estimation &
         Software Pricing
6.    Applications of Agile
7.    Extreme Programming, Scrum and Crystal Methods
8.    Agile Compared…
9.    Advantages and Limitations
                                                    Presented By
10.   Let’s get back to what we studied             Harry Mills / PRESENTATIONPRO
What is SLDC ?

                           It’s all about birth and death
 What are the approaches to developing software Systems?

    Process-Oriented Approach

    Data-Oriented Approach

    People Driven Approach ??

 Is there one best way?

 What is the difference between techniques, methodologies & tools?
                                             Presented By
 What does the popular term “SDLC” actually mean?
                                             Harry Mills / PRESENTATIONPRO
Heavyweight Approaches

           The ever loving “Waterfall”




                           Presented By
                           Harry Mills / PRESENTATIONPRO
Waterfall Continued….

                                      Features

 Easy to follow.

 Can be used for any sized project

 Every stage will be done at a specific time

 Documentation is produced at every stage

 Testing is done at every stage.

                                                Presented By
                                                Harry Mills / PRESENTATIONPRO
Waterfall Continued….

                                  Advantages

 Early visibility of potential problems.

 Requirements won't be changed.

 Easy to learn with the documentation

 Need only to follow the design

 Ideal for Critical Systems

                                            Presented By
                                            Harry Mills / PRESENTATIONPRO
Waterfall Continued….

                                Disadvantages

 Change of requirements is costly

 Lack of flexibility

 Comparatively more time required

 A black box to the customer

 Not applicable to RAD type projects

                                         Presented By
                                         Harry Mills / PRESENTATIONPRO
Waterfall Continued….

               An Example Scenario




Oh Give me a Home !
                           Presented By
                           Harry Mills / PRESENTATIONPRO
Waterfall Continued….

              This is what I wanted




                           Presented By
                           Harry Mills / PRESENTATIONPRO
Why Agile ?

                      Introduction to Agile Methods
What makes a method Agile?
   Incremental (small releases, rapid cycles)
   Cooperative (between developers and customers)
   Straightforward (method is easy to learn and modify
   Adaptive (embrace changes, even last moment)

When we use Agile?
   Requirements (uncertain or volatile)
   Developers (responsible and motivated)
                                             Presented By
   Customer (is involved and understands)   Harry Mills / PRESENTATIONPRO
The Agile Approach...

                       The Agile Manifesto


 Individuals and interactions over processes and tools

 Working software over comprehensive documentation

 Customer collaboration over contract negotiation

 Responding to changes over following a plan
                                      Presented By
                                      Harry Mills / PRESENTATIONPRO
Presented By
Harry Mills / PRESENTATIONPRO
The Building Blocks...

                            The Principles of Agile

Rapid, continuous delivery

Frequent delivery

Working software

Accommodation

Close, daily cooperation

Motivated, skilled people

Self-organizing teams                        Presented By
                                             Harry Mills / PRESENTATIONPRO
Adopting Agile...

                         Agile for different Organizations


The Start-Ups

Organizations with a history



Other Factors

      The Project Size

      Customers’ view point
                                           Presented By
                                           Harry Mills / PRESENTATIONPRO
How Agile works...

                      Agile Project Development

Agile Way of Requirement Analysis
     User Scenarios for requirement gathering


 “A user adds a new budget to the system to start financial
                       planning.”

       Does the user have to be logged in?
       What are the values stored in the budget?
       Who is responsible for the budget?   Presented By
                                            Harry Mills / PRESENTATIONPRO
User Scenarios Continued…

                 Characteristics of a User Scenario

         As a [type or role of user]
       I want to [perform some task]
      So that I can [reach some goal]

User Scenarios Should be…
  Independent
   Negotiable
   Valuable
   Estimable
   Brief
                                  Presented By

   Testable                      Harry Mills / PRESENTATIONPRO
How Agile works...

                          Effort Estimation

Estimating Work Effort
       Expert opinion
       Disaggregation
       Analogy

Estimating Work Effort in Agile way
       Effort-Accuracy relationships
       Planning Poker
       Ideal Days calculation
                                        Presented By
                                        Harry Mills / PRESENTATIONPRO
Agile Applications

                     The different Agile Approaches
 Extreme Programming
 SCRUM
 Crystal Family
 Dynamic System Development Method (DSDM)
 In-House Development
 Feature Driven Development (FDD)
 Internet-Speed Development (ISD)
 Pragmatic Programming
 XBreed
 Test Driven Development (TDD)
                                               Presented By
                   AND MANY MORE METHODS Mills / PRESENTATIONPRO
                                       Harry
Agile Applications Continued….

                     Extreme Programming

 Extreme Programming
     Based on 12 practises




                                Presented By
                                Harry Mills / PRESENTATIONPRO
XP Continued…

                         The 12 Practices


 The Planning Process       Pair Programming
 Small Releases             Collective Ownership
 Metaphor                   Continuous Integration
 Simple Design              40-hour Week
 Testing                    On-site Customer
 Refactoring                Coding Standard
                                       Presented By
                                       Harry Mills / PRESENTATIONPRO
Agile Applications Continued

                         SCRUM Process

 What is the Product Backlog ?

 What is a Sprint ?

 Sprint Review

 Sprint Retrospective

 Incorporate into the product backlog

 Print release                          Presented By
                                         Harry Mills / PRESENTATIONPRO
Agile Applications Continued

                         Crystal Methods

Introduced by Alistair Cockburn

Values of Crystal Methods
       People and Communication Centric
       High Tolerance

Types of Methods
       Crystal Clear
       Crystal Orange                 Presented By
                                       Harry Mills / PRESENTATIONPRO
Agile Vs Heavyweight




                       Presented By
                       Harry Mills / PRESENTATIONPRO
Is Agile Perfect ?

                      Advantages and Limitations
                    Shortened software development cycle time
                    High stability in the work load
                    High flexibility in changing the plans.
                    Can achieve higher quality in the software
                    The developers focus only on implementation

 Customer Collaboration
 Lack of Documentation
 Larger teams
 Lack of support in Critical Systems       Presented By
                                           Harry Mills / PRESENTATIONPRO
A final word...

                               The Summary

It is a building block which you can create different applications
on top of it


Agile has advantagesas well as limitations. It’s up to the
developers to decide on applicability


After all it’s an excellent approach for the competitive software
industry
                                              Presented By
                                              Harry Mills / PRESENTATIONPRO
A sign of Gratitude...

                        Thank you for your suppport.

Mr. Sanath A. Fernando, CEO, Ridgecrest Financial, for his
comments and reviews


Mr. Yohan Welikala, Managing Director, Codegen International, for
his encouragement and reviews




                                             Presented By
                                             Harry Mills / PRESENTATIONPRO
Thank You


???

Agile Software Development Methodology

  • 1.
    Agile Software Development Methodologies Presented by Prageeth Sandakalum Faculty of Information Technology, University of Moratuwa prageeth.itfac@live.com
  • 2.
    The Agenda... 1. What is SDLC ? 2. The heavyweight approaches 3. Why Agile ? 4. The Agile Approach 5. The Principles of Agile 6. Agile for different Organizations 7. Agile Project Development Issues Requirement Analysis, Project Management, Effort Estimation & Software Pricing 6. Applications of Agile 7. Extreme Programming, Scrum and Crystal Methods 8. Agile Compared… 9. Advantages and Limitations Presented By 10. Let’s get back to what we studied Harry Mills / PRESENTATIONPRO
  • 3.
    What is SLDC? It’s all about birth and death  What are the approaches to developing software Systems?  Process-Oriented Approach  Data-Oriented Approach  People Driven Approach ??  Is there one best way?  What is the difference between techniques, methodologies & tools? Presented By  What does the popular term “SDLC” actually mean? Harry Mills / PRESENTATIONPRO
  • 4.
    Heavyweight Approaches The ever loving “Waterfall” Presented By Harry Mills / PRESENTATIONPRO
  • 5.
    Waterfall Continued…. Features  Easy to follow.  Can be used for any sized project  Every stage will be done at a specific time  Documentation is produced at every stage  Testing is done at every stage. Presented By Harry Mills / PRESENTATIONPRO
  • 6.
    Waterfall Continued…. Advantages  Early visibility of potential problems.  Requirements won't be changed.  Easy to learn with the documentation  Need only to follow the design  Ideal for Critical Systems Presented By Harry Mills / PRESENTATIONPRO
  • 7.
    Waterfall Continued…. Disadvantages  Change of requirements is costly  Lack of flexibility  Comparatively more time required  A black box to the customer  Not applicable to RAD type projects Presented By Harry Mills / PRESENTATIONPRO
  • 8.
    Waterfall Continued…. An Example Scenario Oh Give me a Home ! Presented By Harry Mills / PRESENTATIONPRO
  • 9.
    Waterfall Continued…. This is what I wanted Presented By Harry Mills / PRESENTATIONPRO
  • 10.
    Why Agile ? Introduction to Agile Methods What makes a method Agile?  Incremental (small releases, rapid cycles)  Cooperative (between developers and customers)  Straightforward (method is easy to learn and modify  Adaptive (embrace changes, even last moment) When we use Agile?  Requirements (uncertain or volatile)  Developers (responsible and motivated) Presented By  Customer (is involved and understands) Harry Mills / PRESENTATIONPRO
  • 11.
    The Agile Approach... The Agile Manifesto  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to changes over following a plan Presented By Harry Mills / PRESENTATIONPRO
  • 12.
    Presented By Harry Mills/ PRESENTATIONPRO
  • 13.
    The Building Blocks... The Principles of Agile Rapid, continuous delivery Frequent delivery Working software Accommodation Close, daily cooperation Motivated, skilled people Self-organizing teams Presented By Harry Mills / PRESENTATIONPRO
  • 14.
    Adopting Agile... Agile for different Organizations The Start-Ups Organizations with a history Other Factors The Project Size Customers’ view point Presented By Harry Mills / PRESENTATIONPRO
  • 15.
    How Agile works... Agile Project Development Agile Way of Requirement Analysis  User Scenarios for requirement gathering “A user adds a new budget to the system to start financial planning.” Does the user have to be logged in? What are the values stored in the budget? Who is responsible for the budget? Presented By Harry Mills / PRESENTATIONPRO
  • 16.
    User Scenarios Continued… Characteristics of a User Scenario As a [type or role of user] I want to [perform some task] So that I can [reach some goal] User Scenarios Should be… Independent  Negotiable  Valuable  Estimable  Brief Presented By  Testable Harry Mills / PRESENTATIONPRO
  • 17.
    How Agile works... Effort Estimation Estimating Work Effort  Expert opinion  Disaggregation  Analogy Estimating Work Effort in Agile way  Effort-Accuracy relationships  Planning Poker  Ideal Days calculation Presented By Harry Mills / PRESENTATIONPRO
  • 18.
    Agile Applications The different Agile Approaches  Extreme Programming  SCRUM  Crystal Family  Dynamic System Development Method (DSDM)  In-House Development  Feature Driven Development (FDD)  Internet-Speed Development (ISD)  Pragmatic Programming  XBreed  Test Driven Development (TDD) Presented By AND MANY MORE METHODS Mills / PRESENTATIONPRO Harry
  • 19.
    Agile Applications Continued…. Extreme Programming Extreme Programming  Based on 12 practises Presented By Harry Mills / PRESENTATIONPRO
  • 20.
    XP Continued… The 12 Practices  The Planning Process  Pair Programming  Small Releases  Collective Ownership  Metaphor  Continuous Integration  Simple Design  40-hour Week  Testing  On-site Customer  Refactoring  Coding Standard Presented By Harry Mills / PRESENTATIONPRO
  • 21.
    Agile Applications Continued SCRUM Process  What is the Product Backlog ?  What is a Sprint ?  Sprint Review  Sprint Retrospective  Incorporate into the product backlog  Print release Presented By Harry Mills / PRESENTATIONPRO
  • 22.
    Agile Applications Continued Crystal Methods Introduced by Alistair Cockburn Values of Crystal Methods  People and Communication Centric  High Tolerance Types of Methods  Crystal Clear  Crystal Orange Presented By Harry Mills / PRESENTATIONPRO
  • 23.
    Agile Vs Heavyweight Presented By Harry Mills / PRESENTATIONPRO
  • 24.
    Is Agile Perfect? Advantages and Limitations Shortened software development cycle time High stability in the work load High flexibility in changing the plans. Can achieve higher quality in the software The developers focus only on implementation Customer Collaboration Lack of Documentation Larger teams Lack of support in Critical Systems Presented By Harry Mills / PRESENTATIONPRO
  • 25.
    A final word... The Summary It is a building block which you can create different applications on top of it Agile has advantagesas well as limitations. It’s up to the developers to decide on applicability After all it’s an excellent approach for the competitive software industry Presented By Harry Mills / PRESENTATIONPRO
  • 26.
    A sign ofGratitude... Thank you for your suppport. Mr. Sanath A. Fernando, CEO, Ridgecrest Financial, for his comments and reviews Mr. Yohan Welikala, Managing Director, Codegen International, for his encouragement and reviews Presented By Harry Mills / PRESENTATIONPRO
  • 27.

Editor's Notes

  • #4 Process-Oriented ApproachFocus is on flow, use and transformation of data in an information systemInvolves creating graphical representations such as data flow diagrams and chartsData-Oriented ApproachDepicts ideal organization of data, independent of where and how data are usedData model describes kinds of data and business relationships among the dataBusiness rules depict how organization captures and processes the data