2. Agile and Scrum Flashcards
Benefits to a company of having Agile teams (6)
- less social loafing
- constructive interactions
- minimal coordinating efforts
- everyone in the foreground
- visible and meaningful contribution
- willing to work beyond job roles
The Agile Manifesto contains four statements of value
- individuals and interaction over processes and tools
- working software over comprehensive documentation
- customers collaboration over contract negotiation
- responding to change over following plan
What do Agile Practices look like in a team (6)
- small teams (3-12)
- frequent:
- structured meetings
- small deliveries
- customer engagement - maintain design and code quality
- automation whenever possible
- frequent change of objectives and priorities
- frequent review of software process and make adjustments
Agile Risks (6)
- lack of customer engagements
- stakeholder conflict
- complex contract
- poor code quality
- poor team coordination
- loss of organizational memory
What is Scrum and the 6 practices of Scrum?
Scrum is an Agile management framework which contains the following constituent instruments and practices [Schwaber01]:
Sprint: Scrum divides a project into iterations (called sprints) of fixed length (usually two to four weeks).
Product Increment: Each sprint results in a potentially releasable/shippable product (called an increment).
Product Backlog: The product owner manages a prioritized list of planned product items (called the product backlog). The product backlog evolves from sprint to sprint (called backlog refinement).
Sprint Backlog: At the start of each sprint, the Scrum team selects a set of highest priority items (called the sprint backlog) from the product backlog. Since the Scrum team, not the product owner, selects the items to be realized within the sprint, the selection is referred to as being on the pull principle rather than the push principle.
Definition of Done: To make sure that there is a potentially releasable product at each sprint’s end, the Scrum team discusses and defines appropriate criteria for sprint completion. The discussion deepens the team’s understanding of the backlog items and the product requirements.
Timeboxing: Only those tasks, requirements, or features that the team expects to finish within the sprint are part of the sprint backlog. If the development team cannot finish a task within a sprint, the associated product features are removed from the sprint and the task is moved back into the product backlog. Timeboxing applies not only to tasks, but in other situations (e.g., enforcing meeting start and end times).
Transparency: The development team reports and updates sprint status on a daily basis at a meeting called the daily scrum. This makes the content and progress of the current sprint, including test results, visible to the team, management, and all interested parties. For example, the development team can show sprint status on a whiteboard.
Scrum roles
- scrum master
- product owner
- team manager
- quality assurance manager
- toolsmith
- chief architect
- UX designer
- developer
Scrum roles considerations
- attributes
- skills
- personality
- circumstances
- professional development aim
Scrum communications
what
when/how often
by when
to whom
by what
Scrum sprint planning
- decide on the main goal
- select task from the backlog
What are the objectives of the Project launch meeting (5)
- determine major features to deliver
- understand long term objectives and identify the minimum viable product
- decide on goals
- develop user stories
- convert stories to tasks
12 Principles of the Agile Manifesto (12)
- 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, at intervals of between a few weeks to a few months, with a preference for shorter timescales.
- 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.
- 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 behaviour accordingly.
Why is change inevitable in Software Projects?
- The environment in which the business operates, legislation, competitor activity, technology advances, and other factors can have major influences on the project and its objectives.
- These factors must be accommodated by the development process.
- As such, having flexibility in work practices to embrace change is more important than simply adhering rigidly to a plan
Whys is Working Software most valuable to the customer?
- From a customer perspective, working software is much more useful and valuable than overly detailed documentation and it provides an opportunity to give the development team rapid feedback.
- In addition, because working software, albeit with reduced functionality, is available much earlier in the development lifecycle, Agile development can confer significant time-to-market advantage.
- Agile development is, therefore, especially useful in rapidly changing business environments where the problems and/or solutions are unclear or where the business wishes to innovate in new problem domains.
What are the common practices across most Agile organizations?
There are a number of Agile approaches in use by organizations.
Common practices across most Agile organizations include:
- collaborative user story creation,
- retrospectives
- continuous integration, and planning for each iteration as well as for overall release.
This subsection describes some of the Agile approaches.
What are the Agile Software Development Approaches? (3)
- Extreme Programming
- Scrum
- Kanban