Your SlideShare is downloading. ×
0
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Agile Development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Agile Development

10,626

Published on

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

No Downloads
Views
Total Views
10,626
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
384
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Agile Development<br />Dennis Degryse- DEBOCOM bvba.<br />
  • 2. 16/03/2011<br />Agile Development<br />2<br />
  • 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. Object-oriented analysis and design<br />Agile Development<br />
  • 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. 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. Requirements Analysis<br />16/03/2011<br />Agile Development<br />7<br />
  • 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. Requirements Analysis<br />Stakeholder interviews<br />16/03/2011<br />Agile Development<br />9<br />
  • 10. Requirements Analysis<br />Use-case diagram<br />16/03/2011<br />Agile Development<br />10<br />
  • 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. 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. Domain Analysis<br />Object-oriented model<br />Entity-relationship diagram<br />16/03/2011<br />Agile Development<br />13<br />
  • 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. Activity Diagram<br />Activity Diagram<br />16/03/2011<br />Agile Development<br />15<br />
  • 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. Sequence Diagram<br />Sequence Diagram<br />16/03/2011<br />Agile Development<br />17<br />
  • 18. Planning<br />Agile Development<br />
  • 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. 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. 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. 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. 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. 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. Waterfall development process<br />Agile Development<br />
  • 26. Waterfall Development Process<br />16/03/2011<br />Agile Development<br />26<br />
  • 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. Waterfall Development Process<br />Visibilty<br />Adaptability<br />16/03/2011<br />Agile Development<br />28<br />
  • 29. Waterfall Development Process<br />Business value<br />Risk<br />16/03/2011<br />Agile Development<br />29<br />
  • 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. Scrum<br />Agile Development<br />
  • 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. 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. 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. 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. Process<br />Preparation<br />Deliverable<br />Sprints<br />16/03/2011<br />Agile Development<br />36<br />
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Extreme programming<br />Agile Development<br />
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. TOOLS<br />Agile Development<br />
  • 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. 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. 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. Conclusion<br />Agile Development<br />
  • 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. Conclusion<br />Visibilty<br />Adaptability<br />16/03/2011<br />Agile Development<br />69<br />
  • 70. Conclusion<br />Business value<br />Risk<br />16/03/2011<br />Agile Development<br />70<br />
  • 71. Q&A<br />Agile Development<br />
  • 72. Q&A<br />16/03/2011<br />Agile Development<br />72<br />

×