The Feature Set
This blog records the design and development of a web application named Charlie. The elevator pitch for Charlie is as follows:
“Charlie is a web-based application that simplifies the creation, maintenance, and use of websites. For a website developer, Charlie simplifies the process of creating and updating a website. For a website owner, Charlie simplifies the process of maintaining and editing a website. For a website user, Charlie simplifies the process of navigating and using a website.”
The next step recommended by Mike Gunderloy in Coder to Developer is to create a feature set. The feature set describes the functionality that Charlie will provide to each of the three users identified in the elevator pitch. A feature set sounds fixed and formal, but is actually a flexible and informal list of ideas. Mike recommends using mind-mapping software for this task. To me, that’s akin to using AutoCAD to create a sketch—a needless application of technology. Me, I used a pencil and paper, and came up with the following feature set:
For website developers, Charlie will:
- support multiple websites from a single codebase (like DotNetNuke)
- support the concept of content modules (like DotNetNuke)
- support the concept of masterpages (like PowerPoint’s slide master)
- support the concept of page templates (like PowerPoint’s slide templates)
- ensure proper separation of structure (XHTML), style (CSS), and behaviour (ECMAScript)
- allow for turnkey websites (like Clikpic)
- provide high-level objects (like This.Request.Language)
- facilitate highly-configurable websites (each site gets its own site.config)
- automate backup of content
For website owners, Charlie will:
- allow content to be edited (using RichText or MarkDown)
- allow edits to be previewed before saving
- provide content-sensitive help (extend to users)
- ensure documents are checked out and in to ensure integrity
- archives old content to allow for undo of edits
- allows pages to be added, edited, and removed
- allows sections (modules) to be added, edited, and removed
- allow for automatic language translations
- allow for automatic currency conversions
- support multiple versions of content
- support renditions of content (per Adobe XMP)
- support status of content (draft, published, retired)
- audit trail of changes (maybe)
- website reports
- keep simple sites simple, exposing only features necessary
- generate images
- generate Flash movies
- allow for site searches
- automate creation of site maps
- allow for notification by email (and SMS?)
- support multiple modes of content creation (manual, parse, translation, scrape, etc.)
For website users, Charlie will:
- provide friendly URLs
- allow for choice of language
- allow for choice of text size
- allow for choice of page style
- make available print version of page
- make available downloadable version of page (PDF, Zip)
- make feeds available of content (RSS, Atom)
- allow for multiple browsing devices (browsers, handheld, phone, assistive, etc.)
- replaces missing images with an empty but valid spacer.gif
- allow for login to member areas
- provide accessible websites (no tables for presentation, keyboard navigable, etc.)
How did I come up with this list? By listening. I have listened to what users say about websites. I have listened to what website owners say about websites. I have listened to what developers say about websites. If Charlie can provide the features listed above, the goal set out in the elevator pitch will have been met.
I have more to say on the feature list, but I will do so in my next blog entry.
by Alister Jones | Next up: The Feature Set - Simplified →
----
Post a Comment