0
Agile Development<br />Dennis Degryse- DEBOCOM bvba.<br />
16/03/2011<br />Agile Development<br />2<br />
Contents<br />Object-Oriented Analysis and Design<br />Planning<br />Waterfall Development Process<br />Scrum<br />Extreme...
Object-oriented analysis and design<br />Agile Development<br />
Object-oriented Analysis and Design<br />Conceptual models<br />OO Systems<br />OO Analysis<br />What should it do?<br />O...
Object-oriented Analysis and Design<br />Requirements analysis<br />Functional Requirements<br />Quality requirements<br /...
Requirements Analysis<br />16/03/2011<br />Agile Development<br />7<br />
Requirements Analysis<br />Functional Requirements<br />Defines functions in a software system<br />What should the system...
Requirements Analysis<br />Stakeholder interviews<br />16/03/2011<br />Agile Development<br />9<br />
Requirements Analysis<br />Use-case diagram<br />16/03/2011<br />Agile Development<br />10<br />
Requirements Analysis<br />Quality Requirements<br />What is the system supposed to BE?<br />Execution Qualities<br />Secu...
Domain Analysis<br />Model-driven<br />Object-oriented models<br />Entity-relationship diagrams<br />Basis for software ar...
Domain Analysis<br />Object-oriented model<br />Entity-relationship diagram<br />16/03/2011<br />Agile Development<br />13...
Activity Diagram<br />Workflow of components in a system<br />Explains a process in more detail using models<br />Uses ste...
Activity Diagram<br />Activity Diagram<br />16/03/2011<br />Agile Development<br />15<br />
Sequence Diagram<br />Interaction between processes<br />Specification of runtime scenarios<br />Diagram<br />Object life ...
Sequence Diagram<br />Sequence Diagram<br />16/03/2011<br />Agile Development<br />17<br />
Planning<br />Agile Development<br />
Planning<br />Problems<br />Estimating time costs<br />Unplanned interrupts<br />Different team member qualities<br />Chan...
Estimating Time Costs<br />Clearly define all requirements<br />Define a fixed scope<br />Planning Poker<br />Estimating t...
Planning Poker<br />Traditional Planning<br />Planning Poker<br />4<br />4<br />4<br />2<br />1<br />2<br />4<br />4<br />...
Unplanned interrupts<br />Prevention<br />System back-up, source control, …<br />Deep analysis<br />Planning margin<br />R...
Different Team Member Qualities<br />Right task for the right team member<br />Stimulate team members to…<br />… work clos...
Changing Requirements<br />Additional functionalities<br />Within the scope of the project?<br />Changes in existing funct...
Waterfall development process<br />Agile Development<br />
Waterfall Development Process<br />16/03/2011<br />Agile Development<br />26<br />
Waterfall Development Process<br />Traditional<br />Problems<br />Adaptability<br />Visibility<br />Business value<br />Ha...
Waterfall Development Process<br />Visibilty<br />Adaptability<br />16/03/2011<br />Agile Development<br />28<br />
Waterfall Development Process<br />Business value<br />Risk<br />16/03/2011<br />Agile Development<br />29<br />
Waterfall Development Process<br />Results<br />Estimated time is nearly 50% of actual time cost<br />Project cost is much...
Scrum<br />Agile Development<br />
Scrum<br />Artifacts<br />Roles<br />Process<br />Preparation<br />Sprints<br />Deliverable<br />16/03/2011<br />Agile Dev...
Artefacts<br />Product scope<br />Product backlog<br />Product burndown<br />Delta report<br />Impediments list<br />Sprin...
Roles<br />Product owner<br />Business perspective<br />Voice of the costumer<br />Manages Product Backlog<br />Scrum mast...
Roles<br />Product owner<br />Business perspective<br />Voice of the costumer<br />Manages Product Backlog<br />Scrum mast...
Process<br />Preparation<br />Deliverable<br />Sprints<br />16/03/2011<br />Agile Development<br />36<br />
Preparation<br />Initial product backlog<br />Output from analysis<br />Stories (functionality)<br />Priorities<br />Initi...
Sprints<br />A sprint is…<br />… a focused effort for a 2 (up to 4)-week period toward fixed goals<br />… a 6-step cycle<b...
Sprint Planning Meeting<br />Select functionalities to implement<br />Snapshot of stories from Product Backlog<br />Re-eva...
Daily Cycle<br />Daily Scrum<br />Brief meeting (max. 15 min)<br />Eliminate speed impediments<br />Daily Work<br />Pair P...
Daily Cycle<br />Burndown Chart<br />Visual representation offinished and remainingstories<br />Sprint-level<br />Product-...
Product Increment<br />Demonstration<br />To users and stakeholders<br />Working software<br />Evaluation<br />Progress st...
Sprint Review<br />Assessment of project progress<br />On WHAT the team is building<br />Required adaptations<br />Next co...
Sprint Retrospective<br />Meeting about project progress<br />On HOW the team is building<br />Increase productivity<br />...
Update Product Backlog<br />Meeting about project progress<br />Add new requirements<br />Update priorities<br />Daily Cyc...
Deliverable<br />Offering the product owner visibility<br />Demonstration<br />Fully functional Product<br />Offering adap...
Extreme programming<br />Agile Development<br />
Extreme Programming<br />Pair Programming<br />KISS<br />Continuous Testing<br />Continuous Integration<br />Continuous Re...
Pair Programming<br />Rules<br />1 Keyboard<br />2 Programmers<br />Typing and tactically thinking<br />Strategically thin...
KISS<br />Keep it stupid/simple<br />Only implement what’s required now<br />Refactor in the future<br />16/03/2011<br />A...
Continuous Testing<br />Advantages<br />Deterministically measuring progress<br />Preventing defects<br />Test First<br />...
Continuous Integration<br />Rules<br />Quickly release code<br />Hold onto changes for max. 1 day<br />Everyone works on t...
Continuous Refactoring<br />Problems<br />Readability of code<br />Maintainability of code<br />Navigating code<br />Desig...
Continuous Refactoring<br />Readability of code<br />The smell of code<br />Duplicate code smell<br />Long method smell<br...
Continuous Refactoring<br />Duplicate code smell<br />Textual level<br />Conceptual level<br />Long method smell<br />Code...
Continuous Refactoring<br />Maintainability of code<br />The smell of code<br />Feature envy code smell<br />Object-orient...
Continuous Refactoring<br />Feature envy code smell<br />Highly coupled classes<br />Delineation of logic<br />Object-orie...
Continuous Refactoring<br />Lazy class code smell<br />Classes that have little or nothing to do<br />Contrived complexity...
Continuous Refactoring<br />Navigating code<br />Conventions<br />Consistency<br />Naming<br />Scoping<br />IDE<br />Diagr...
Continuous Refactoring<br />Design correctness<br />Liskov substitution principle<br />Sibling refactoring<br />Refactor t...
Continuous Refactoring<br />Solutions<br />Remove redundancy<br />Rejuvenate obsolete designs<br />Express everything once...
Improving Extreme Programming<br />Disadvantages of XP<br />Pair programming in small teams<br />Refactoring over generic ...
TOOLS<br />Agile Development<br />
Tools<br />Analysis<br />UML Software<br />IDE Plugin’s<br />Round-trip engineering tools<br />Scrum and Extreme Programmi...
Analysis<br />UML Software<br />Visual Paradigm<br />Microsoft Visio<br />Umbrello<br />MS Visual Studio 2010<br />16/03/2...
Scrum and Extreme Programming<br />Web-based front-ends<br />Assembla<br />Trac<br />Jira<br />Repositories<br />SVN<br />...
Conclusion<br />Agile Development<br />
Conclusion<br />Iterative process<br />Continuous evolution<br />Planning<br />Developing<br />Refactoring<br />Testing<br...
Conclusion<br />Visibilty<br />Adaptability<br />16/03/2011<br />Agile Development<br />69<br />
Conclusion<br />Business value<br />Risk<br />16/03/2011<br />Agile Development<br />70<br />
Q&A<br />Agile Development<br />
Q&A<br />16/03/2011<br />Agile Development<br />72<br />
Upcoming SlideShare
Loading in...5
×

Agile Development

11,034

Published on

Published in: Technology, Business
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,034
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
404
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Transcript of "Agile Development"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×