2. To create a dynamic responsive software development processes extendable to the enterprise level 2 Objective
3. Dynamics of the Business Changed instead of slow well controlled processes we have dynamic reality influenced by fast changes to be competitive we have to be sensitive to the outer world and to respond to any change that occurs Projects Became Shorter Projects became shorter, but much more inclusive and complicated User Centric Approach is a Key of the Software Success A modern user expects Usable and user friendly application Frequent releases with new nice features “Consumerization” of the Modern Enterprise Software 3 Why Now?
4. Agile Development Manifesto 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 onthe right, we value the items on the left more.
5. Assume Simplicity Working Software is a Primary Goal Embrace Change Incremental Change Interactive Work Enable Next Effort Maximize Stakeholders ROI Quality Work Rapid Feedback 5 Core Principles Content is more important than representation Open and Honest Communication
6. Agile is a Philosophy Agile is a philosophy, and it‘s value-driven instead of plan-driven. Waterfall approach Process Driven by Plan Define Schedule Define Schedule Define Scope Plan Release Define Cost Try to Implement !! Define Cost Estimate & Define Scope Implement & Plan as you Go Agile approach Process Driven by Value and Vision
7. The KEY - Adjust your DNA from the “Project Success Starts With People: Communications, Expectations and Engagement” session lead by Audrey Apfel, Gartner IT Symposium. 17.03.2010 7
8. Competition Analysis Other Requirements PM PM QA Use Cases Scenarios (Stories) Test Cases Constraints Customer Priorities Continuous Build PM Non Funct. Dev PM PM RFC Others FMA Product 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 Factors Team Work Quality Resolve Dependencies Software Availability Integration Meet Time Constraints
10. Team Work What is a Team? Customer (when relevant) + Product Owner + Development + QA working together during all development cycle Requirements Product Owner have to be defined and should be always available Global view on the requirements (product backlog) by the whole team End to end responsibilities & Commitments to plans Tools Maintenance of the Product Backlog Product & Implementation handovers Daily 10 minutes stand up meetings What 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) Examples of the other tools 2 developers working together on one task (XP) Developer is a “coder” only Sitting around one table Paper notes other
12. Quality Good Quality gives the Love of the Customer and saves from the Maintenance Tools Automation, Automation and once more Automation QA starts at the phase of Product definition Tester have to be part of the product definition acceptance Quality & test automation starts in the development department Unit & Integration Test Highest possible automation in QA Functional automatic tests Regression tests Performance, load, scalability tests Keep 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 logs On-site performance tests
13. Software Availability & Integration Software Availability Software is always up and running (internal demo servers) Tools Continuous builds No need for Integration phase No compilation errors Run all unit and integration test Full delivery automation Integration You need to integrate both Software & People Resolve Dependencies beforehand Automate the integration
25. CompletenessUse Cases Use Cases Use Cases Use Cases Use Cases Use Cases Use Cases Test Cases Use Cases Use Cases Use Cases Requirement Docs Project Completeness Completeness Combined Approach - Planning Process Combination of Rolling Wave and Agile together High Level Planning - Master Roadmap based on Top Down: Phase & Milestones that should be met Bottom Up: Product feature list estimations Set of features come from the Product backlog or feature list Detailed Planning - Iterations Planned “as you go” Project progress is defined by Iteration completeness