ArticleDirectory
- Real version
- Future version
- Konwn issues version
Background
With the development of the itoday project and the expansion of personnel, a certain project management process is required to ensure that the project will not be aborted. A standardized open-source project, with individual passion and ability alone, has a very low chance of completing the project. Without the project management process, it will become difficult to carry out the project in the future, the continuity of the project is not guaranteed. Therefore, we need to find a way to implement effective project management.
Introduction
This article describes how to use codeplex to manage open-source projects.
Project management theory and personal understanding
Project Management in books defines nine key domains, including scope management, risk management, communication management, quality management, time management, cost management, human resources management, procurement management, and integrated management. All-embracing. However, everyone has their own understanding in the implementation process. My Understanding of project management is:Make effective use of limited resources and use certain control measures to achieve the intended goal.Since human resources and capital costs are always limited, especially for open-source projects, they are mainly involved by interested contributors and cannot be guaranteed by personnel. Therefore, it is important to make effective use of limited resources. With effective resources, we can ensure that limited resources can be fully utilized through planning, communication, and other means. For example, we can arrange contributors to the areas they are most interested in when doing open source, play its biggest role. These control measures include both risk control and quality control, and use version management tools to reduce risks to a certain extent. It is very important to fulfill the predefined goals. resources are limited and time is limited. It is very important to develop a foreseeable goal. I will use version management to specify the target. The following describes how to implement project management through codeplex to achieve the project management I understand.
Project management principles
My principle is:Minimize all stakeholder tasks and maximize project continuity.This is a game in itself. There is no silver bullet in the world, and it can only be balanced as much as possible. The stakeholder mentioned here includes developers, testers, Coordinator personnel and so on. Everyone contributes freely and there is no need to follow a perfect process, such as cmme to increase the workload of everyone, so I try my best to simplify the project process so that everyone can focus on what they like. Minimize project management efforts to ensure the continuity of the project.
Codeplex issue tracker
I use the issue tracker function of codeplex to manage projects. The address is itoday.codeplex.com/workitem/list.aspx. Because codeplex has this system, I don't need to find another project management system. Although this system is not perfect, we can still use it based on it.
Issue tracker is a problem tracking system, which is generally used for Bug handling. However, it can also use features such as requirement management, task allocation, and version control. The following describes the content contained in each issue.
Version
I think the version is the most critical information of issue, representing the purpose and goal. Any issue is targeted. Currently, I have divided the versions into three categories: real version, future version, and konwn issues version.
Real version
For example, V 1.0.0 and v2.0.0 are the versions to be released. In open-source software, they are provided for users to download.
The above are the functions to be completed for version 1.0.0. We associate the requirements with version 1.0.0 as issue. Once these requirements are met, version 1.0.0 can be released. Of course, if you find the bugs in the development process and these buckets are associated with version 1.0.0, you also need to modify these buckets before release. The release Mark is that all issues under this version are completed.
Future version
Due to the limited resources, it is impossible to complete all the requirements in a single version, so some requirements need to be put into the future version. These requirements may be implemented in future versions.
Konwn issues version
Some problems exist in the current version, but cannot be implemented in the current version due to certain objective conditions. It can be classified as known issues.
Status
Each issue has a status, including scheduled, active, and modified. when an issue is created, it is proposed. The assigned to person will start to process the issue and change it to active, if the issue is complete, change it to fixed. All issues should be fixed before the release. In my opinion, these statuses are not enough. They are too simple. At least won't fix, duplicate, and cannot reproduce are required. Some so-called bugs do not need to be fixed, some issue are repeated, and some bugs cannot be reproduced. So I said codeplex issue tracker is not fully functional.
Type
Type: feature, issue, and task. Feature is a function of the software and can be understood as a requirement. Issue is a bug. Task indicates tasks, including various tasks, such as sub-steps to implement requirements, writing documents, and some project management tasks.
For example:
We need to complete the weather panel function.
I created a new feature "add weather panel.
Link in http://itoday.codeplex.com/WorkItem/View.aspx? Workitemid = 5992
At the same time, to implement this feature, at least two subtasks (tasks) are required. There may be more tasks, but two are listed first.
Link in http://itoday.codeplex.com/WorkItem/View.aspx? Workitemid = 5993
Link in http://itoday.codeplex.com/WorkItem/View.aspx? Workitemid = 5994
As a type, I think only feature, issue and task are not enough. In another system we use, the types include the following:
But codeplex only provides so much. Let's use it first.
Priority
The priority is well understood, for example:
Components
Currently, there are two itoday components, one being panels, indicating applications, how to home, weather, and contact panel. Utilitylib indicates some non-UI Public Libraries. For example, WebService belongs to utilitylib.
How to Use codeplex issue tracker to manage projects
Collect requirements at the beginning of the project, and all requirements are recorded as feature.
Then define the version, for example, define version 1.0.0, bind the requirement to be implemented to version 1.0.0 as feature, and assign the task.
The developer who obtains the task can define the sub-task as needed, such as the WebService encapsulation in the preceding example.
Developers turn tasks into active tasks to develop their own tasks.
After the task is completed, the task is changed to fixed.
After all issues under version 1.0.0 become fixed, the Project Coordinator will release the same version.
Defines version 1.0.1 as a complete version of version 1.0.0.
The tester starts the test and uses issue tracker to submit the bug. The type is issue and is associated with version 1.0.1.
Modify all problems in version 1.0.1, fixed all issues, and release version 1.0.1.
Recurrence (version 1.0.1, version 1.0.2 ......), All feature versions under version 1.0.0 have been improved. Note that you do not need to add new features to version1.0.1. Otherwise, there will be more and more issue. The new requirements are version 2.0.0 or future version.
At the same time, you can define version 2.0.0, move some feature from the future version to version 2.0.0, and repeat the steps of version 1.0.0.
Version 2.0.0 and version 1.0.0 must be synchronized. This section describes how to use SVN and other details, but does not affect the project management process of codeplex issue tracker.
Contributor responsibility
The following describes how various contributors use codeplex issue tracker to complete project management:
Project Coordinator: Define the version of feature. Assign tasks (feature and task ). Release a version.
Developers: Define a subtask ). Development. Submit the version.
Tester: Submit the bug (issue ).
I think the process is simple. If it can be simplified, it can be simplified. This is a blueprint for improving the implementation process. Raise any questions and modify the process in a timely manner.
Also, SVN management is very important.
About the itoday Project
Refer
Open source (1)
Open-source things (2)-itoday open-source project plan
Open-source things (III)-overall itoday Design