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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Most admin pages can be excluded from the Minimum LaunchableFeature Set. Until there are users there won't be any user activity andthere<strong>for</strong>e little need <strong>for</strong> statistics or moderation and organization ofcontent. Things that are valuable to the users and client butreasonably easy to implement should be in Version 1.0. Anything thatrequires serious programming ef<strong>for</strong>t or that cannot be completelyspecified right now should be pushed out to Version 2.0.Place your feature grid at /doc/planning/YYYYMMDD-featuregrid.13.6 Exercise 3: Implementation PlanNow that you've figured out what you're going to do, it is time to writedown how you're going to do it. Write an implementation plan thatcovers all activity by team members and the client through the lastday of this course. The implementation plan should include dates <strong>for</strong>code freezes, acceptance testing, launch, and any relaunches. Theimplementation plan should be explicit and specific about which teammember is going to do what and, more important, what the client'sresponsibilities are. "Joe Client will deliver additional site content byearly May" is too vague. Better: "Joe Client will deliver copy <strong>for</strong> the/about-us, /privacy, /copyright, and /contact pages by May 2."Keep in mind that your goal is to launch the service as soon aspossible so that everyone can learn from interaction with real liveusers.How can you estimate the number of hours that will be required toexecute the tasks in the plan? After all, you've never done the thingsin the implementation plan be<strong>for</strong>e or they wouldn't be in the "to-beimplementedplan". The best tool <strong>for</strong> estimating a new project is arecord of how long it took to do a bunch of old projects. To what isthe new project most similar? Suppose that it took you 3 days to builda discussion <strong>for</strong>um system <strong>for</strong> example and you're asked to build aclassified ad system. Both systems need a comparable numberdatabase tables. Both systems accept content from users and requiresome sort of administrator approval. If built on the same server that iscurrent running the discussion <strong>for</strong>um, the classified ad systemdoesn't require any new software, subsystems, or other tools that youhaven't already installed and used. Thus it would probably be safe toestimate the classified ad system as a 3-day project.248system with a scheduled release time and expiration date. We'll needone more column:create table content_raw (content_id integer primary key,content_type varchar(100) not null,refers_to references content,creation_user not null references users,creation_date not null date,release_time date,expiration_time date,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')));create view news_current_and_approvedasselect *from content_rawwhere content_type = 'news'and (release_time is null or sysdate >= release_time)and (expiration_time is null or sysdate = release_timewill exclude any rows where release_time is NULL.6.5 What is Different About Discussion?It seems that we've managed to treat four of the six required contenttypes with one table. What's more, we've done it without having along list of NULLed columns <strong>for</strong> a typical item. For an article,101

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

Saved successfully!

Ooh no, something went wrong!