wiki:WikiGuidelines

Version 1 (modified by Michael Howden, 12 years ago) ( diff )

Draft

Home

Wiki Guidelines

Page Standards

  • At the top and bottom of each page there must be a link to the parent page in the hierachy
  • Below the header should be the page's title - which should match the Title used in the Link (after the parent page's name)

Current Page Sections

BluePrints

Developer Guidelines

Installation Guidelines

Trac

User Guideline

Wiki

Proposed Page Sections

Specifications

Currently the BluePrints are a good place to collect ideas, user stories and drafting specification. However they generally lack the formality of specifications required for the development. For this reason it is proposed that Specification pages are created to support the development process. Typically the specification is NOT a technical document, and must be prepared with a non-technical audience in mind. Perhaps it would be more accurate to refer to them as "Functional Specifications". The exception is when the specification is referring to a framework component, when the "users" will be other developers.

Joel Spolsky has good write-ups on why specifications are important and how to write them:

Although it is a BluePrints page, [BluePrintDecisionMakingTechnicalTwo] is a good example of a specification. The following template has been based on the sections from from this specification, plus a few others.

Specification Template

History

A place to record the status and progress of the specification, especially review and approval from users/domain experts.
yyyy-mm-dd
<Name>
<Review Comments>

Overview
Scenarios/User Stories

optional

Non Goals

optional
What the system will NOT do.

Definitions

optional
Of any new terminology in the specification

Users

What different types of users will be using the system? What tasks will they be performing?

Data Model

A list of the tables and fields that the system will include

Flowcharts

Optional
Showing any complex navigation between screens or flow of algorithms.

For User Modules/Applications
A hierarchical overview of all of the screens

Screens

For User Modules/Applications
A detailed description (preferably with wire-frames) for all of the new screen in the system.

API

For Framework Modules
The functions and other interfaces which other developers will use to interface with the system.

Technologies

Optional
A list of specific libraries, APIs etc which will be used by the system. NOT including the standard SahanaPy Ones.

References

Optional
Any external resources which may support of clarify this specification.

Open Issues

Optional
Any unresolved issues or unanswered questions concerning the system.

Comments

A sections where people are able to leave informal comments on the specification.

Although it may be difficult to start with, as we start having more specifications documented, it will become easier to write new ones as we will have more examples to refer to.

Code Documentation

Technical Documentation

Features between the Python Developers and End Users

  • Installation
  • Configuration
    • Themes (CSS?)
    • Menus
  • Web Services
  • Synchronization
  • Data Import/Export

User Documentation

How do we want to present this?

Branches

Is it worthwhile for people to document any active branches to keep track of what people are working on and what new features are being introduced into the code. Or is Launchpad sufficient?

Deployments

Where SahanaPy is being used. This should link to the appropriate Branch, but ideally not be in technical language - it should be more promotional.

Contributors

Is is worthwhile for contributors too be able to have profile pages? it would be good to have some sort of contact directory.

Home

Note: See TracWiki for help on using the wiki.