- 浏览: 3502895 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
中小 IT 企业项目团队组建和实施流程探索
方 杰
由于中小IT企业主要从事应用软件开发和一些特殊行业IT项目的实施,其需求相对复杂,而且经常变化,其开发和实施过程中的可变因素也比较多,因此,如何组织项目团队,既要保证质量、又要提高效率,是项目管理者需要考虑的最重要的问题。。
作为一个软件开发企业,人力资源是一个公司最重要的资源之一,我们需要将技术人员进行分类、尽量作到分工明确;由于公司同时进行的项目很多,应该保 证各个项目能共享公司为数不多的“专家”级资源;在设计和开发过程中,尽量保证各个项目的技术、风格、质量基本一致,并且要将项目的质量提升到公司级别, 而不仅仅是反映项目组的水平。
以下是本人在项目的实践过程中的一些经验和总结,并根据中小IT企业的实际情况对项目团队组建以及项目实施流程的探索,愿它能给中小IT企业的管理层和项目领导者提供一些参考。
一、橄榄法橄榄法则是本人在项目实践中总结出的一套人力资源分配方法,也是一套比较实用的项目实施过程方法,它主要是为了解决项目质量控制,项目组间资源共享等问题。其基本思路是:
1、 项目的入口同一起点,即:所有项目售前、需求分析阶段由“专家”团队承担。
2、 系统的设计保证质量,即:系统的设计要汇聚公司的优秀资源,既要考虑系统的需求,又要考虑开发成本,还要结合公司现有的开发技术能力和已有的技术资源。
3、 系统的开发并行实施,即:系统的开发和编码阶段,由开发部门进行全盘考虑和统一安排,根据项目的进度要求灵活组建开发团队。
传统方法是以项目组为单位,项目组人员基本上从开始到最后基本上是固定的,橄榄法是以项目的不同阶段来组织不同的团队,其人员的数量和成员本身随着项目的进程不停的调整。
二、项目角色:有效的项目团队由担当各种角色的人员所组成。每位成员扮演一个或多个角色,常见的一些项目角色包括:
角色 |
描述 |
来源 |
项目经理 |
项目管理人员,要求具有良好的沟通能力和管理能力 |
开发部或专家库 |
客户经理 |
市场人员 |
市场部 |
技术经理 |
开发过程中负责技术管理的人员 |
开发部或专家库 |
售前工程师 |
知识全面、表达能力优秀 |
专家库 |
需求分析师 |
业务专家 |
专家库 |
系统构架师 |
技术能力突出,有丰富的项目经验 |
专家库 |
界面设计师 |
具有一定的业务知识,能快速设计用户界面 |
专家库 |
系统设计师 |
设计人员 |
专家库 |
数据库设计师 |
数据库设计人员 |
专家库 |
数据库管理员 |
DBA |
开发部 |
技术支持工程师 |
硬件、网络支撑 |
系统集成部 |
程序员 |
包括:界面开发工程师、业务逻辑开发工程师、数据库开发工程师等 |
开发部 |
质量保证工程师 |
质量管理和质量控制人员 |
质量管理部 |
测试人员 |
对业务非常熟悉,能从功能和性能方面测试系统 |
质量管理部 |
产品包装师 |
包装产品,包括各种交付的文档 |
产品部 |
以上每个角色都应该有清晰的工作定位。并要求具有相应的技能,能在项目的各个阶段出色完成任务,这些称为人力资源,是保证项目成功的最基本的条件。
三、项目前期的组织:项目前期主要指的是项目业务需求调研、包括配合用户制定项目建设方案、技术规范书、配合市场人员进行售前技术交流等环节,此阶段应该组织由售前工程 师、需求分析师(业务专家)以及系统构架师等组成一个临时小组,负责跟踪项目。这个小组根据项目的大小和客户的要求确定小组成员,一般由3—5名成员组 成。根据客户的要求,既可以是全职的,也可以是兼职的。
项目前期小组的工作是项目的开始,这个小组工作成绩的优劣、工作质量的高低,将直接影响项目的成败。因此,从管理层的角度,一定要重视这个环节。
项目前期小组需要完成的工作包括以下方面:
1、 客户的各种项目前期要求,如:方案介绍、业务需求编写等
2、 提交项目可行性分析报告,包括成本/效益分析
3、 提交项目建议方案
4、 提交业务需求说明书或需求分析说明书
四、系统设计阶段系统设计是决定项目或软件系统“怎样做”的过程,这个过程回答了系统应该如何实现的问题。从软件工程的角度,设计阶段大约是整个项目开发成本的25%,所以,设计团队以及该团队的工作成绩对于整个系统来说至关重要。
设计团队一般由3—8名设计人员组成,从这个阶段起,项目需要一名项目经理,行使项目组的各种管理职能。设计团队的成员具体包括:
l 1名项目经理
l 包括1—2名项目前期成员
l 1名系统构架师
l 2—4名设计人员
l 1名数据库设计人员
l 1名用户界面设计人员组成
设计团队需要完成的工作包括:
1、 项目开发计划
2、 确定系统软硬件配置最佳方案
3、 确定系统开发平台以及开发工具
4、 确定系统软件结构
5、 确定系统功能模块以及各个模块之间的关系
6、 确定系统测试方案
7、 提交系统数据库设计方案
8、 提交系统概要设计文档
由于应用软件需求经常变化,因此设计需要考虑系统可扩展性,并需要在设计过程中对于重要的环节和用户进行及时沟通。
五、编码和系统实现阶段将用户的需求变成真正可用的软件系统,是通过编码和系统实现阶段来完成的。虽然软件的质量主要取决于系统设计的质量,但是编码的途径和实现的具体方法对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。
这个阶段要根据用户对项目进度的要求灵活组织开发团队,一般5—15左右。为了工作的连贯性,同时也为了解决在开发过程中用户需求有可能变化的因素,开发团队因该保留1—3名设计团队的成员。
开发过程中,项目经理的角色非常重要,项目经理负责项目组开发人员的日常管理,控制项目的进度,负责和设计部门、市场部门以及客户之间进行必要的沟 通。这个阶段通常是多个部门的人员共同组成一个项目组,因此,项目管理的一定要保证统一管理,理想状态是项目经理全权负责项目组人员的人员工作安排、业绩 考核、工资奖金等,因为项目经理最了解项目组成员的工作态度和工作业绩。
一般在大型项目开发团队中,应该设立专门的技术经理岗位,负责对项目组的技术方案进行管控,技术经理最好是由设计团队中抽调出来。技术经理在项目开发过程中需要注意程序风格、编码规范等问题,并必须进行有效的代码管理(版本管理)。
开发过程还应该进行系统的单元测试工作,确保各个独立模块功能的正确性和性能满足需求说明书的要求。
开发团队应该完成的工作包括:
1、 系统的实现代码编写
2、 单元测试
3、 提交源代码清单
4、 提交单元测试报告
六、系统测试、软件打包阶段系统测试阶段在整个软件生存周期中是占据总工作量最大的一个环节,统计资料表明在40%左右,有的时候还可能是其他过程的几倍,因此,必须高度重视软件的测试工作。
软件的测试本身是发现软件中的错误,但是发现错误是为了使开发的系统完全满足用户的需求,因此测试工作还伴随着诊断、改正错误、调试等复杂过程,测试也是软件开发最困难的工作。
测试这个环节,参与人员除了测试人员以外,还应该包括几乎所有的开发人员,同时我们经常可以把这个环节看作是编码工作的延续,直到完成集成测试、通过测试验收,形成最后的发布版本。
经过测试、稳定的软件版本包括相关的文档可以进行打包,作为软件开发的出口。
这个阶段,必须严格把关,确保各个开发组完成的软件都是高质量的、同一个水平层次的软件系统。
这个阶段完成的工作包括:
1、 更改情况说明
2、 集成测试报告
3、 软件发布版本
4、 系统使用说明书
5、 系统安装配置说明书
七、工程施工及软件安装阶段由于从事的应用软件的开发,因此,在开发完成之后经常会有系统集成、软件的安装等工作。这个阶段还经常伴随着新的业务需求和本地化需求的产生,因此将会有一部分的开发工作需要在这个阶段完成。
工程实施阶段需要的人员包括:
l 1名项目经理
l 多名技术支持工程师(硬件、网络支撑)
l 2—4名软件开发人员
八、技术部门组织建议过去项目团队组织模式通常是按照项目组为单位,由项目组从头到尾负责整个项目的需求、设计、开发、实施过程。根据以上讨论,由于应用软件开发的特 点,这样的组织模式已经不能满足高效率、高质量的要求。但是如果完全实行设计和开发完全分开,又几乎不可能达到设计出完美的设计文档、开发只埋头写代码的 理想状态。
根据实际情况,一般公司的技术人员主要集中在系统分析部、软件开发部、系统集成部、测试部。系统分析部应该主抓项目前期、系统设计两个环节。开发部应该主抓系统实现和编码、工程实施等环节。
在开发阶段,系统分析部以设计人员派出方式参与具体开发过程,同时,在开发过程中,系统分析部应该设立对一个非常设技术机构(包括开发部的项目经理),负责对项目的关键开发过程进行评审、并对项目的开发过程进行技术把关。
发表评论
-
maven常见问题问答
2012-05-05 11:34 89411.前言 Maven,发音是[`meivin ... -
SWOT分析模型
2011-10-20 08:50 2323SWOT分析模型(SWOT Analysis) SWO ... -
时间盒策略--让你必胜的15种秘诀
2011-04-26 23:34 2330简单地说,时间盒是我 ... -
猎人和猎狗的故事
2011-03-07 09:28 2370有一天,猎人带着一 ... -
项目进度计划管理中五种时间
2011-03-03 00:15 2378在大多数复杂的建设项目进度计划管理中,一般都记录五种时间 ... -
PSP个人软件过程
2011-02-05 00:57 4291个人软件过程(Personal Software ... -
eclipse和UML工具EA的连接方法
2010-06-24 19:15 7429选择了好久UML工具,在rose、eclipseUML、EA等 ... -
领导者需要警惕的六大日常决策陷阱
2010-06-09 14:39 2099决策是每个经理人最重 ... -
净室软件工程及发展
2010-05-16 22:23 1757净室软件工程及发展 本文转载自软件工程专 ... -
用“看板图”实现敏捷项目的可视化
2009-10-03 23:10 2636社区 Agile 主题 协 ... -
Mylyn 2.0,集成任务和自动上下文管理
2009-09-26 18:51 3177虽然软件系统、框架和工具可以无限制地发展,但开发人员实际处 ... -
如何组织一个高效的开发团队?
2009-09-26 18:28 1777引言 俗语云:“ ... -
采用 XP 方法使软件项目获得更大成功
2009-09-26 18:08 1621使用面向对象编程变得 ... -
User Story 概览—承上启下的重要一环
2009-09-26 18:06 2683软件开发是一个从捕获客户需求到编码实现的过程。在我们传统的印象 ... -
顿悟测试驱动开发
2009-09-26 15:18 1620很早就听闻过测试驱动 ... -
User Story 在敏捷开发过程中的应用
2009-09-26 15:11 30891 ... -
用JIRA、CVS、XPlanner、WIKI来进行项目管理
2009-09-26 04:35 2193从版本管理的角度来 ... -
项目管理软件与IT项目经理人
2009-09-26 04:33 1965本文综合介绍了项目管理软件的特征,CA-SuperProjec ... -
信息系统建设项目风险评估方法
2009-02-22 20:52 2005评估这个词并不陌 ... -
svn备份策略
2009-01-12 13:56 9405(本文例子基于 ...
相关推荐
传统的IT项目建设过程中,业务人员主要负责提出需求,技术团队则根据这些需求进行设计和开发。而在SOA中,业务人员需要深度参与到服务的设计和规划中,确保服务的功能和性能满足实际业务需求。此外,SOA还特别强调...
此阶段主要是组建重组团队,制定实施计划和预算,并明确客户需求。关键活动包括: - S2A1:通知股东,确保所有利益相关者都了解改革计划。 - S2A2:成立重组小组,挑选具备不同专业技能的成员。 - S2A3:制定项目...
7. **培训计划制定**:针对项目团队成员和相关业务人员,制定培训计划,提高其对主数据管理的认知和技能水平。 #### 四、业务架构梳理与优化 业务架构梳理与优化是数字化转型的重要组成部分,旨在通过优化企业业务...
- **组建项目指导小组**:成立专门的团队来指导项目的实施。 - **设立项目远景目标**:明确项目的目标和愿景。 - **宣传和推广项目远景目标**:通过各种渠道向全体员工传达项目的重要性。 - **授权采取行动**:...
- **专业团队组建**:设立专门的IT管理部门,负责信息化战略规划、实施与运维等工作,确保项目顺利进行。 **2.2 岗位职责划分与协作机制建立** - **职责明确**:明确各岗位的职责与权限,确保信息化工作的有序开展...
- 探索适合集团企业的数字化组织形态,例如设立数字化中心或组建数字化创新团队。 - 分享数字化组织形态构建的成功案例和实践经验,为集团企业提供借鉴和参考。 #### 五、风险评估与应对措施制定 - **风险识别**...
1. 项目前期准备:包括项目启动会议、确认项目范围和目标、制定实施计划、组建项目团队、明确成员职责、设定工作目标、规划教育训练和服务流程。 2. 业务探索:识别关键用户和数据源,通过用户需求调研来了解业务...
1. **项目组建**:根据项目需求,挑选具备相应技能和经验的团队成员,明确角色和职责。 2. **项目计划制定**:设定项目目标,规划项目进度,分配资源,确定里程碑。 3. **项目计划控制**:监控项目进度,确保按计划...
项目管理在IT行业中扮演着至关重要的角色,尤其对于研发项目而言,高效、有序的管理能够确保产品的质量和按时交付。本报告详细介绍了项目管理的关键方面,包括项目概念、管理流程、挑战以及影响项目成功和失败的因素...
团队组建时,采取创新和协作的方式,选择有潜力的成员,如项目经理(由专业教师担任)、经理助理和普通员工(通常是计算机或电子信息专业的本科生)。团队成员需通过笔试和面试的选拔流程,经过4周的实习期和后续的...
- **自主探索**:项目经理公布开发流程后,学员需根据流程指引独立完成任务,项目经理仅在必要时给予指导。 - **综合能力培养**:通过参与项目,全面提升学员的分析能力、思维能力、沟通能力、组织能力等多个方面的...
这部分内容结合作者个人经验,分享了在企业级项目中如何有效实施微服务中台的见解和建议。这些建议对于希望利用微服务架构进行改造升级的企业来说十分有价值。 #### 企业数据中台的构建 数据作为新时代最重要的...
统计工具与技术在IT行业中扮演着至关重要的角色,它们帮助企业分析数据、识别问题、制定解决方案。以下是几种常用统计工具和技术的详细说明: ...理解和熟练运用这些工具,可以提升IT项目管理的效率和质量。
- **项目团队**:组建跨部门项目组负责实施。 - **第二期:建立基础服务架构,逐步建立应用系统** - **建立基础服务架构**:搭建统一的服务平台,为后续应用提供支持。 - 内容包括:数据中心建设、云计算平台...
7. **商务服务**:包括秘书、翻译、EMS(快递服务)和办公用品采购,为企业和个人提供专业支持。 8. **联名卡合作**:与银行、保险公司、航空公司等合作发行联名卡,为持卡人提供专享优惠和便利。 9. **MANGO旅行...
2. **团队组建**:组建跨学科团队,确保技术和商业能力的平衡。 3. **技术研发**:结合团队优势,选择适合的技术路线进行研发。 4. **商业模式设计**:构建可行的盈利模式,确保项目的可持续发展。 5. **项目展示**...
- **项目组织和管理团队**:描述项目团队的组成及其职责分配。 - **市场趋势和营销策略**:分析当前市场趋势,并提出相应的营销策略。 - **投资与财务**:明确投资需求及资金来源。 - **风险规避**:识别潜在风险并...
- **协作流程**:建立了完善的项目管理和协作流程,提高了团队的工作效率。 - **技术支持**:提供全面的技术支持服务,解决了大量实际操作中的技术难题。 - **知识库建设**:构建了一个包含文档和代码的知识库,方便...