The conception, birth, and first steps of an application named Charlie

Subscribe: Atom or RSS

The Feature Set

by Alister Jones (SomeNewKid)

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

0 comments

----