That plan is a bit too idyllic from my experience. Rarely does the client of a small web-based application possess the ability to conceptualize the application based on a specification -- more often then not they will need to see it partially built to finally "get it."
Given that there needs to be some iterative process between steps 1 and 2. Something like define scope -> identify features -> develop -> reassess scope.
'release' is identified as an end. But web projects and businesses don't or shouldn't 'end'. It is a continuous cycle of invention, so at the 'end', you are really at the beginning of defining the next stage.
Given that there needs to be some iterative process between steps 1 and 2. Something like define scope -> identify features -> develop -> reassess scope.