Lecture 7: Scrum, Domain Analysis, Requirements Analysis Flashcards
What are the different scrum roles?
Product owner
Scrum Master
Development Team
What are the traits of a product owner?
Defines the features of the product
Decides on release date and content
Prioritizes features
Adjusts features and priority every iteration, as needed
Accepts or rejects work results
What are the traits of a scrum master?
Represents management to the project
Responsible for ensuring adherence to scrum practices
Removes impediments
Ensures that the team is fully functional
Shields team from external interference
What are the traits of the development team?
Members are assumed cross-functional
Only title for member is “developer”
No sub-teams
Optimal size is 3-9 members
What is a sprint?
“Heart” of scrum
Usually one month or less, consistent development throughout
“Done”, usable product increment is created
New sprint starts immediately after previous ends
Quality attributes don’t change
Scope can be clarified/re-negotiated
What is a sprint planning meeting?
Work to be performed in upcoming sprint is planned
Suggested meeting length is 8 hours for a one month sprint
What will be delivered and how will the work get done?
What are deliverables?
Product owner presents a list of items to complete, team develops a sprint goal, considering the backlog, capacity, and past performance
What is in the sprint backlog?
Selected product backlog items
Estimated time to complete each item
Assigned tasks to individual members
What is the goal of a daily scrum meeting?
15 minutes to synchronize and plan for the next 24 hours
Same time, same place
Questions: What was accomplished, what will be done before next meeting, and what obstacles are in the way?
What is the goal of the sprint review meeting?
Present accomplishments
Form of a demo of new features or progress
Informal, entire team participation
What is the sprint retrospective?
Opportunity to reflect and plan for improvements during the next sprint
What is a project charter?
Problem statement
Project objectives
Stakeholders
Deliverables
What is a product backlog?
Ordered list of everything that might be needed in the product (source of requirements)
Product owner is responsible for the backlog
Never complete
Lists all features, function, requirements, enhancements, fixes
Format: As a, I want, so that” (called user stories)
What is a burn down chart?
Graphical representation of work left to do vs. time left in which to do it
What are some scrum criticisms?
Assumes you can estimate task duration
A lot of meetings
Difficult to collaborate with outside groups
Assumes development will be ongoing
What do the terms “Greenfield” and “Brownfield” mean?
Greenfield: From scratch
Brownfield: Must work with existing systems
What is design?
Deciding how the requirements should be implemented using available technology
What is domain analysis?
Process by which a software engineer learns about the domain (general field of business or technology in which the software will be used) to better understand the problem
Benefits: Faster development, better system, easier to anticipate future modifications
What are the different types of requirements?
Real: functional and performance
Constraints: non-functional (all software must be in C)
Possible: non-measurable, subjective (look good)
Probably not: Expectations, wishes, desires
How do you gather requirements?
Observation: Read documents and discuss requirements with users, shadow potential users
Interviewing: Ask about specific details, stakeholder’s vision, etc.
Prototype: Draw pictures and show them to users, develop a mock-up UI
How do you explore the requirements?
Need to determine what the system is compared to the world
Can change: System
Can influence: Boundary
Can’t change: World
What are user stories?
Short, simple descriptions of a feature told from the perspective of the person who wants the feature, usually a user or a customer
“As a “type of user”, I want “some goal”
Why are user stories helpful?
Help define the scope of the system, help plan, form basis for test cases
What is a use case?
A typical sequence of actions that a user performs to complete a given task
Cover the full sequence of steps from beginning to end
Describe the user’s interaction with the system
As independent from UI design as possible