Agile Development
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Agile Development

on

  • 6,571 views

 

Statistics

Views

Total Views
6,571
Views on SlideShare
6,568
Embed Views
3

Actions

Likes
4
Downloads
233
Comments
0

2 Embeds 3

http://www.linkedin.com 2
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Agile Development Presentation Transcript

  • 1. Agile Development
    Dennis Degryse- DEBOCOM bvba.
  • 2. 16/03/2011
    Agile Development
    2
  • 3. Contents
    Object-Oriented Analysis and Design
    Planning
    Waterfall Development Process
    Scrum
    Extreme Programming
    Conclusion
    16/03/2011
    Agile Development
    3
  • 4. Object-oriented analysis and design
    Agile Development
  • 5. Object-oriented Analysis and Design
    Conceptual models
    OO Systems
    OO Analysis
    What should it do?
    OO Design
    How should it do it?
    Reflects structures in the actual business process
    16/03/2011
    Agile Development
    5
  • 6. Object-oriented Analysis and Design
    Requirements analysis
    Functional Requirements
    Quality requirements
    Domain analysis
    Activity diagrams
    Sequence diagrams
    16/03/2011
    Agile Development
    6
  • 7. Requirements Analysis
    16/03/2011
    Agile Development
    7
  • 8. Requirements Analysis
    Functional Requirements
    Defines functions in a software system
    What should the system be able to DO?
    Hierarchy
    Use-cases
    Input
    Processing
    Output
    16/03/2011
    Agile Development
    8
  • 9. Requirements Analysis
    Stakeholder interviews
    16/03/2011
    Agile Development
    9
  • 10. Requirements Analysis
    Use-case diagram
    16/03/2011
    Agile Development
    10
  • 11. Requirements Analysis
    Quality Requirements
    What is the system supposed to BE?
    Execution Qualities
    Security, usability
    Evolution Qualities
    Testability, maintainability, scalability, extensibility
    16/03/2011
    Agile Development
    11
  • 12. Domain Analysis
    Model-driven
    Object-oriented models
    Entity-relationship diagrams
    Basis for software architectures
    16/03/2011
    Agile Development
    12
  • 13. Domain Analysis
    Object-oriented model
    Entity-relationship diagram
    16/03/2011
    Agile Development
    13
  • 14. Activity Diagram
    Workflow of components in a system
    Explains a process in more detail using models
    Uses stepwise activities and actions
    Petri net-like semantics
    16/03/2011
    Agile Development
    14
  • 15. Activity Diagram
    Activity Diagram
    16/03/2011
    Agile Development
    15
  • 16. Sequence Diagram
    Interaction between processes
    Specification of runtime scenarios
    Diagram
    Object life lines
    Messages
    (A)synchronous calls
    Return messages
    16/03/2011
    Agile Development
    16
  • 17. Sequence Diagram
    Sequence Diagram
    16/03/2011
    Agile Development
    17
  • 18. Planning
    Agile Development
  • 19. Planning
    Problems
    Estimating time costs
    Unplanned interrupts
    Different team member qualities
    Changing requirements
    16/03/2011
    Agile Development
    19
  • 20. Estimating Time Costs
    Clearly define all requirements
    Define a fixed scope
    Planning Poker
    Estimating time cost per use case
    Minimizes anchoring
    More accurate estimates
    16/03/2011
    Agile Development
    20
  • 21. Planning Poker
    Traditional Planning
    Planning Poker
    4
    4
    4
    2
    1
    2
    4
    4
    4
    3
    2
    3
    5
    5
    5
    4
    5
    5
    5
    4
    16/03/2011
    Agile Development
    21
  • 22. Unplanned interrupts
    Prevention
    System back-up, source control, …
    Deep analysis
    Planning margin
    Reserve time for unplanned interrupts
    Max. 80%
    16/03/2011
    Agile Development
    22
  • 23. Different Team Member Qualities
    Right task for the right team member
    Stimulate team members to…
    … work closely together
    … increase communication
    Share knowledge
    16/03/2011
    Agile Development
    23
  • 24. Changing Requirements
    Additional functionalities
    Within the scope of the project?
    Changes in existing functionalities
    Prevention
    Stakeholder interviews, analysis, contracts, …
    Generic code and architecture
    16/03/2011
    Agile Development
    24
  • 25. Waterfall development process
    Agile Development
  • 26. Waterfall Development Process
    16/03/2011
    Agile Development
    26
  • 27. Waterfall Development Process
    Traditional
    Problems
    Adaptability
    Visibility
    Business value
    Hard to plan
    16/03/2011
    Agile Development
    27
  • 28. Waterfall Development Process
    Visibilty
    Adaptability
    16/03/2011
    Agile Development
    28
  • 29. Waterfall Development Process
    Business value
    Risk
    16/03/2011
    Agile Development
    29
  • 30. Waterfall Development Process
    Results
    Estimated time is nearly 50% of actual time cost
    Project cost is much higher than estimated
    Functionality is not what the customer asked for
    16/03/2011
    Agile Development
    30
  • 31. Scrum
    Agile Development
  • 32. Scrum
    Artifacts
    Roles
    Process
    Preparation
    Sprints
    Deliverable
    16/03/2011
    Agile Development
    32
  • 33. Artefacts
    Product scope
    Product backlog
    Product burndown
    Delta report
    Impediments list
    Sprint scope
    Sprint backlog
    Sprint burndown
    16/03/2011
    Agile Development
    33
  • 34. Roles
    Product owner
    Business perspective
    Voice of the costumer
    Manages Product Backlog
    Scrum master
    Coach and fixer
    Evaluating
    16/03/2011
    Agile Development
    34
  • 35. Roles
    Product owner
    Business perspective
    Voice of the costumer
    Manages Product Backlog
    Scrum master
    Coach and fixer
    Evaluating
    Team members
    16/03/2011
    Agile Development
    35
  • 36. Process
    Preparation
    Deliverable
    Sprints
    16/03/2011
    Agile Development
    36
  • 37. Preparation
    Initial product backlog
    Output from analysis
    Stories (functionality)
    Priorities
    Initial release plan
    Business case
    Team assembly
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    37
  • 38. Sprints
    A sprint is…
    … a focused effort for a 2 (up to 4)-week period toward fixed goals
    … a 6-step cycle
    Sprint Planning Meeting
    Daily Cycle
    Product Increment
    Sprint Review
    Sprint Retrospective
    Update Product Backlog
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    38
  • 39. Sprint Planning Meeting
    Select functionalities to implement
    Snapshot of stories from Product Backlog
    Re-evaluate
    Time estimates
    Priorities
    Scope
    Output
    Sprint Backlog
    Sprint Goal
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    39
  • 40. Daily Cycle
    Daily Scrum
    Brief meeting (max. 15 min)
    Eliminate speed impediments
    Daily Work
    Pair Programming
    Continuous Testing
    Continuous Integration
    Refactoring
    Measuring Project Velocity
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    40
  • 41. Daily Cycle
    Burndown Chart
    Visual representation offinished and remainingstories
    Sprint-level
    Product-level
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    41
  • 42. Product Increment
    Demonstration
    To users and stakeholders
    Working software
    Evaluation
    Progress status
    Feedback
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    42
  • 43. Sprint Review
    Assessment of project progress
    On WHAT the team is building
    Required adaptations
    Next course to take
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    SprintReview
    Sprint Retro-spective
    16/03/2011
    Agile Development
    43
  • 44. Sprint Retrospective
    Meeting about project progress
    On HOW the team is building
    Increase productivity
    Keep work enjoyable
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    SprintReview
    Sprint Retro-spective
    16/03/2011
    Agile Development
    44
  • 45. Update Product Backlog
    Meeting about project progress
    Add new requirements
    Update priorities
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    SprintReview
    Sprint Retro-spective
    16/03/2011
    Agile Development
    45
  • 46. Deliverable
    Offering the product owner visibility
    Demonstration
    Fully functional Product
    Offering adaptability
    Feedbackper sprint
    Daily Cycle
    Sprint Planning Meeting
    Preparation
    Deliverable
    Sprints
    Product Increment
    Update Product Backlog
    Sprint Review
    Sprint Retro-spective
    16/03/2011
    Agile Development
    46
  • 47. Extreme programming
    Agile Development
  • 48. Extreme Programming
    Pair Programming
    KISS
    Continuous Testing
    Continuous Integration
    Continuous Refactoring
    16/03/2011
    Agile Development
    48
  • 49. Pair Programming
    Rules
    1 Keyboard
    2 Programmers
    Typing and tactically thinking
    Strategically thinking
    Advantages
    Same productivity
    Higher quality
    16/03/2011
    Agile Development
    49
  • 50. KISS
    Keep it stupid/simple
    Only implement what’s required now
    Refactor in the future
    16/03/2011
    Agile Development
    50
  • 51. Continuous Testing
    Advantages
    Deterministically measuring progress
    Preventing defects
    Test First
    Writing tests before actual code
    Unit-level and acceptance-level
    16/03/2011
    Agile Development
    51
  • 52. Continuous Integration
    Rules
    Quickly release code
    Hold onto changes for max. 1 day
    Everyone works on the latest version
    Advantages
    Avoiding and detecting compatibility issues early
    Avoiding diverging and fragmented development
    16/03/2011
    Agile Development
    52
  • 53. Continuous Refactoring
    Problems
    Readability of code
    Maintainability of code
    Navigating code
    Design correctness
    16/03/2011
    Agile Development
    53
  • 54. Continuous Refactoring
    Readability of code
    The smell of code
    Duplicate code smell
    Long method smell
    Code comments smell
    16/03/2011
    Agile Development
    54
  • 55. Continuous Refactoring
    Duplicate code smell
    Textual level
    Conceptual level
    Long method smell
    Code comments smell
    Apologies for code that’s hard to read
    Code should be self-explanatory
    Comments should describe why, not what.
    16/03/2011
    Agile Development
    55
  • 56. Continuous Refactoring
    Maintainability of code
    The smell of code
    Feature envy code smell
    Object-oriented myopia code smell
    Inappropriate intimacy code smell
    Lazy class code smell
    Contrived complexity code smell
    16/03/2011
    Agile Development
    56
  • 57. Continuous Refactoring
    Feature envy code smell
    Highly coupled classes
    Delineation of logic
    Object-oriented myopia code smell
    Fallacy of reuse
    Inappropriate intimacy code smell
    Encapsulation
    16/03/2011
    Agile Development
    57
  • 58. Continuous Refactoring
    Lazy class code smell
    Classes that have little or nothing to do
    Contrived complexity code smell
    Urge to use design patterns
    Extra complexity for the sake of complexity
    16/03/2011
    Agile Development
    58
  • 59. Continuous Refactoring
    Navigating code
    Conventions
    Consistency
    Naming
    Scoping
    IDE
    Diagrams
    16/03/2011
    Agile Development
    59
  • 60. Continuous Refactoring
    Design correctness
    Liskov substitution principle
    Sibling refactoring
    Refactor to one class
    Composition over inheritance
    Events over virtual methods
    Delegation over inheritance
    16/03/2011
    Agile Development
    60
  • 61. Continuous Refactoring
    Solutions
    Remove redundancy
    Rejuvenate obsolete designs
    Express everything once and only once
    Advantages
    Avoiding messy code and complexity
    Code is easier to understand and maintain
    Less time required to produce an improved system
    16/03/2011
    Agile Development
    61
  • 62. Improving Extreme Programming
    Disadvantages of XP
    Pair programming in small teams
    Refactoring over generic design
    Improvements
    Increase communication and integration speed
    Logging of documentation sources
    Deep analysis before coding is still a best practice
    16/03/2011
    Agile Development
    62
  • 63. TOOLS
    Agile Development
  • 64. Tools
    Analysis
    UML Software
    IDE Plugin’s
    Round-trip engineering tools
    Scrum and Extreme Programming
    Ticketing software
    Code repositories with version control
    Time registration software
    16/03/2011
    Agile Development
    64
  • 65. Analysis
    UML Software
    Visual Paradigm
    Microsoft Visio
    Umbrello
    MS Visual Studio 2010
    16/03/2011
    Agile Development
    65
  • 66. Scrum and Extreme Programming
    Web-based front-ends
    Assembla
    Trac
    Jira
    Repositories
    SVN
    GIT
    Mercurial
    CVS
    16/03/2011
    Agile Development
    66
  • 67. Conclusion
    Agile Development
  • 68. Conclusion
    Iterative process
    Continuous evolution
    Planning
    Developing
    Refactoring
    Testing
    Integration
    16/03/2011
    Agile Development
    68
  • 69. Conclusion
    Visibilty
    Adaptability
    16/03/2011
    Agile Development
    69
  • 70. Conclusion
    Business value
    Risk
    16/03/2011
    Agile Development
    70
  • 71. Q&A
    Agile Development
  • 72. Q&A
    16/03/2011
    Agile Development
    72