1. 根据需求,将项目尽可能拆分
可能出现的情况是:将一个项目进行拆分,分成2到3个子项目进行单独开发。当前设想的主要可能性:主项目、统计和调度项目、核心框架项目等。
核心框架项目成熟后可以以Jar包方式发布。该项目主要包含对传统框架的一些封装和扩展。
统计和调度项目主要为主项目提供统计支持和后台调度运行支持,独立运行在一台机器上。理想的状况:将整个调度运行在一个大的Framework中,这个Framework能够查看系统的统计、调度的日志;同时可以对其中的统计模块、调度模块的进行状态进行监控;也可以以系统的方式暂定或者重启某个统计模块或者调度模块。针对具体项目的主要工作,是在这个Framework中,进行具体业务逻辑的编写。对于统计,可以指定统计的接口、统计的实施时间和内容等等。对于调度,可以指定调度的接口以及调度时间和频度。
主项目承担主要业务逻辑,可能根据项目规模的不同需要支持集群。主项目需要依赖于其他项目而存在。也有可能需要根据实际情况,对主项目进行进一步的拆分。
2. 人员管理
项目人员主要包含3部分:核心人员、外包人员和实习生。
核心人员主要承担项目需求转化为技术内容的工作。这些工作主要包含项目需求获取、项目设计、项目核心代码编写、项目代码Review和项目代码Merge的工作。
外包人员主要根据被分配的模块不同,进行代码的编写工作。在他们编写代码时,需要严格按照核心Framework的规定进行编码。涉及到复杂业务逻辑的地方,应配合核心人员对业务逻辑接口和业务逻辑流程进行代码化整理。外包人员的组成将主要是具有若干年工作经验的民工,以模块的工作量进行结算。
实习生的主要工作是编写简单代码、一切辅助工作和测试。他们需要承担简单的代码编写工作以及测试工作。同时,项目中的数据准备、文件管理、数据库管理等杂乱工作,也需要由实习生完成。实习生的结算方式为月结。
3. 角色分配
根据项目人员的组成结构和项目需要,可以划分以下系统角色:
1) BA
目前情况下,BA应该就是整个项目的PM,需要完成所有的商务上的所有事项,同时需要进行需求整理,项目的总体管理等。BA需要与Architect和Assist共同工作,从而完成工作任务划分和任务分配以及在需求基础上的Prototype的搭建工作。
2) Architect
这个角色主要在技术上保证项目的顺利进行,其职责将包括与BA一起进行项目设计、项目范围界定、项目模块和任务的划分、核心代码的编写等。Architect的另外一个重要的工作是把握整个项目的进程和代码管理,包括Code Review,Code Merge等工作。此外,Architect需要负责项目的开发环境、测试环境、文档环境搭建等。
3) Developer
这个角色可能主要由外包人员和实习生构成,是所有角色中的核心力量。Developer的重要原则是在既定的Framework下,高质量的完成Coding任务。
4) SA
SA这个角色不一定在所有的项目中都包含。其主要职责是在操作系统、系统构架、数据库等底层层面提供优化策略和技术支持。这部分工作,当前情况下,如果需要,可以进行外包。
5) Assist
Assist角色主要由实习生完成,这个角色可以承包项目中所有的杂务,同时也需要完成Coding任务。
4. 项目管理工具
项目管理的工具很多,可以选择一个功能相对较全,而且相对比较集中的工具:http://www.redmine.org/projects/show/redmine
上述工具可以管理的内容包含:项目新闻(进度)发布、Bug Tracking、文档管理、Wiki和论坛等。我们在项目中所涉及到的一些功能可能只需要其中的进度发布、Bug Tracking、文档管理等。
项目中的版本管理工具可以使用SVN。
5. 版本管理方法
由于当前项目的状况比较特殊,项目的版本管理变得比较重要。在吸取了一些典型的外包项目管理的经验之后,我们可以使用分Project、分Branch的方式对项目进行版本管理。
分项目是指,项目拆分后,不同的项目将使用不同的Reposity。
分Branch是指,针对某个项目,对每个Developer小组,创建多个Branch进行独立开发,频繁Merge的方式进行管理。基本原则:在Trunk上创建一个主Branch,由Architect负责Trunk和这个主Branch进行管理,包括代码的Merge和Merge前的Code Review等。然后以Developer小组为单位,创建基于模块的Branch,所有的Developer,在各自的Branch上进行开发。每个基于模块的Branch,以3天为单位,由Architect负责将代码Merge到主Branch上,同时做Code Review。在Trunk上,以周为单位,保持可运行版本。
分享到:
相关推荐
同时,RPM还能帮助领导层将初步的想法转化为可度量的项目,以便于进一步的决策和支持。 - **项目群经理**:负责协调不同项目之间的关系,通过RPM可以更好地管理资源分配、风险控制以及项目的进度跟踪。 - **项目经理...
- **提交项目建议书**:这是项目启动的第一步,目的是提出一个新项目的初步想法。 - **项目可行性研究**:分为四个阶段: - **机会研究**:对市场机会进行初步分析。 - **初步可行性研究**:更深入地评估项目的...
项目建议书是项目管理中的重要文档,它是启动项目前向决策者或利益相关者提出初步想法和计划的正式文件。这份文档通常包含了项目的背景、目标、预期成果、实施策略、预算和时间表等关键信息,旨在说服读者投资或支持...
**立项申请**:提交项目初步想法。 2. **可行性研究**:包括初步可行性研究和详细可行性研究。 3. **项目评估**:评估项目的可行性和效益。 4. **项目招标**:选择合适的供应商或承包商。 - **项目的生命周期**...
定义阶段则需要详细规划,包括问题定义、初步的软件项目管理计划(SPMP)、软件体系结构等。开始阶段,项目经理建立项目基础设施,组建团队,并分配工作。稳定状态阶段,团队领导监控项目进展,进行风险管理。最后,...
项目管理是组织、规划、执行和控制任何有明确目标的临时性工作的过程,它涉及到从项目的启动到收尾的所有阶段。这份"项目管理-(全套)模板word版.docx"文档提供了一套全面的工具和步骤,以帮助项目经理有效地进行...
1. **构想**:项目的初步想法和概念形成阶段,确定项目目标和预期结果。 2. **推演**:规划和准备阶段,制定初步的敏捷计划,设定迭代周期。 3. **探索**:执行阶段,通过迭代和增量的方式开发产品,同时持续收集...
- **概念阶段**:在这个阶段,项目的想法被提出,进行初步的机会研究,以确定项目的可行性和必要性。 - **规划阶段**:确定项目目标,详细规划项目范围,制定项目计划,包括进度、成本、质量等。 - **实施阶段**...
- **项目构思**:确定项目的初步想法,如项目的性质、规模等。 - **目标设计**:根据项目构思制定具体的项目目标,包括时间、成本、质量等指标。 - **项目定义**:进一步细化项目内容,明确项目的边界条件。 - *...
《IT高级项目管理师案例分析大全》是一份深入探讨IT项目管理实践的文档,主要针对在信息技术领域中担任高级项目管理角色的专业人士。文档通过一系列的实际案例,详细解析了项目管理过程中的关键环节,旨在提升读者对...
项目建议书阐述项目的初步想法和预期收益;商业论证则评估项目的经济效益,确保项目的可行性;项目章程正式确立项目,定义项目目标、范围、利益相关者和项目经理的职责。 2. **项目规划**:项目规划阶段涉及工作...
1. **构想**:在这个阶段,项目的目标和初步想法被提出,团队与利益相关者共同确定项目的愿景和目标。 2. **推演**:在这个阶段,项目计划开始形成,包括迭代计划、需求识别和优先级排序。 3. **探索**:进入实际...
2. **头脑风暴法**:在确定项目目标和相关事件时,头脑风暴是一种有效的工具,可以鼓励团队成员提出各种想法,无需顾虑初步的逻辑结构,旨在收集尽可能多的项目干系条目。 3. **工作分解结构(WBS)**:WBS是一种将...
1. **项目生命周期**:项目生命周期是指从项目启动到项目结束的整个过程,通常包括概念阶段(初步想法和需求分析)、规划阶段(制定详细计划)、实施阶段(执行计划并监控进度)和项目收尾阶段(总结经验,交付成果...
- 机会研究:探索项目概念的初步想法。 - 初步可行性研究:评估项目的大致框架。 - 详细可行性研究:深入分析项目的各个方面。 以上内容构成了信息系统项目管理师在项目可行性研究与评估过程中的核心知识体系,对于...
一文读懂IPD流程(集成项目管理流程) IPD(Integrated Product Development,集成产品开发)流程是一套先进的、成熟的研发管理思想、模式和方法。它旨在帮助企业更好地进行产品开发,提高产品开发的效率和质量。...
变更控制流程是项目管理中的一个重要环节,旨在确保项目变更得到恰当的处理,减少变更对项目目标的不利影响。以下是对给定文件中提到的变更控制流程的详细解析: 1. 干系人提出变更请求 变更控制流程的起点是干系人...
在项目管理中,项目启动是一个至关重要的环节,它是整个项目生命周期的起点,涉及到项目的需求分析、构思、以及可行性研究等多个关键步骤。项目管理师在这个阶段需要具备一系列专业技能,包括识别需求、问题发现、...