lecture notes for Wed Jan 9 on software lifecycle models --- why does waterfall suck? if we have the wrong approach, may need to change everything not dynamic BDUF - big design up front maybe we don't need so much requirements/design work very little "progress" customer doesn't know requirements ahead of time requirements can change coders have nothing to do in early stages suits have nothing to do in later stages saving testing for end is asking for trouble why does spiral suck? bad for small projects whuh??? (complicated) may degenerate into code-and-fix model relies on developers being able to identify risks well context-switching overhead lots of documentation why does evolutionary prototyping suck? stuck with prototype-quality code how many times should we "evolve?" feature creep/bloat conflicting customer feedback why does staged delivery suck? order of stages / ability to break apart into stages need to deliver "production quality" product stages can be costly