Version 32 (modified by kyli, 16 years ago) (diff) |
---|
Analysis
Overview
Decided to try to use Ticket system more efficiently. This includes using ticket systems for every task's change to see what is the status of each task, use assign to, etc.
Task requirements
Create new ticket resolutions:
- analyzing - Analyzing (task in analysis process)
- analyzed - Analyzed (this means the task is analysis is done and is pending for review)
- analysis accepted - Analysis OK (task analysis reviewed and the result is >=3)
- designing - Designing (task in design process)
- designed - Design ready (pending review)
- design accepted - Design OK (task design reviewed and the result is >=3p)
- implementing - Implementing (task is currently being implementated)
- implemented - Implementation ready (pending review)
- implementation accepted - Implementation OK - implementation of task passes review. The result of this review is score for the whole task's revision (SuperScore)
Task result
Issue tracker capable of handling tasks' whole process.
Implementation idea
Create the resolutions listed in Task Requirements section. Design a workflow. Try to separate PLANNED_TASKS in order to assign the designed workflow for these tasks only.
Backup first!
Use
[ticket-workflow] accept = new,assigned,accepted,reopened -> accepted accept.operations = set_owner_to_self accept.permissions = TICKET_MODIFY leave = * -> * leave.default = 1 leave.operations = leave_status reassign = new,assigned,accepted,reopened -> assigned reassign.operations = set_owner reassign.permissions = TICKET_MODIFY reopen = closed -> reopened reopen.operations = del_resolution reopen.permissions = TICKET_CREATE resolve = new,assigned,accepted,reopened -> closed resolve.operations = set_resolution resolve.permissions = TICKET_MODIFY proceed = new -> analyzing proceed = analyzing -> analyzed proceed = analyzed -> an-OK,new proceed = an-OK -> designing proceed = designing -> designed proceed = designed -> de-OK,an-OK,new proceed = de-OK -> implementation proceed = implementation -> im-OK,de-OK,an-OK,new proceed = im-OK -> closed proceed.operations = set_resolution proceed.permissions = TICKET_MODIFY
in /home/dan/env/conf/trac.ini
Related
TracWorkflow this document should be useful.
How to demo
Create a new PLANNED_TASK ticket. Change different resolutions.
Design
The diagram below shows what our workflow will look like. The transitions available are:
- accept - this is when s.o. accepts to analyse, design, implement a task, with this transition the task's owner is automaticly changed to self. When accepting testing the owner will not change.
- done - finnished designing, implementing, etc. It is a must to write a comment including the time spended on working.
- review fail - the review has failed. Reasons and scores must be written as a comment.
- review ok - the review has passed. Scores and remarks must be written as a comment.
- reassign - this transition is available at any state of the issue it does not change da current state, just the owner of the issue.
- resolve - this is a transition to finalise the issue, it leads to a closed state with a specific resolution ( fixed, invalid, wontfix, duplicate, worksforme, etc ). This is also availbla at any state of the issue.
Some issues may not need testing, we can resolve these issues after "implementation accepted"
Design Refactoring:
The ini is located /sophie-project/sophie2/conf/trac.ini . The phases should be changed -
- "analysis accepted" should be "analysis OK"
- "design accepted" should be "design OK"
- "implementation accepted" should be "implementation OK"
- "testing accepted" should be "testing ok"
Should add numbers to help ordering the statuses. Suggestions:
- 01 new
Statuses:
- new
- closed
- s1a_analyzing
- s1b_analyzed
- s1c_analysis_ok
- s2a_designing
- s2b_designed
- s2c_design_ok
- s3a_implementing
- s3b_implemented
- s3c_implementation_ok
- s4a_testing
- s4b_tested
- s4c_test_ok
Workflow:
- new -> s1a_analyzing
- s1a_analyzing -> s1b_analyzed
- s1b_analyzed -> s1c_analysis_ok (analysis review ok); s1b_analyzed -> new (analysis review fail)
- s1c_analysis_ok -> s2a_designing
- s2a_designing -> s2b_designed
- s2b_designed -> s2c_design_ok (design review ok); s2b_designed -> s1c_analysis_ok (design review fail); s2b_designed -> new(design review fail)
- s2c_design_ok -> s3a_implementing
- s3a_implementing -> s3b_implemented
- s3b_implemented -> s3c_implementation_ok (implementation review ok); s3b_implemented -> s2c(implementation review fail); s3b_implemented -> new(implementation review fail)
- s3c_implementation_ok -> s4a_testing
- s4a_testing -> s4b_tested
- s4b_tested -> s4c_test_ok (test ok); s4b_tested -> s3c_implementation_ok (test fail)
Implementation
The trac.ini ticket-workflow section modified as follows:
[ticket-workflow] accept_analyzing = new -> analyzing accept_analyzing.name = "analyse" accept_analyzing.operations = set_owner_to_self accept_analyzing.permissions = TICKET_MODIFY done_analyzing = analyzing -> analyzed done_analyzing.name = "analysed" fail_analysis = analyzed,designed,implemented -> new fail_analysis.name = "analysis review fail" accept_analysis = analyzed -> analysis_accepted accept_analysis.name = "analysis accepted" accept_designing = analysis_accepted -> designing accept_designing.name = "design" accept_designing.operations = set_owner_to_self accept_designing.permissions = TICKET_MODIFY done_designing = designing -> designed done_designing.name = "designed" fail_designing = designed,implemented -> analysis_accepted fail_designing.name = "design review fail" accept_design = designed -> design_accepted accept_design.name = "design accepted" accept_implementing = design_accepted -> implementing accept_implementing.name = "implement" accept_implementing.operations = set_owner_to_self accept_implementing.permissions = TICKET_MODIFY done_implementing = implementing -> implemented done_implementing.name = "implemented" fail_implementing = implemented -> design_accepted fail_implementing.name = "implementation review fail" accept_implementation = implemented -> implementation_accepted accept_implementation.name = "implementation accepted" accept_testing = implementation_accepted -> testing accept_testing.name = test done_testing = testing -> tested done_testing.name = tested fail_testing = tested -> implementation_accepted fail_testing.name = "test review fail" accept_test = tested -> test_accepted accept_test.name = "test accepted" reopen = closed -> new reopen.operations = del_resolution reopen.permissions = TICKET_CREATE reassign = * -> * reassign.operations = set_owner reassign.set_owner = pac,tanya,pav,pap,peko,deyan,tosho reassign.permissions = TICKET_MODIFY resolve = * -> closed resolve.operations = set_resolution
Testing
Log