Agile Driven Development Main Principles15.03.2010By Tanya Epstein
To create a dynamic responsive software development processes extendable to the enterprise level2Objective
Dynamics of the Business Changedinstead of slow well controlled processes we have dynamic reality influenced by fast changesto be competitive we have to be sensitive to the outer world and to respond to any change that occursProjects Became ShorterProjects became shorter, but much more inclusive and complicatedUser Centric Approach is a Key of the Software SuccessA modern user expects Usable and user friendly applicationFrequent releases with  new nice features“Consumerization” of the Modern Enterprise Software3Why Now?
Agile Development ManifestoWe 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 toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items onthe right, we value the items on the left more.
Assume SimplicityWorking Software is a Primary GoalEmbrace ChangeIncremental ChangeInteractive WorkEnable Next EffortMaximize Stakeholders ROIQuality WorkRapid Feedback5Core Principles Content is more important than representationOpen and Honest Communication
Agile is a PhilosophyAgile is a philosophy, and it‘s value-driven instead of plan-driven.Waterfall approachProcess Driven by PlanDefine ScheduleDefine ScheduleDefine ScopePlan ReleaseDefine CostTry to Implement  !!Define CostEstimate & Define ScopeImplement & Plan as you GoAgile approachProcess Driven by Value and Vision
The KEY - Adjust your DNAfrom the “Project Success Starts With People: Communications, Expectations and Engagement” session lead by Audrey Apfel, Gartner IT Symposium.17.03.20107
Competition AnalysisOther RequirementsPMPMQAUse CasesScenarios (Stories)Test CasesConstraintsCustomer PrioritiesContinuous BuildPMNon Funct.DevPMPMRFCOthersFMAProduct Specification & Implementation Flow…Same test cases, created based on the Stories with small additions should be a base for various types of tests run in all relevant departments.
Key Success FactorsTeam WorkQualityResolve DependenciesSoftware Availability IntegrationMeet Time Constraints
Team WorkWhat is a Team?Customer (when relevant) + Product Owner + Development + QA               working together during all development cycleRequirementsProduct Owner have to be defined and should be always availableGlobal view on the requirements (product backlog) by the whole teamEnd to end responsibilities & Commitments to plansToolsMaintenance of the Product BacklogProduct & Implementation handoversDaily 10 minutes stand up meetingsWhat was done? What are the problems? What should be done?Demos at the end of each Iteration done by the developers  to the whole team and even better company wide
Team Work (2/2)Examples of the other tools2 developers working together on one task (XP)Developer is a “coder” onlySitting around one tablePaper notesother
QualityGood Quality  gives the Love of the Customer and saves from  the MaintenanceToolsAutomation, Automation and once more AutomationQA starts at the phase of Product definitionTester have to be part of the product definition acceptanceQuality & test automation starts in the development department Unit  & Integration Test Highest possible automation in QAFunctional automatic testsRegression testsPerformance, load, scalability testsKeep manual QA for usability tests and for newly developed still not automated features On-going control of the Production site status (relevant for SaaS products)Traceability logsOn-site performance tests
Software Availability & IntegrationSoftware AvailabilitySoftware is always up and running (internal demo servers)ToolsContinuous builds  No need for Integration phaseNo compilation errorsRun all unit and integration testFull delivery automationIntegrationYou need to integrate both Software & PeopleResolve Dependencies beforehandAutomate the integration
Product feature listIterationIterationIterationIterationIterationDeliverablesApplications - User Scenarios, Features & Functions
Infrastructure - Sub Systems, ComponentsEstimationsProject CompletenessDetailed Planning for Short TermTasks

