13.07.2015 Views

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.4 What is Different About News?What is so different about news that we need to have a separatetable? Oftentimes news has an expiration date, after which it is nolonger interesting and should be pushed into an archive. "Pushinginto an archive" does not necessarily mean that the item must bemoved into a different table. It might be enough to program thepresentation scripts so that unexpired news items are on the firstpage and expired items are available by clicking on "archives".Often a company's press release will be tagged "<strong>for</strong> release Monday,April 17." If a publisher wants to continue receiving press releasesfrom this company, it will respect these dates. This implies the need<strong>for</strong> a release_time column in the news data model.Other than these two columns (expiration_time andrelease_time), it would seem that a news story needs more orless the same columns as articles: a place <strong>for</strong> a one-line summary, aplace <strong>for</strong> the body of the story, a way to indicate authorship, a way toindicate approval within the editorial workflow.Upon further reflection, however, perhaps these columns could beuseful <strong>for</strong> all site content. An article on installing Windows 2000probably should be set to expire in 2002 or 2003. If a bunch ofauthors and editors are working on a major site update, perhaps itwould be nice to synchronize the release of the new content <strong>for</strong>Tuesday at midnight. Let's go back to content_raw:create table content_raw (content_id integer primary key,refers_to references content_raw,creation_user not null references users,creation_date not null date,release_time date, -- NULL means "immediate"expiration_time date, -- NULL means "never expires"languagechar(2) references language_codes,mime_type varchar(100) not null,one_line_summary varchar(200) not null,body clob,editorial_status varchar(30)check (editorial_status in('submitted','rejected','approved','expired')));How do we find news stories amongst all the content rows? Whatdistinguishes a news story with a scheduled release time andexpiration date from an article on the Windows 2003 operating100Place your completed plan at /doc/planning/YYYYMMDDimplementationand email your client(s) and instructors notifyingthem that the plan is ready <strong>for</strong> final review.13.7 Is this Necessary?Suppose that your team is only two people and your client is oneteam member's mother, owner of a local SCUBA diving shop. Is itnecessary to engage in such a <strong>for</strong>mal process? Wouldn't it bepossible to obtain a successful result by sitting down in one room andhacking out code, periodically calling Mom over to look at what'sbeen done?Absolutely.Why the emphasis on process then when the teams are so small? Itis a good habit <strong>for</strong> every software developer to get into, especially asmodern software projects tend to stretch across corporate andinternational borders.Consider a software project from a Jane Decision-Maker'sperspective. Jane doesn't know enough to distinguish between goodcode and bad code. Nor can she look at a mostly-finished project andfigure out how much more coding is required to make it work. JaneDecision-Maker is not going to be com<strong>for</strong>ted by a team ofprogrammers with a track record of pulling everything together with alast-minute miracle. How does she know that the miracle will happenagain on her project?What Jane will be com<strong>for</strong>ted by is process and programmers whoappear to operate in a manner that is predictable to them and theirclient. The more detailed the plain-language plans the morecom<strong>for</strong>ted Jane will be, especially if the work has been contracted outto a separate corporation.In summary, larger teams require more process, longer projectsrequire more process, and work that is spread across enterprisesand/or international borders requires more process. Your project <strong>for</strong>this class is being done by a small team on a condensed scheduleand, ideally, within the same city as the client. What benefit is thereto you from using a process that isn't absolutely necessary?One benefit from using a more thorough process is that you'll tend toimpress people a lot more in presentations of your work. People who249

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!