Agile Software Development and Enterprise adoption Reg de Silva, Benn Wheeler & Mark Mansour April 2010
What is Agile Development? Agile development  is an “umbrella” term for several iterative and incremental software development methodologies (i.e. XP, Scrum, Kanban, etc.) Agile: Is  customer-centric . Is detailed, rigorous and  disciplined . Involves working in small  iterations , often two weeks in duration, with concurrent analysis, development and testing. Focuses on empowering people to  collaborate  and  make decisions  together quickly and effectively. Represents a  cultural shift  from traditional development.
Waterfall vs Agile Software Development Source: http://www.digitalfocus.com/agile/
The key benefits of Agile software development include: Delivers what the customer  really wants -   customer prioritises and chooses requirements with highest business value each iteration.  Risk reduction   -  working code delivered every iteration with multiple short release phases. Quality -  reduced defects due to disciplined practices and constant collaboration between project team members and business partners.  ‘ One Team’ -  better alignment between the Business and Information Technology. The benefits of Agile
Why  Agile?   Source: http:// www.versionone.com/
Some Agile key practices Source: Swan, Brian (uk.builder.com)
Agile Adoption  for the Enterprise
Availability of customer representatives  (SME’s) for requirements workshops, daily stand up meetings, iteration planning, clarifications and decision making. Management support  – particularly for technology teams new to Agile. Talent and Social Engineering   Capable team members with good cultural fit. Common goals and collective project ownership. Willing to try a different approach to software delivery which they are continuously improving. Smaller co-located project teams are more suitable for Agile development projects to allow for effective communication. Agile coach  - at least one resource within the project team with extensive Agile experience.  Agile critical success factors
"significant design decisions that shape a system, where significant is measured by cost of change"  -- Grady Booch  What is Architecture?
last responsible  moment Architecture considerations
Working software over comprehensive documentation while there is value in comprehensive documentation, we value working software more. Agile Groups value
architect is a role Architecture considerations
? ? ? ? ? ? ? ? ? Questions
Benn Wheeler [email_address] http:// au.linkedin.com/in/bennwheeler Reginald de Silva [email_address] http://au.linkedin.com/in/regdesilva Mark Mansour [email_address] http:// au.linkedin.com/in/markmansour   Contacts
Agile software development Using Agile software development – part 1  Using Agile software development – part 2  Using Agile software development – part 3 Agile development - Version One Agile manifesto Agile modeling Behaviour Driven Development definition  Behaviour Driven Development  Introducing BDD  Kano Analysis  Parking Lot Diagrams Planning Poker More information…

Agile presentation to Telstra, April 2010

  • 1.
    Agile Software Developmentand Enterprise adoption Reg de Silva, Benn Wheeler & Mark Mansour April 2010
  • 2.
    What is AgileDevelopment? Agile development is an “umbrella” term for several iterative and incremental software development methodologies (i.e. XP, Scrum, Kanban, etc.) Agile: Is customer-centric . Is detailed, rigorous and disciplined . Involves working in small iterations , often two weeks in duration, with concurrent analysis, development and testing. Focuses on empowering people to collaborate and make decisions together quickly and effectively. Represents a cultural shift from traditional development.
  • 3.
    Waterfall vs AgileSoftware Development Source: http://www.digitalfocus.com/agile/
  • 4.
    The key benefitsof Agile software development include: Delivers what the customer really wants - customer prioritises and chooses requirements with highest business value each iteration. Risk reduction - working code delivered every iteration with multiple short release phases. Quality - reduced defects due to disciplined practices and constant collaboration between project team members and business partners. ‘ One Team’ - better alignment between the Business and Information Technology. The benefits of Agile
  • 5.
    Why Agile? Source: http:// www.versionone.com/
  • 6.
    Some Agile keypractices Source: Swan, Brian (uk.builder.com)
  • 7.
    Agile Adoption for the Enterprise
  • 8.
    Availability of customerrepresentatives (SME’s) for requirements workshops, daily stand up meetings, iteration planning, clarifications and decision making. Management support – particularly for technology teams new to Agile. Talent and Social Engineering Capable team members with good cultural fit. Common goals and collective project ownership. Willing to try a different approach to software delivery which they are continuously improving. Smaller co-located project teams are more suitable for Agile development projects to allow for effective communication. Agile coach - at least one resource within the project team with extensive Agile experience. Agile critical success factors
  • 9.
    "significant design decisionsthat shape a system, where significant is measured by cost of change" -- Grady Booch What is Architecture?
  • 10.
    last responsible moment Architecture considerations
  • 11.
    Working software overcomprehensive documentation while there is value in comprehensive documentation, we value working software more. Agile Groups value
  • 12.
    architect is arole Architecture considerations
  • 13.
    ? ? ?? ? ? ? ? ? Questions
  • 14.
    Benn Wheeler [email_address]http:// au.linkedin.com/in/bennwheeler Reginald de Silva [email_address] http://au.linkedin.com/in/regdesilva Mark Mansour [email_address] http:// au.linkedin.com/in/markmansour Contacts
  • 15.
    Agile software developmentUsing Agile software development – part 1 Using Agile software development – part 2 Using Agile software development – part 3 Agile development - Version One Agile manifesto Agile modeling Behaviour Driven Development definition Behaviour Driven Development Introducing BDD Kano Analysis Parking Lot Diagrams Planning Poker More information…

Editor's Notes

  • #10 - adaptive software - ability to change is valued
  • #11 * architecture is a role not a job - sometime they are the technical product owner - architecture can be done by senior developers and dev leads * last responsible moment - up front planning is wasteful (lean thinking) - do as much as you need but no more - BUFD doesn't work because you don't know enough - amortize the risk over the lifetime of the project * agile pioneers are architecture friendly - Martin Fowler (Patterns of Enterprise Intergration) - Robert C Martin (UML, C++, PLoP) - Dave Thomas - James O. Coplien
  • #12 Sure, I’m taking this a bit out of context, but I’m trying to highlight the value of something actually working… The full quote reads: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • #13 * architecture is a role not a job - sometime they are the technical product owner - architecture can be done by senior developers and dev leads * last responsible moment - up front planning is wasteful (lean thinking) - do as much as you need but no more - BUFD doesn't work because you don't know enough - amortize the risk over the lifetime of the project * agile pioneers are architecture friendly - Martin Fowler (Patterns of Enterprise Intergration) - Robert C Martin (UML, C++, PLoP) - Dave Thomas - James O. Coplien