Introduction to Agile : Introduction to Agile
Traditional Approach : Traditional Approach Requirements
Gathered Architecture
Designed Coding
Completed Testing Sequential – series of steps Product Completed after months, if not years
Advantages of this method : Advantages of this method Very logical
Easy to sign contracts
Specialized people in each domain
Tracking at each step becomes possible
Works best if everything goes as planned Limitations of this method Rarely works
Feedback comes late
Skills more important than attitude
Tracking at each step is not lean
Most things do not go as planned every time
Iterative Model : Iterative Model Requirements
Gathered Architecture
Designed Coding
Completed Testing Product Completed after months, if not years
Incremental Model : Incremental Model Requirements Architecture Coding Testing Shipping Product Completed after months, if not years
Iterative & Incremental Model : Iterative & Incremental Model
Iterative and Incremental +Something== Agile : Iterative and Incremental +Something== Agile
Manifesto for Agile Software Development : Manifesto for Agile Software Development 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.
Principles behind the Agile Manifesto : Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Principles behind the Agile Manifesto : Principles behind the Agile Manifesto The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Some Agile Frameworks : Some Agile Frameworks Lean - Move closer to customer, shorter cycles, eliminate waste, decide as late as possible, empower the team, build in integrity
Crystal - Emphasize people, gather techniques from other methods, improve communications, adapt the process itself (shrink or grow to fit)
Scrum - Manage a prioritized list of requires on a product backlog, collaborate through daily standup meetings, exhibit the product upon iteration completion, use retrospectives to correct the process
XP - Emphasize the values of communication, simplicity, feedback, and courage; use specific technical and collaborative practices, including TDD, refactoring, pair programming, continuous integration, open workspace, and automated acceptance tests
Questions : Questions