Midterm Flashcards
What does bad Software engineer procatices create?
- failed projects
- lost money
- stressed employees
- poor customer value
Name 5 items of a user story.
1) Role-Goal-Benefit
2) Notes
3) Definitions of Done
4) Tasks
5) Effort Estimate
Name 6 properties of a good user story.
Independent Negotiable Valuable to users or customers Estimable Small Testable
What does it mean for a user story to be independent?
- Little dependence between stories
- Keeps development flexible
- Makes estimation easier
What does it mean for a user story to be negotiable?
- Details are negotiated between developers and users
- Stories become reminders of what has been negotiated
What does it mean for a user story to be valuable to user/customer?
- Make sure customer can estimate value of a story
- Not intended to be valuable only yo developers
Who is a customer?
Purchaser: person who pays for the software.
User: person who uses the software.
What does it mean for a user story to be estimable?
- a developer should be able to estimate how lind a story should take to complete
- helps in planning
- problems:
lack of domain knowledge -> ask customer
lack of technocal knowledge -> burst up on tech
story is too big -> break it up
What does it mean for a user story to be small?
- stories should be “just the right size”
- rule-of-thumb: half a day to several days to implement
- too big:
- > estimate inacccurate + no value delivered until story is complete
- > compound suggests break it up
- too small:
- > writing down the story may take longer than implementing it
- > combine if too small
What does it mean for a user story to be testable?
- the story should have a test that goes with it to demonstrate that the story is implemented
- two types:
1) Automated
2) Manual
Describe the process of decomposing a user story.
- Look for “entities” and “responsibilities”.
- Relate the entities
- Identify veebs
- Build a diagram
Name and describe two common phases of Software Design.
1) Architectural Design
- determining which sub-system you need
2) Detailed design
- looking at the statistics and dynamic of your system
What is a aequence diagram?
Sequenced diagram is a diagram used to describe sequences of invocations between the objects that comprise the system.
Name 6 steps of refactoring.
1) Make sure all your tests pass
2) Identify the code smell
3) Determine how to refactor this code
4) Apply the refactoring
5) Run tests to make sure you didn’t break anything
6) Repeat until the smell gone
How to refactor magic numbers?
To refactor magic numbers replace it with a symbolic constant.
How to refactor repeated lines of code?
To refactor repeated lines of code extract method.