Seven Ws (composing brief software requirements)

Quis, quid, quando, ubi, cur, quem ad modum, quibus adminiculis.
(Who, what, when, where, why, in what way, by what means)
Hermagoras of Temnos

Quotation above is created by Hermagoras for defining seven "circumstances" as a way of the formulating or analyzing rhetorical questions. But it is useful for many other areas, like for composing brief software requirements. Sometimes it's essential for us to analyze the perspective project as fast as possible, without creating tremendous SRS, but merely ask few questions and begin to work. Especially, it relates to Agile Development, and can be easily used as a reference point for starting a project.

Let us interpret these questions to ones of the sample meanings:
  • Who will use that project?
  • What kind of software does the project represent?
  • When should the project be delivered to the end users?
  • Where is the project intended to be used?
  • Why would the project be successful?
  • In what way is the project supposed to work?
  • By what means will the project be created?
And let us briefly review how it works in practice for the Thunderbird Grammar Checker project as an example.
  • Who? Peoples who care about their writing style, like businessmen and businesswomen, who write many email messages, and sometimes miss simple grammar errors because of rush.
  • What? It's a plugin for Thunderbird.
  • When? As soon as possible, but the delivery time is not so important due to lack of the commercial profit.
  • Where? On all major platforms: Linux, MacOSX, Windows.
  • Why? There are no competitive solutions. MS Outlook can be considered, but it lacks certain features like Linux/MacOSX support, OpenPGP compatibility, etc.
  • In what way? Using LanguageTool webserver (at least, for the first releases). In future releases LanguageTool engine can be ported to C++ or JavaScript, thus can be directly used by the project.
  • By what means? XUL/JavaScript like all other plugins are created.
So this can be a start. If you or your client answer these questions, you'll have certain image of the project. Further, this starting point will help you to create required SRS (and these question can be a basis for it). Good luck!


Popular posts from this blog

Trac Ticket Workflow

Introduction to ReviewBoard

Python vs JS vs PHP for embedded systems