4 ms·
Good list. Not sure about the comprehensive spec at page 9 though: BDUF - Big Design Up Front is often a naive approach. Requirements and constraints tend to c
by thomanil 17y ago
Good list.
Not sure about the comprehensive spec at page 9 though: BDUF - Big Design Up Front is often a naive approach. Requirements and constraints tend to change as you go along. Too much up front specification can be a waste if 30 percent of those features never see any use. I'm all for thinking each specific task, function and web page properly right through before coding it, though. :)
I also have trouble with "design for reusability" at page 39. Building one-off components is a waste IF you are going to build similar stuff in the future. However designing things for reuse also incurs overhead in itself that first time around. The specific project context should determine if building for reuse is cost-effective. Also, designing for reuse can be taken too far. We sometimes burn ourselves by thinking too generally - see some of the more complex J2EE frameworks out there...
- sunkencity 17y agoGreat list, and yes, never try to build an all purpouse library the first time you are solving a problem.
- daviddixon 17y agoDrew may correct me on this, but I dont think he is necessarily talking about the BDUF approach from a traditional software development viewpoint. ie. not documenting every detail of the system from a developer-standpoint (eg. this function must be AJAX-driven, user details will consist of x and be stored in a mysql innodb database table etc), but more as complete-as-possible account of the user stories the website / application needs to satisfy. I've managed development teams that have very successfully implemented agile development work within a larger organisation that follows waterfall within its general IT teams. The trick is two-fold. One: remove low-level system dependencies (do you really care if i use Apache 2.2 or IIS to host the website??), and two: internally tier the requirements to allow iterative progression and evaluation.