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.

efers_to will be NULL. For content that is not temporal, therelease and expiration times will be NULL. Otherwise, most of thecolumns will be filled most of the time.What about questions and answers in a discussion <strong>for</strong>um? If there isonly one <strong>for</strong>um on the site, we can simply add rows to thecontent_raw table with a content_type of "<strong>for</strong>um_posting" andquery <strong>for</strong> the questions by checking refers_to is null. On a sitewith multiple <strong>for</strong>ums, we'd need to add a parent_id column toindicate under which topic a given question falls. Within a <strong>for</strong>um withmany archived posts, we'll also need some way of storingcategorization, e.g., "this is a Darkroom question". Seehttp://www.photo.net/bboard/ <strong>for</strong> a running example of a multi-<strong>for</strong>umsystem in which older postings are categorized. The "Discussion"chapter of this book treats this subject in more detail.6.6 Why Not Use the File System?Let's step back <strong>for</strong> a moment and ask ourselves why we aren'tmaking more use of the hierarchical file system on our server. Whatwould be wrong with having articles stored as .html files indirectories? This is the way that most Web sites were built in the1990s and it is certainly impossible to argue with the per<strong>for</strong>manceand reliability of this approach.One good thing about the file system is that there are a lot of tools <strong>for</strong>users with different levels of skill to add, update, remove, and renamefiles. Programmers can use text editors. Designers can use Webdesign tools and FTP the results. Page authors can use HTMLeditors such as Microsoft Front Page.One bad thing about giving many people access to the file system isthe potential <strong>for</strong> chaos. A designer is supposed to upload a templatebut ends up removing a script by mistake. Now users can't log intothe site anymore. The standard Windows and Unix file systems aren'tversioned. It isn't possible to go back and ask "What did this file look6 months ago?" The file system does not by itself support anyworkflow (see below). You authorize someone to modify a file or not.You can't say "User 37 is authorized to update this article onaquarium filters but the members shouldn't see that update until it isapproved by an editor."The deepest problem with using the file system as a cornerstone ofyour content management system is that files are outside of theBe careful of the layperson's tendency to try to pack in as manyfeatures as he or she can conceive. When a site is young it should besimple and have few collaboration areas. If there are 30 separatediscussion <strong>for</strong>ums and comment areas, how are the first 15 usersgoing to find each other? Remind your client that www.slashdot.org isenormously popular as a single uncategorized <strong>for</strong>um.Does a competitive site have lots of bells and whistles? That's not areason to delay launch until an equivalently complex user interfacehas been built. Are users of the competitive site actually using all ofthose features? Or are most of them congregating in a couple ofplaces?People new to the world of online communities tend to see LaunchDay as the most important day in the life of an <strong>Internet</strong> application. Infact, far more users will come to a site in its 36th month of existencecompared to its first month. The only risk is launching something soterrible that a test user will be alienated and never return. In a worldof 6 billion people, this might not seem like a serious problem, but ifthe potential users are, <strong>for</strong> example, corporate employees invited totry a new intranet, it may be essential to make a good firstimpression. Here are some minimum requirements <strong>for</strong> making a goodfirst impression:• high quality content, unavailable elsewhere on the <strong>Internet</strong>and relevant to users' current tasks• easy and fast user interface (no 30-second Flash downloadsor confusing blind alleys)If a client proposes a feature that is unnecessary <strong>for</strong> meeting theserequirements, ask the question "Why does this keep us fromlaunching?" Every day the service isn't launched is a day that you'renot learning from users. Every day the service isn't launched is a daythat the client's organization isn't learning how to operate the service.In collaboration with your client, develop a feature grid dividing thedesired features into the following categories:1. Minimum Launchable Feature Set, i.e., things that arerequired <strong>for</strong> the launch2. Version 1.0 (try to finish by the end of this course)3. Version 2.0 (write down so that a planned follow-onimplementation can be accomplished)102247

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

Saved successfully!

Ooh no, something went wrong!