2. Agile and Scrum Flashcards

1
Q

Benefits to a company of having Agile teams (6)

A
  1. less social loafing
  2. constructive interactions
  3. minimal coordinating efforts
  4. everyone in the foreground
  5. visible and meaningful contribution
  6. willing to work beyond job roles
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

The Agile Manifesto contains four statements of value

A
  1. individuals and interaction over processes and tools
  2. working software over comprehensive documentation
  3. customers collaboration over contract negotiation
  4. responding to change over following plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What do Agile Practices look like in a team (6)

A
  1. small teams (3-12)
  2. frequent:
    - structured meetings
    - small deliveries
    - customer engagement
  3. maintain design and code quality
  4. automation whenever possible
  5. frequent change of objectives and priorities
  6. frequent review of software process and make adjustments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Agile Risks (6)

A
  1. lack of customer engagements
  2. stakeholder conflict
  3. complex contract
  4. poor code quality
  5. poor team coordination
  6. loss of organizational memory
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Scrum and the 6 practices of Scrum?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Scrum roles

A
  1. scrum master
  2. product owner
  3. team manager
  4. quality assurance manager
  5. toolsmith
  6. chief architect
  7. UX designer
  8. developer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Scrum roles considerations

A
  1. attributes
  2. skills
  3. personality
  4. circumstances
  5. professional development aim
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Scrum communications

A

what
when/how often
by when
to whom
by what

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Scrum sprint planning

A
  1. decide on the main goal
  2. select task from the backlog
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the objectives of the Project launch meeting (5)

A
  1. determine major features to deliver
  2. understand long term objectives and identify the minimum viable product
  3. decide on goals
  4. develop user stories
  5. convert stories to tasks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

12 Principles of the Agile Manifesto (12)

A
  1. Satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, at intervals of between a few weeks to a few months, with a preference for shorter timescales.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they
    need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users
    should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and
    adjusts its behaviour accordingly.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Why is change inevitable in Software Projects?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Whys is Working Software most valuable to the customer?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the common practices across most Agile organizations?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the Agile Software Development Approaches? (3)

A
  • Extreme Programming
  • Scrum
  • Kanban
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What does Scrum define as the three roles:

A

Scrum Master: ensures that Scrum practices and rules are implemented and followed, and
resolves any violations, resource issues, or other impediments that could prevent the team
from following the practices and rules. This person is not the team lead, but a coach.

 Product Owner: represents the customer, and generates, maintains, and prioritizes the
product backlog. This person is not the team lead.

 Development Team: develop and test the product. The team is self-organized: There is no
team lead, so the team makes the decisions. The team is also cross-functional (see Section 2.3.2 and Section 3.1.4).

Scrum (as opposed to XP) does not dictate specific software development techniques (e.g., test first programming). In addition, Scrum does not provide guidance on how testing has to be done in a Scrum project.

17
Q

What is Kanban?

A

Kanban [Anderson13] is a management approach that is sometimes used in Agile projects. The general objective is to visualize and optimize the flow of work within a value-added chain. Kanban utilizes three instruments [Linz14]:

 Kanban Board: The value chain to be managed is visualized by a Kanban board. Each column shows a station, which is a set of related activities, e.g., development or testing. The items to be produced or tasks to be processed are symbolized by tickets moving from left to right across the board through the stations.

 Work-in-Progress Limit: The amount of parallel active tasks is strictly limited. This is controlled by the maximum number of tickets allowed for a station and/or globally for the board. Whenever a station has free capacity, the worker pulls a ticket from the predecessor station.

 Lead Time: Kanban is used to optimize the continuous flow of tasks by minimizing the (average) lead time for the complete value stream.

18
Q

What Kanban features share similarities with Scrum?

A
  • Kanban features some similarities to Scrum. In both frameworks, visualizing the active tasks (e.g., on a public whiteboard) provides transparency of content and progress of tasks.
  • Tasks not yet scheduled are waiting in a backlog and moved onto the Kanban board as soon as there is new space (production capacity) available.
  • Iterations or sprints are optional in Kanban. The Kanban process allows releasing its deliverables item by item, rather than as part of a release.
  • Timeboxing as a synchronizing mechanism, therefore, is optional, unlike in Scrum, which synchronizes all tasks within a sprint.
19
Q

What is Extreme Programming?

A
  • Extreme Programming (XP), originally introduced by Kent Beck [Beck04], is an Agile approach to software development described by certain values, principles, and development practices.
  • XP embraces five values to guide development: communication, simplicity, feedback, courage, and respect.
  • XP describes a set of principles as additional guidelines: humanity, economics, mutual benefit, self- similarity, improvement, diversity, reflection, flow, opportunity, redundancy, failure, quality, baby steps, and accepted responsibility.
  • XP describes thirteen primary practices: sit together, whole team, informative workspace, energized work, pair programming, stories, weekly cycle, quarterly cycle, slack, ten-minute build, continuous integration, test first programming, and incremental design.
  • Many of the Agile software development approaches in use today are influenced by XP and its values and principles. For example, Agile teams following Scrum often incorporate XP practices.
20
Q

What are the advantages of Agile teams using early & frequent feedback?

A

Agile teams can incorporate most new changes into the product development process. Early and frequent feedback helps the team focus on the features with the highest business value, or associated risk, and these are delivered to the customer first. It also helps manage the team better since the capability of the team is transparent to everyone. For example, how much work can we do in a sprint or iteration? What could help us go faster? What is preventing us from doing so?

21
Q

The benefits of early and frequent feedback include:

A

The benefits of early and frequent feedback include:
 Avoiding requirements misunderstandings, which may not have been detected until later in the
development cycle when they are more expensive to fix.
 Clarifying customer feature requests, making them available for customer use early. This way,
the product better reflects what the customer wants.
 Discovering (via continuous integration), isolating, and resolving quality problems early.
 Providing information to the Agile team regarding its productivity and ability to deliver.
 Promoting consistent project momentum.