Just a little interesting bit. Another anecdote to throw in the pile.
I am wrapping up a 10-week project: a web application with requirements
for an SQL data source (interop with SQL-oriented scripts). Here is a
(censored for my client's protection) list of the last stories
completed, in reverse chrono order.
* notify users by e-mail when blah-blah event happens
* match blah-blah domain objects by full name instead of last name only
* find reports filed by a specific user
* enable multiple users, including a few authorization rules and a few
"you can only see these rows" rules
* browse data in offline mode
* minor changes to blah-blah form (a bundle of tiny "we changed our
minds" changes)
* handle this new form (standard CRUD stuff)
* data needs to persist in an SQL data source
Before these stories we had a webapp that ran entirely in memory. All
these stories were completed/will be completed in the last 3 weeks of
the 10-week project.
The most difficult was adding the JDBC stuff, which took a week because
I got lazy and didn't write good tests. I also misunderstood the changes
required to add transaction/connection management. That got me down for
a few days.
So what about the "architecture" stuff? Here's when we added those
things that "always have to be done up front."
Week 3: Add web front end (the front end to that point had been FIT tests)
Week 8: Add the database
Week 9: Add offline browsing (server-to-server communication)
Week 10: Add security and e-mail
--
J. B. Rainsberger,
Diaspar Software Services
http://www.diasparsoftware.com :: +1 416 791-8603
Let's write software that people understand