Changes between Initial Version and Version 1 of WikiGuidelines

04/17/10 05:07:32 (12 years ago)
Michael Howden



  • WikiGuidelines

    v1 v1  
     1[ Home]
     2= Wiki Guidelines =
     3== Page Standards ==
     4 * At the top and bottom of each page there must be a link to the parent page in the hierachy
     5 * Below the header should be the page's title - which should match the Title used in the Link (after the parent page's name)
     6 *
     8== Current Page Sections ==
     10=== BluePrints ===
     11=== Developer Guidelines ===
     12=== Installation Guidelines ===
     13=== Trac ===
     14=== User Guideline ===
     15=== Wiki ===
     17== Proposed Page Sections ==
     18=== Specifications ===
     19Currently 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.[[BR]]
     21Joel Spolsky has good write-ups on why specifications are important and how to write them:
     22 * [ Painless Functional Specifications - Part 1: Why Bother?]
     23 * [ Painless Functional Specifications - Part 2: What's a Spec?]
     25Although 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.
     27==== Specification Template ====
     29===== History =====
     30A place to record the status and progress of the specification, especially review and approval from users/domain experts.[[BR]]
     33<Review Comments>
     34===== Overview =====
     35===== Scenarios/User Stories =====
     37===== Non Goals =====
     39What the system will NOT do.
     40===== Definitions =====
     42Of any new terminology in the specification
     43===== Users =====
     44What different types of users will be using the system? What tasks will they be performing?
     45===== Data Model =====
     46A list of the tables and fields that the system will include
     47===== Flowcharts =====
     49Showing any complex navigation between screens or flow of algorithms.
     50===== Menu =====
     51For User Modules/Applications[[BR]]
     52A hierarchical overview of all of the screens
     54===== Screens =====
     55For User Modules/Applications[[BR]]
     56A detailed description (preferably with wire-frames) for all of the new screen in the system.
     58===== API =====
     59For Framework Modules [[BR]]
     60The functions and other interfaces which other developers will use to interface with the system.
     61===== Technologies =====
     63A list of specific libraries, APIs etc which will be used by the system. NOT including the standard SahanaPy Ones.
     64===== References =====
     66Any external resources which may support of clarify this specification.
     67===== Open Issues =====
     69Any unresolved issues or unanswered questions concerning the system.
     70===== Comments =====
     71A sections where people are able to leave informal comments on the specification.[[BR]]
     73Although 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.
     75=== Code Documentation ===
     76=== Technical Documentation ===
     77Features between the Python Developers and End Users
     78 * Installation
     79 * Configuration
     80  * Themes (CSS?)
     81  * Menus
     82 * Web Services
     83 * Synchronization
     84 * Data Import/Export
     85=== User Documentation ===
     86How do we want to present this?
     87=== Branches ===
     88Is 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?
     90=== Deployments ===
     91Where SahanaPy is being used. This should link to the appropriate Branch, but ideally not be in technical language - it should be more promotional.
     93=== Contributors ===
     94Is is worthwhile for contributors too be able to have profile pages? it would be good to have some sort of contact directory.
     96[ Home]