Skip to content

Latest commit

 

History

History
97 lines (67 loc) · 2.52 KB

File metadata and controls

97 lines (67 loc) · 2.52 KB

Chapter 7: Before the Project

36) The Requirements Pit

"Perfection is achieved, not when there is nothing left to add, but when there is nothing left to take away..."

Tip 51: Dont gather requirements - dig for them

Digging for Requirements

  • Most requirements are not easily available on the surface
    • Question everything
  • Important to understand the why behind a particular thing

Tip 52: Work with a user to think like a user

Documenting Requirements

Cockburns Use Case Template

  • CHARACTERISTIC INFORMATION
    • Goal in context
    • Scope
    • Level
    • Preconditions
    • Success end condition
    • Failed end condition
    • Primary actor
    • Trigger
  • MAIN SUCCESS SCENARIO
  • EXTENSIONS
  • VARIATIONS
  • RELATED INFORMATION
    • Priority
    • Performance target
    • Frequency
    • Superordinate use case
    • Subordinate use case
    • Channel to primary actor
    • Secondary actors
    • Channel to secondary actors
  • SCHEDULE
  • OPEN ISSUES

Overspecifying

  • Dont want to be overspecific
    • Can cramp things
    • Better to have good level of abstractions

Tip 53: Abstractions live longer than details

Just One More Wafer-Thin Mint

  • Many project failures are blamed on an increase in scope
  • Also known as feature bloat
  • Track feature requirements
    • Just like code source control

37) Solving Impossible Puzzles

Tip 55: Dont think outside of the box - find the box

  • Understanding "constraints" and how to exploit them is useful

Impossible problems

  • Is there an easier way?
  • Are you trying to solve the right problem, or have you been distracted by a peripheral technicality?
  • Why is this thing a problem?
  • What is it thats making it so hard to solve?
  • Does it have to be done this way?
  • Does it have to be done at all?

38) Not Until Youre Ready

"He who hesitates is sometimes saved"

Tip 56: Listen to nagging doubts - start when youre ready

Good Judgement or Procrastination

  • Prototype things just to get the juices flowing yknow?
  • Flush out your concerns

39) The Specification Trap

  • Program specification is the process of taking a requirement and reducing it down to the point where a programmers skill can take over
  • Dont want to go so far as to rob the programmer of all creativity

Tip 57: Some things are better done than described

40) Circles and Arrows

Tip 58: Dont be a slave to formal methods

Tip 59: Expensive tools do not produce better designs