Agile software modelling


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Agile software modelling

  1. 2. <ul><li>Introduction </li></ul><ul><li>Warning! </li></ul><ul><li>Agile Current Status </li></ul><ul><li>Common Agile Practices </li></ul><ul><li>Criticisms </li></ul>
  2. 3. <ul><li>Agile software development is a group of software development methodologies that are based on similar principles. Agile methodologies generally promote a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages team work, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. </li></ul>
  3. 4. <ul><li>Practice Leader Agile Development </li></ul><ul><li>Senior Contributing Editor, Dr. Dobb’s Journal </li></ul><ul><li>Fellow – International Association of Software Architects </li></ul>
  4. 5. <ul><li>I’m spectacularly blunt at times </li></ul><ul><li>Many new ideas will be presented </li></ul><ul><li>Some may not fit well into your existing environment </li></ul><ul><li>Some will challenge your existing notions about software development </li></ul><ul><li>Some will confirm your unvoiced suspicions </li></ul><ul><li>Don’t make any “career-ending moves” </li></ul><ul><li>Be skeptical but open minded </li></ul>
  5. 6. <ul><li>Introduction </li></ul><ul><li>Warning! </li></ul><ul><li>Agile Current Status </li></ul><ul><ul><li>Agile Adoption Rates </li></ul></ul><ul><ul><li>Project Success Rates </li></ul></ul><ul><li>Common Agile Practices </li></ul><ul><li>Criticisms </li></ul>
  6. 7. 85% have run multiple agile projects 24% of “No” respondents hope to do Agile this year
  7. 8. <ul><li>Introduction </li></ul><ul><li>Warning! </li></ul><ul><li>Agile Current Status </li></ul><ul><li>Common Agile Practices </li></ul><ul><ul><li>Agile Development Practices </li></ul></ul><ul><ul><li>Test-Driven Development (TDD) </li></ul></ul><ul><ul><li>Database Refactoring </li></ul></ul><ul><ul><li>Working in Priority Order </li></ul></ul><ul><ul><li>Agile Planning </li></ul></ul><ul><ul><li>Agile Model Driven Development (AMDD) </li></ul></ul><ul><ul><li>Agile Documentation </li></ul></ul><ul><li>Criticisms </li></ul>
  8. 9. <ul><li>Regular Delivery of Working Software </li></ul><ul><ul><li>Only valid measure of progress </li></ul></ul><ul><ul><li>Provides visible results to stakeholders </li></ul></ul><ul><ul><li>True earned value, not documentation-based “earned value” </li></ul></ul><ul><li>Daily Stakeholder Interaction </li></ul><ul><ul><li>On-Site Customer </li></ul></ul><ul><ul><li>Active Stakeholder Participation </li></ul></ul><ul><ul><li>Product Owner </li></ul></ul><ul><li>Continuous Integration </li></ul><ul><ul><li>Automatically compile, test, and style check your code </li></ul></ul><ul><ul><li>Continuous code integration is nice </li></ul></ul><ul><ul><li>Continuous system integration is nicer </li></ul></ul>
  9. 10. <ul><li>With TFD you write a single test and then just enough production code to fulfill that test </li></ul><ul><li>Test-Driven Development (TDD) = Refactoring + TFD </li></ul><ul><li>TDD is a just-in-time (JIT) specification activity </li></ul><ul><li>TDD is a continuous confirmatory validation activity </li></ul><ul><li>TDD via Customer/Acceptance Tests </li></ul><ul><ul><li>Specification of requirements </li></ul></ul><ul><li>TDD via Developer Tests </li></ul><ul><ul><li>Specification of design </li></ul></ul><ul><li>TDD is also called Behavior Driven Development (BDD) </li></ul>
  10. 11. <ul><li>A database refactoring is a simple change to a database schema that improves its design while retaining both its behavioral and informational semantics . Examples: Move Column, Rename Table, and Replace Blob With Table. </li></ul><ul><li>A database schema includes both structural aspects such as table and view definitions as well as functional aspects such as stored procedures and triggers. </li></ul><ul><li>Important: Database refactorings are a subset of schema transformations, but they do not add functionality. </li></ul>
  11. 13. <ul><li>Introduction </li></ul><ul><li>Warning! </li></ul><ul><li>Agile Current Status </li></ul><ul><li>Common Agile Practices </li></ul>
  12. 14. <ul><li>Introduction </li></ul><ul><li>Warning! </li></ul><ul><li>Agile Current Status </li></ul><ul><li>Common Agile Practices </li></ul><ul><li>Criticism </li></ul>
  13. 15. <ul><li>Lack of structure and necessary documentation </li></ul><ul><li>Only works with senior-level developers </li></ul><ul><li>Incorporates insufficient software design </li></ul><ul><li>Requires too much cultural change to adopt </li></ul><ul><li>Can lead to more difficult contractual negotiations </li></ul><ul><li>Can be very inefficient — if the requirements for one area of code change through various iterations, the same programming may need to be done several times over. Whereas if a plan were there to be followed, a single area of code is expected to be written once. </li></ul><ul><li>Impossible to develop realistic estimates of work effort needed to provide a quote, because at the beginning of the project no one knows the entire scope/requirements </li></ul><ul><li>Can increase the risk of scope creep due to the lack of detailed requirements documentation </li></ul><ul><li>Agile is feature driven, non-functional quality attributes are hard to be placed as user stories </li></ul>