Agile Primer Flashcards
Key Drivers
- Scalability, To meet client need with higher efficiency by addressing the growing demand of work with multiple teams distributed across locations
- Profitability: Makes the best talent and cost advantages available to the client
- Achieving Cost Arbitrage: Reduces investments on large teams since various locations around the globe can deliver the same service as work happens across multiple locations in varied time zones
- Talent Management: Availability of teams with varied skills for optimal composition, of developers, architects, DBA, QA and functional experts across locations
Brand ambassadors
Are usually the senior technical experts or business/domain experts who ensure the flow of information between dispersed Sprint teams of the project.
Boundary spanners
Are the people who focus on enabling communication between multiple Sprint teams, ensuring that cross-team dependencies are identified and planned to avoid any blocking.
Product Owner:
Responsible for business value and ROI (Return of Investment), requirement prioritization Specifies the overall project goal and vision
Scrum Master:
Works closely with the Product Owner. Monitors tasks and progress and shields the team from external interferences and removes impediments
Scrum Team:
Commits to deliverables and delivers independently while working in close collaboration
Senior Technical Architect and Designers:
: Involves in early stage of the project to decide code structure and design standards. Resolves key design issues and ensures implementation of standards across the teams
Integration Managers/Experts:
Keeps focus on integration challenges from early lifecycle
Testing Experts:
Creates test strategies to be implemented by all teams
12 pillars of the Agile Manifesto
- Customer satisfaction by rapid delivery of useful software
- Welcome changing requirements, even late in development
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Close, daily co-operation between business people and developers
- Face-to-face conversation is the best form of communication (co-location)
- Projects are built around motivated and trustworthy individuals
- Continuous attention to technical excellence and good design
- Simplicity
- Self-organizing teams
- Regular adaptation to changing circumstances
Agile methods
- Extreme Programming (XP),
- Dynamic System Development Method (DSDM),
- Feature Driven Development (FDD)
- Lean
- Kanban
Scrum
- An iterative and incremental framework for application or product development.
- The development of the project is achieved through iterative cycles known as Sprints.
- At the start of each Sprint, a crossfunctional team selects items from Product Backlog and commits to complete the items by the end of that particular Sprint.
- The Sprints are strictly timeboxed and occur sequentially
- *Time box – It means a fixed time is allotted for an activity*
Scrum Roles
- Product Owner
- Team
- Scrum Master
Product owner
- Providing the vision of the project to the team
- Maximizing the value of the project and the work of the Scrum Team
- Managing the Product Backlog
- Clearly expressing Product Backlog items
- Prioritizing the items in the Product Backlog to best achieve goals and mission of the project
- Ensuring that the Product Backlog is visible, transparent and clear to all about what the team will work on next
Scrum Team
- Team size in Scrum should ideally be around seven persons
- The team is recommended to be cross-functional with skills in analysis, development, testing, interface design, database design, architecture, documentation.
- It is self-organized and decides what to commit and how best to accomplish that commitment
- The accountability of the work product belongs to the team as a whole
Scrum Master
responsible for ensuring that the Scrum team adheres to Scrum values, practices, and rules.
- Helps the Scrum team to adopt Scrum
- Helps the team to learn and apply Scrum to achieve the desired objective of the project
- Does not tell people what to do or assign tasks, but facilitates the process by supporting the Team to organize and manage itself
- Serves the Team, protects them from outside interference, educates and guides the Product Owner and the Team in use of Scrum
- Facilitates Scrum events
- Coaches the Team to be cross-functional.
- Removes impediments for the Team’s progress
Scrum Events
- Release Planning Meeting
- Sprint Planning
- Daily Scrum
- Sprint Review
- Sprint Retrospective.
Release Planning Meeting
The purpose of release planning is to establish a plan and goals, which the Scrum Team and the rest of the organization can understand and communicate.
Release planning aims to come up with a strategy to:
- Turn the vision into a successful project in best possible way
- Meet or exceed the desired customer satisfaction and return on investment
Sprint Planning
The work to be performed in a Sprint is planned in the Sprint Planning Meeting. This plan is created by collaborative work of the entire Scrum Team. The Sprint Planning Meeting consists of two parts, each one being a time-box of half of the Sprint Planning Meeting duration.
- In the first part, team plans what will be delivered as part of the Sprint
- In the second part, team plans how to build this functionality
Daily Scrum
The Daily Scrum meeting is a 15-minute time-boxed event for the Team to synchronize activities.
- What he or she has accomplished since last meeting
- What he or she is going to do before the next meeting
- What issues/obstacles are in his or her way
Sprint Review
A Sprint Review Meeting is held at the end of the Sprint.
The Sprint Review includes the following:
- Product Owner identifies what has been ‘Done’ and what has not been ‘Done’
- Team demonstrates the work that has been ‘Done’ and answers questions about the increment
- Product Owner discusses the Product Backlog as it stands
- The entire group discusses on what to do next
Sprint Retrospective
Sprint Retrospective occurs after the Sprint Review
- Inspect the last Sprint with regards to people, relationships, process and tools
- Discuss what went well during the Sprint, what problems were faced and how they were solved
- Identify and prioritize the major items that went well and those which could have been done differently. These include Scrum Team composition, meeting arrangements, tools, ‘Definition of Done’ and methods of communication
- Create a plan for implementing improvements to the way the Scrum Team works.
Scrum Artifacts
Represent work or value in various ways
Product Backlog
The Product Owner articulates product vision at the start of the project.
Release Burndown
The Release Burndown chart reflects the remaining Product Backlog items across the releases.
Sprint Backlog
The Sprint Backlog is a highly visible, real-time picture of the work that the Team plans to accomplish during the Sprint. It is the subset of Product Backlog items
Sprint Burndown
Sprint Burndown chart is a graphical representation reflecting the remaining effort for all the tasks that were committed during the Sprint, versus time (no. of days remaining in the Sprint)
XP Practices: Planning Game
The key planning process of Extreme Programming is called planning game to ensure work is planned incrementally. It is divided into two parts
- Release Planning
- Iteration Planning
Release Planning
This is a planned meeting to shortlist requirements to be included in the releases planned and timeline of each release. It has three phase
- Exploration: Create User Story
- Commitment: Team commits to date and functionality
- Steering: Adjust plan and requirement change
Iteration Planning
This is a planning meeting by the Team to decide upon the tasks and activities, to accomplish requirements planned for the iteration.
- Exploration: Create task cards
- Commitment: Task estimation and allocation
- Steering: Perform the tasks
Pair Programming
Entails the same wherein two persons work on the same code. While one programmer is doing the coding, focusing on the code and program level details, the other programmer has the big picture and continuously reviews the code.
Test Driven Development
Test Driven development is an Extreme Programming practice in which, developer writes the automated test cases before the actual code is written.
Whole Team
In Extreme Programming, the entire Team functions as a whole
Continuous Integration:
an Extreme Programming practice where the code base is integrated on a frequent basis from the start of the feature development.