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
Kanban Definition
It is derived from the Lean production system used at Toyota. Kanban means signboard.
Kanban 5 Core Principles
- Visualize the workflow
- Limit work in progress (WIP)
- Manage flow
- Make process policies explicit
- Improve collaboration
Feature Driven Development
Agile method where the team will first develop an overall model for the product then build a list and plan the work.
Return on Investment (ROI)
The ratio of the benefits received from an investment to the money invested. Usually a percentage.
Internal Rate of Return (IRR)
Interest rate you will need to get in today’s money to receive a certain amount of money in the future. The higher the better. IRR is a superior measure to NPV.
Present Value/Net Present Value (NPV)
Value of future money in today’s terms.
Earned Value Management
Formulas that monitor the value of the project as it is progressing.
Manual Regression Testing
Testing parts of the program to make sure new updates have not introduced bugs that were not there before. Instead of just testing new features and small updates alone you also test what areas of the program the updates may have affected.
INVEST
A good user story should be: Independent Negotiable Valuable Estimable Small Testable
Agile Declaration of Interdependence
Agile and adaptive approaches for linking people, projects, and value.
We are a community of project leaders that are highly successful at delivering results. To achieve these results:
We increase return on investment by making continuous flow of value our focus.
We deliver reliable results by engaging customers in frequent interactions and shared ownership.
We expect uncertainty and manage for it through iterations, anticipation, and adaptation.
We unleash creativity and innovation by recognizing that individuals are the ultimate source of value, and creating an environment where they can make a difference.
We boost performance through group accountability for results and shared responsibility for team effectiveness.
We improve effectiveness and reliability through situationally specific strategies, processes, and practices.
Value Added Time
Time spent that improves the outcome of a process.
Spikes
A short effort (usually timeboxed) that is devoted to exploring an approach, investigating an issue, or reducing a project risk.
Pareto Principle
The Pareto Principle states that 80% of consequences come from 20% of the causes.
Wideband Delphi
Estimation based on the input of a panel of experts.
Monte Carlo Estimation
A broad class of computational algorithms that rely on repeated random sampling to obtain numerical results. The underlying concept is to use randomness to solve problems that might be deterministic in principle. They are often used in physical and mathematical problems and are most useful when it is difficult or impossible to use other approaches.
Acceptance Test Driven Development
Analogous to test-driven development, Acceptance Test Driven Development (ATDD) involves team members with different perspectives (customer, development, testing) collaborating to write acceptance tests in advance of implementing the corresponding functionality.
Rapid Application Development
Rapid Application Development (RAD) is a development model prioritizes rapid prototyping and quick feedback over long drawn out development and testing cycles. With rapid application development, developers can make multiple iterations and updates to a software rapidly without needing to start a development schedule from scratch each time.
Cycle Time
Cycle time is a measure of the elapsed time when work starts on an item (story, task, bug etc.) until it’s ready for delivery. Cycle time tells how long (in calendar time) it takes to complete a task. Total units completed divided by time to complete.