ACP Exam Flashcards
4 Agile Values
- Individuals and Interactions over Processes and Tools
- Working Software over Comprehensive Documentation
- Customer Collaboration over Contract Negotiation
- Responding to Change over Following a Plan
Agile Guiding Principles 1-3
- 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.
Agile Guiding Principles 4-6
- 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.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Agile Guiding Principles 7-9
- 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.
Agile Guiding Principles 10-12
- 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.
Three Pillars of Scrum
Transparency, Inspection, Adaptation
Scrum Roles
Product Owner, Scrum Master, Development Team
XP Core Values
Simplicity: Reduce complexity, extra features, and waste. Communication Feedback Courage Respect
XP Roles
Coach, Customer, Programmers (Developers), Testers,
XP Practice Release Planning
Push of new functionality all the way to the production user.
Customer outlines functionality required.
Developers estimate difficulty of build.
XP Practice Iteration Planning
Conducted at the start of every iteration.
Customer explains functionality they would like.
Developers break functionality into tasks and estimate work based on amount of work accomplished in previous iteration.
XP Practice Small Releases
Frequent small releases to test environments.
Demonstrate progress and increase visibility for the customer.
XP Practice Customer Tests
Customer describes one or more tests to show software is working.
Team builds automated tests to prove software is working.
XP Practice Collective Code Ownership
Any pair of developers can improve or amend any code.
Multiple people work on all code, which results in increased visibility and knowledge of code base.
Less risk if programmer leaves, since knowledge is shared.
XP Practice Code Standards
Follow consistent coding standard so code looks like it has been written by a single knowledgeable programmer.
XP Practice Sustainable Pace
While periods of overtime may be necessary, repeated long hours of work are unsustainable and counterproductive.
XP Practice Metaphor
XP uses metaphors and similes to explain designs and create a shared technical vision. These descriptions establish comparisons that all the stakeholders can understand and explain how the system should work.
XP Practice Continuous Integration
Integration involves bringing the code together and making sure it all compiles and works together. All code changes are checked and tested daily.
XP Practice Test Driven Development (TDD)
The team writes tests prior to developing the new code. If the tests are working correctly, the initial code that is entered will fail the tests. The code will pass the test once it is written correctly.
XP Practice Pair Programming
In XP, production code is written by two developers working as a pair to write and provide real-time reviews of the software as it emerges.
XP Practice Simple Design
Code is always testable, browsable, understandable, and explainable. Do the simplest thing that could possibly work next. Complex design is replaced with simpler design. The best architectures, requirements, and designs emerge from self-organizing teams.
XP Practice Refactoring
Remove redundancy, eliminate unused functionality, and rejuvenate obsolete designs. Refactoring throughout the entire project life cycle saves time and increases quality. Code is kept clean and concise so it is easier to understand, modify, and extend.
Lean Principles
Eliminate waste Empower the team Deliver fast Optimize the whole Build quality in Defer decisions Amplify learning
7 Wastes of Lean
- Partially done work
- Extra processes
- Extra features
- Task switching
- Waiting
- Motion
- Defects