Changes between Version 17 and Version 18 of PROCESS


Ignore:
Timestamp:
10/20/08 18:41:39 (17 years ago)
Author:
pavlina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PROCESS

    v17 v18  
    113113Note: The transitions of each state are defined in [source:/trunk/sophie2-platform/doc/uml-design-diagrams/workflow.png Workflow diagram]. 
    114114 
    115  * '''analyzing''' - task is waiting to be taken, and someone to determine What should be done? 
    116   * to learn how to write good analysis, see [wiki:PLATFORM_STANDARDS_ANALYSIS Platform Standards Analysis]  
    117  * '''analyzed''' - it is already determined what should be done and the task is waiting for review. 
    118  * '''review''' - The reviewer look through the implementation to see if it is correct. 
     115 * '''analyzing''' 
     116  * task is waiting to be taken, and someone to determine What should be done? 
     117  * to learn how to write good analysis, see [wiki:PLATFORM_STANDARDS_ANALYSIS Platform Standards Analysis] 
     118  * there should be at least one example how to do one or more things that should be done. 
     119  * It should take not more than 0.25 of the task effort. 
     120 * '''analyzed''' 
     121  * It is already determined what should be done. 
     122  * the task is waiting for review (Wait for the review of the analysis before starting the design otherwise your work can be for nothing!) 
     123 * '''review'''  
     124  * the reviewer look through the analysis to see if it is correct 
     125  * the analysis should apply to [wiki:PageTemplates/TaskPageTemplate#Analysis its template] 
    119126 * '''analysis accepted''' - the reviewer decides that the analysis of the task is correct 
    120  * '''designing''' - The implementer is designing the task or in other words tries to decide How it should be done? 
     127 * '''designing'''  
     128  * The implementer is designing the task or in other words tries to decide How it should be done? 
    121129  * It is not compulsory but recommended that the design should be made by the implementer. 
    122   * It is recommended that the design should not be made by the analyzer.  
    123   * designing is not only getting an idea of how to do it, but a detailed concept step by step 
    124   * for many tasks the design phase should take most of the time  
    125  * '''designed''' - The task is designed and is waiting for review. 
    126  * '''review''' - The reviewer look through the implementation to see if it is correct. 
     130  * It is recommended that the design should not be made by the analyzer of the task.  
     131  * Designing is not only getting an idea of how to do it, but a detailed concept, step by step. 
     132  * For many tasks the design phase should take most of the time. 
     133 * '''designed''' 
     134  * The task is already determined how should be done. 
     135  * It is designed and is waiting for review. 
     136 * '''review''' 
     137  * The reviewer look through the design to see if it is correct. 
     138  * The reviewer can imagine himself as an implementer and see if he/she can implement the task following the design without problems. 
    127139 * '''design accepted''' - The reviewer decides that the design of the task is correct. 
    128  * '''implementing''' - The implementer makes an attempt to complete the task. 
     140 * '''implementing''' 
     141  * The implementer makes an attempt to complete the task. 
     142  * He/she should follow the design strictly. 
     143  * He/she should write in Implementation section of the task the result of the implementation. 
    129144 * '''implemented''' - The implementer decides that the implementation of the task is ready. 
    130145 * '''review''' - The reviewer look through the implementation to see if it is correct. 
    131  * '''implementation accepted''' - The reviewer decides that the design of the task is correct. 
    132  * '''testing''' 
    133  * '''review''' - the reviewer looks for missing or wrong tests and decides if there are minor and can be added later or they are important and have to be written (or fixed) now. 
     146 * '''implementation accepted''' 
     147  * The reviewer decides that the implementation of the task is correct. 
     148  * The implementation section must be filled. 
     149 * '''testing''' - There should be appropriate tests written for the task. 
     150 * '''tested''' - Testing state is done, waiting for review 
     151 * '''review''' 
     152  * the reviewer looks for missing or wrong tests 
     153  * if there are any decides they can be added later 
     154  * if they are too important or wrong they should be fixed - the review fails. 
    134155 * '''testing accepted''' 
    135156 
    136157 * Note that, failing a state (for example moving from implementing to analyzing because implementing failed) requires that the state of the product is reversed to the initial.  
    137158 
    138 You may note that some bigger tasks can not be easily made with these phases. However this is a problem to the task. Big tasks should be decomposed to smaller so that they can fit. 
    139  
    140 = Requirements = 
    141  
    142 Refactoring should be continuous process(not doing again great refactorings!). 
    143  
    144 == General == 
    145  
    146 The following are valid for no matter what kind of task we are doing: 
    147  
    148     * Analysis - What is to be done? 
    149     * Design - How will we do it? 
    150     * Implementation - The actual "do it".  
    151  
    152 Review may be applied after each phase. Each activity should be logged (in the sprint backlog), and all information needed to log it should be filled. If implementers want, they can (and are encouraged to) ask for guidelines early. This is something like an early review, which is not logged. 
    153  
    154 At first month, each review should be rechecked by Milo. 
    155  
    156 However, to clarify the things further: 
     159= States depends on task kinds = 
    157160 
    158161 * Implementing a new external feature (visible from the user): 
    159   * analyzing - 
     162  * analyzing  
    160163   * should have a specification, and a manual testing scenario  
    161   * designing - 
     164  * designing  
    162165   * write an automatic test/tests which verifies that your feature is working 
    163    * look at the related code, 
     166   * look at the related code 
    164167   * decide what needs to be added 
    165168   * if you add new library feature 
    166169    * write use case tests for it  
    167    * You may also write skeleton types (only declaration) and demos. 
     170   * You may also write skeleton types (only declaration) and demos 
    168171    * write an outline of your design.  
    169172   * implementing 
     
    171174    * Ensure that all tests pass. 
    172175    * During the process, add more tests.  
    173    * reviewers - one other developer and one QA.  
    174  
    175  * Researching about a technology, library, whatever. 
     176 
     177 * Researching about a technology or library 
    176178  * analyzing - specify what needs to be researched 
    177    * what the research will solve, 
     179   * what the research will solve 
    178180   * what is needed to be solved (this is important)  
    179181  * designing 
    180    * You can try things, etc, but... do not pollute the main source (for example with libraries). 
     182   * You can try things, but do not pollute the main source (for example with libraries). 
    181183   * If you need to use other libraries, do it in another project (or in another branch) 
    182184   * If you don't need other libraries, you can do it in a research package, but you should make sure that you don't introduce warnings, failing tests, etc.  
     
    233235 * leader - someone assigned to do the management (default: milo) 
    234236 * implementers - the workers on given task 
    235  * reviewers - someones (it needs to be two, usually one developer and one QA) which is assigned to review something. 
    236   * the reviewers and the implementers may not intersect!  
    237  
    238  
    239 Things to be read tracking - [wiki:ImportantDocs] 
    240  
    241 = Other notes = 
    242  
    243 == Reverting == 
    244  
    245 If some bad code is committed (for example one that breaks changes) there may be a need to revert it. 
    246  
    247 Reverting is done by: 
    248  * creating an inverting diff (between revisions, or several revision numbers) 
    249  * applying that diff to the current source code. 
    250  * commiting  
     237 * reviewers - someone, which is assigned to review something. 
     238  * the reviewer and the implementer may not intersect!  
     239 
     240= Documents to read = 
     241[wiki:Important Docs] 
     242 
     243= Comments =