Standardize management of Agile development using ZenTao

2017-11-21 10:49:00
Renee
Original
4194


Apply ZenTao to manage the all lifecycle of software development in Agile methodology, and standardize managment through phases of Story->Design->Code->QA->Delivery, which match features in ZenTao.



Roles

  • Project Manager
  • Technical Manager
  • QA Manager
  • Senior Programmer (team leader)
  • Programmer
  • Web Developer



Workflow

1. Preliminary discussion with clients on stories.

  • Responsible: Project Manager
  • Involved: Technical Manager, QA Manager, and other relevant

ZenTao is not applied in recording communication with the external. Meeting minutes, Emails and such are used to record it.


2. Prioritize stories with clients.

  • Responsible: Project Manager
  • Involved: Technical Manager

Enter stories into ZenTao and set Priority. Stories must be detailed. For example, the original story is "It supports multi cities, and will roll out in four cities on April 15." Its detailed stories should be detailed per page, for example "Multicity_Change order list page to support multicity"...


Once stories that needs to be finished for next release are confirmed, a meeting for teams involved in this project should be informed, and QA manager can start to get test cases ready.


3. Confirm the version of components that will be released.

  • Responsible: Project Manager
Standardize the version number of each release,


1) Add 1 to the second number of each release, and 0 to the third one, such as V.2.2.0.

2) If any minor changes after the release, add 1 to the third number incrementally, such as V2.2.1,V2.2.2...


Generally speaking, it is released every other week. In ZenTao->Project->Version,  version is defined and linked to stories. A story can be linked to  multiply versions, such as Story 002, "Order list page supports different operators from multicity only have access to orders in the city s/he locates". This story involves in Order Center Component V2.2.0, Product Center Component V2.2.0, and Mini Mall/PC Mall Component V2.2.0 which has to be all linked to the story.


Please pay attention to the version number of all components, which should be the same,

1) Mini Mall/PC Mall Component V2.2.0

2) Order Center Component V2.2.0

3) Product Center Component V2.2.0


4. Decompose and assign development tasks according to stories.

  • Responsible: Project Manager

In ZenTao, go to Project->Task. Task is the center of your work. One task can only have one executor. When decomposing tasks, it is to decompose one story into several tasks. For example,


Story: Change XXX page to support that operators in different cities can only have access to local information. It can be decomposed into three tasks,

1) Change XXX page to support that operators in different cities can only have access to local information-detailed design.

2) Change XXX page to support that operators in different cities can only have access to local information-backend coding.

3) Change XXX page to support that operators in different cities can only have access to local information-frontend coding.


5. Document the design according to stories.

  • Responsible: Programmers who have been assigned with tasks
  • Supervisor: Technical Manager

Programmers document the design which involves no difficult features, and senior programmers or technical manager document the design that involves challenging features, and then put them all into SVN.


Format document titles: Design Document_Story ID_Story Title. For example, Design Document_Story001_Change XXX page to support that operators in different cities can only have access to local information.


6. Coding

  • Responsible: Programmers who have been assigned with tasks
  • Supervisor: Techical Manager, Senior Programmer (team leader)

1) Programmers finish tasks recorded in ZenTao and do unit test.

2) Programmers start assigned tasks every morning and click "Finish" once the task is done.

Please be aware of that it is very important to communicate face-to-face. Using ZenTao to assign tasks does not meant that face-to-face communication is not necessary.

3) Technical Manager reviews the code and solve technical problems.

SVN can be integrated into ZenTao, which means Technical Manger can review the code in ZenTao.

4) Project Manger monitors the progress of development and deal with issues if any. According to how much the task has been done, project manager change the schedule of stories, and inform the client the schedule. The schedule of stories should be put in "Note", and the format is as followed,

Development by 7PM 04-08-2016

QA by 7PM 04-19-2016

Release on 2AM 04-20-2016


7. Submit for QA

1) If the Technical Manager thinks it can be submitted for QA after testing, go to ZenTao->Project->Version to submit for QA.

2) Technical Manager deploys code to the server for testing.

3) QA Manager schedules for testing and reports bugs. If it would be fixed in this release, mark the severity of the bug as 1. If not, mark it as 2 or 3.

4) When the testing is coming to the end and the release will be confirmed, Technical Manger will branch a version (branch name format:V2.2.0_Testing) that is corresponding to the code for testing in SVN.

Bug fixing should be done by a few core programmers, so to minimize the possibility of coding more bugs. After notifying core programmers to switch to this branch, change the privilege in SVN by deleting their Read/Write privilege from Trunk so to avoid mistakes. Other programmers who keep coding on this Trunk should be aware of

-- When reporting bugs in QA->Bug, choose the right version;

-- Technical Manager should inform each team member that updated doc has been sent to testing server, and attach the list of bugs fixed.


8. After QA, review it again before release.

Once QA manager did regression testing on all Severity 1 bugs and confirmed it is ready for release,

1) QA manager can inform Project Manager that it is ready for release;

2) Project Manager should test it to ensure the quality;


3) Sumit it to the client for acceptance test, if Project Manager tested it and thinks it is OK. If necessary, ask the client to be part of the test on Step 7.


9. The client confirms the release.

After the client did the acceptance test and confirmed the release,

1) QA Manager goes to ZenTao->QA->Version, set the version that has been tested as "Done".

2) Technical Manager packages the code that need to be updated in this release and SQL scripts.

3) Project Manager exports/copies stories related to this release from ZenTao->Project->Stories as Excel file which is the changelog for the client.

4) Project Manager sends changelog to the client and the client signs the release confirmation.

5) Technical Manager releases files to production servers.

6) Project Manager set the release in Product->Release the same as in Project->Version, mark release time and content, and link version and release correspondingly.

7) The day after the release, Technical Manager exports a Tag from the Branch on SVN and names it in the format of V2.2.0_Release.


10. Version Maintenance

Generally speaking, there are bugs that were not found and needs to be fixed after the release. Therefore, the current version has to be maintained before the next release.

1) Technical Manager branches from the Tag in the Release, for example V2.2.0_Fixbug.

2) QA Manager reports bugs in ZenTao according to the feedback from the client. Its severity is 1 and the version number is V2.2.0.

3) Technical Manager sends programmers to fix bugs in V2.2.0_Fixbug. It is the best scenario that the Technical Manager can fix the bugs. Or certain programmer has to be sent as a special person who only takes care of bugs in the release. Also SVN privileges have to be paid attention to. Read/Write privilege in this Fixbug will be assigned to that certain programmer only.

4) QA Manager schedule regression tests.

5) Repeat Step 2, 3, 4 until it is ready for releasing. Confirm the version number, for example V2.2.1, and exports a Tag from V2.2.0_Fixbug as V2.2.1_Release which will be synchronized to production servers by Technical Manager. The bug list should be exported for the client to confirm as well. Repeat it till it stops to maintain the version.


11. Stop maintaining this version.

It stops to maintain this version five days before the new version is released.

1) Technical Manager will inform the programmer to switch the local directory to Trunk, and close the read/write privileges of the older version branch on SVN.

2) Project Manager close the release of the older version in ZenTao->Product->Release, and set the release of this version as "Stop Maintenance". Do NOT forget this, or this release will be be displayed when choosing related version for bugs.


Note: You do NOT wait till one release is no more maintained to start another release. Project Manager usually starts to communicate with the client on the stories for the next release right after the Step 2 of this release. Then the Technical Manger assign tasks by story and start the new release. This is the spiral and iterative Agile development.



Write a Comment
Comment will be posted after it is reviewed.