Agile driven development main principles

  • 1.
    Agile Driven DevelopmentMain Principles15.03.2010By Tanya Epstein
  • 2.
    To create adynamic responsive software development processes extendable to the enterprise level2Objective
  • 3.
    Dynamics of theBusiness Changedinstead of slow well controlled processes we have dynamic reality influenced by fast changesto be competitive we have to be sensitive to the outer world and to respond to any change that occursProjects Became ShorterProjects became shorter, but much more inclusive and complicatedUser Centric Approach is a Key of the Software SuccessA modern user expects Usable and user friendly applicationFrequent releases with new nice features“Consumerization” of the Modern Enterprise Software3Why Now?
  • 4.
    Agile Development ManifestoWeare 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 toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items onthe right, we value the items on the left more.
  • 5.
    Assume SimplicityWorking Softwareis a Primary GoalEmbrace ChangeIncremental ChangeInteractive WorkEnable Next EffortMaximize Stakeholders ROIQuality WorkRapid Feedback5Core Principles Content is more important than representationOpen and Honest Communication
  • 6.
    Agile is aPhilosophyAgile is a philosophy, and it‘s value-driven instead of plan-driven.Waterfall approachProcess Driven by PlanDefine ScheduleDefine ScheduleDefine ScopePlan ReleaseDefine CostTry to Implement !!Define CostEstimate & Define ScopeImplement & Plan as you GoAgile approachProcess Driven by Value and Vision
  • 7.
    The KEY -Adjust your DNAfrom the “Project Success Starts With People: Communications, Expectations and Engagement” session lead by Audrey Apfel, Gartner IT Symposium.17.03.20107
  • 8.
    Competition AnalysisOther RequirementsPMPMQAUseCasesScenarios (Stories)Test CasesConstraintsCustomer PrioritiesContinuous BuildPMNon Funct.DevPMPMRFCOthersFMAProduct Specification & Implementation Flow…Same test cases, created based on the Stories with small additions should be a base for various types of tests run in all relevant departments.
  • 9.
    Key Success FactorsTeamWorkQualityResolve DependenciesSoftware Availability IntegrationMeet Time Constraints
  • 10.
    Team WorkWhat isa Team?Customer (when relevant) + Product Owner + Development + QA working together during all development cycleRequirementsProduct Owner have to be defined and should be always availableGlobal view on the requirements (product backlog) by the whole teamEnd to end responsibilities & Commitments to plansToolsMaintenance of the Product BacklogProduct & Implementation handoversDaily 10 minutes stand up meetingsWhat was done? What are the problems? What should be done?Demos at the end of each Iteration done by the developers to the whole team and even better company wide
  • 11.
    Team Work (2/2)Examplesof the other tools2 developers working together on one task (XP)Developer is a “coder” onlySitting around one tablePaper notesother
  • 12.
    QualityGood Quality gives the Love of the Customer and saves from the MaintenanceToolsAutomation, Automation and once more AutomationQA starts at the phase of Product definitionTester have to be part of the product definition acceptanceQuality & test automation starts in the development department Unit & Integration Test Highest possible automation in QAFunctional automatic testsRegression testsPerformance, load, scalability testsKeep manual QA for usability tests and for newly developed still not automated features On-going control of the Production site status (relevant for SaaS products)Traceability logsOn-site performance tests
  • 13.
    Software Availability &IntegrationSoftware AvailabilitySoftware is always up and running (internal demo servers)ToolsContinuous builds No need for Integration phaseNo compilation errorsRun all unit and integration testFull delivery automationIntegrationYou need to integrate both Software & PeopleResolve Dependencies beforehandAutomate the integration
  • 14.
  • 15.
    Infrastructure - SubSystems, ComponentsEstimationsProject CompletenessDetailed Planning for Short TermTasks
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    CompletenessUse CasesUse CasesUseCasesUse CasesUse CasesUse CasesUse CasesTest CasesUse CasesUse CasesUse CasesRequirement DocsProject CompletenessCompletenessCombined Approach - Planning ProcessCombination of Rolling Wave and Agile togetherHigh Level Planning - Master Roadmap based onTop Down: Phase & Milestones that should be metBottom Up: Product feature list estimationsSet of features come from the Product backlog or feature listDetailed Planning - IterationsPlanned “as you go”Project progress is defined by Iteration completeness
  • 26.