网站项目管理:是围绕着网站项目运用知识、技术、技能、工具和方法进行组织管理。其共同特征是:
● 管理由人实现,而非机器;
● 项目具有时间周期,包括启动时间和结束时间;
● 项目受资源限制,包括人员、资金、场地、设备等;
● 需要计划、实施和控制。
以下是网站项目管理的几个重要概念:
(1)角色:是指项目人员在管理过程中,在特定环境下参与设计的行为代表。 对于网站项目管理,最关键的角色是:项目经理,业务流程分析师,用户界面工程师,系统分析员,编码人员(程序员),质量控制工程师。根据项目的规模和开发的深度,由项目经理进行角色划分。
(2) 流程:在项目过程中执行的工作序列。 每个角色在流程中获得和输出相应的工作结果。例如在需求分析流程中,需要有客户代表、业务员、业务流程分析师、用户界面工程师等角色参与,业务员从客户代表那里获得需求,并形成需求报告;业务流程分析员从业务员那里获得需求报告,分析生成项目模型报告;界面工程师得到项目模型后设计制作相应的模板和用户界面原型,最终由客户代表确认。
(3)业务主角:指与系统交互的各种不同角色。不管面对多么复杂的网站项目,当我们开始接手时,都可以按照一定的规范和流程进行展开。
网站项目涉及的领域很多,狭义地讲包括了网页制作、美工设计、程序编码、系统及网络管理等专业技术,广义上又包含了企业管理、市场营销、心理学、广告学等更多领域的知识,在项目进行过程中还涉及到项目管理工具、文档和设计开发管理规范、开发及测试环境部署等特殊领域的问题,这对一个项目经理和小组来说是个严峻的考验。
网站项目管理分成以下六个阶段进行: 在每个阶段,都必须建立“里程碑”,代表当前工作的阶段性成果,并以此作为进入下一阶段的标准,实现对项目质量的控制和管理。
第一阶段:需求分析及变更管理
项目本来是为满足客户需求目标而进行的,然而结果往往并非如此,因为:“客户也不知道自己的需求是什么!”在所有不成功的案例中,这句话也许是我们听的最多的。做好需求分析并建立变更管理机制是保证项目顺利完成的原始基础。
● 重要角色:项目经理,业务员,客户代表。
● 获取文档:通过与客户的讨论等各种渠道获得需求。
● 里 程 碑:《需求分析报告》
● 注意事项:
☆ 技术是为客户服务的,采用对用户最有效和经济的设计方法才是最好的,而非采用了最好的技术和配置就能设计出最好的方案。所谓最好的技术附带的潜台词往往就是高昂的成本、漫长的开发周期和潜在的不稳定,切忌将客户当作技术的试验田。
☆ 记住“需求是一定会变的”,同时不要害怕客户提需求。如果因为害怕看见大象的全貌而只摸摸大象的腿,怎么也不可能设计出客户所需要的系统。
☆ 锁定需求,学会放弃。对超出计划和目标的需求可以通过制定升级计划或二期工程,从当前的项目中转移出去,否则系统可能永远都在设计开发中,不断修改和增加,则始终没有可以发布的版本。
☆ 《需求分析报告》应得到客户和全体项目小组的共同认同,切忌公说公的理,婆说婆的理,只有所有成员都对目标有清晰一致的认知后,才能最大地提高工作效率。
● 技巧和方法:
☆ 仔细聆听,罗列客户的所有要求;
☆ 将需求进行分析,确认可操作的系统模型;
☆ 利用最自然的语言对系统进行描述,使每个开发人员不会产生歧义;
☆ 迅速确定系统的业务主角;
☆ 分析确定每个角色的权限及可操作的功能;
☆ 制作流程图和示意图将需求表现出来;
☆ 让客户参与到示意图的设计中,及时正确地反应出需求变更;
☆ 制作需求变更日志,保留升级版本,通过版本控制进行需求管理;
☆ 通过《需求分析报告》使每个参与人员看到共同的努力目标。
在这个阶段,我们通过需求分析对项目得到一个初步的认识,并通过编写《需求分析报告》得到一份客观的可参照的重要文档,这是个很好的起点。
第二阶段:项目模型及业务流程分析
我们需要业务流程分析人员将客户需求分解和优化,网络技术的应用所产生的电子流程工作方式既不能彻底更改传统的工作流程,也不是对传统工作流程的简单复制,而是需要对传统的工作流程进行合理的优化、改进和重组。
业务流程分析员重点需要协助客户将需求进行归纳分析,查找出所有的业务主角,确定业务主角后,将每个主角的相关活动及流程清晰地制定出来,最终设计出业务逻辑图。
为了使用户更好地理解系统设计方案,在时间条件许可的情况下,为系统制作用户界面原型图是非常有效的办法。在尚未进行开发之前,客户就能对今后要完成的系统能够直观地看到效果,并能根据需要进行调整,将大大提高项目成功的可能性,同时可减设计过程中的更改工作量。
● 重要角色:业务流程分析师,用户界面工程师,系统分析师。
● 获取文档:《需求分析报告》。
● 里 程 碑:《项目模型报告》、《用户界面原型》、《设计开发计划书》。
● 注意事项:
☆ 业务流程应符合客户偏好和习惯,以客户的环境和技能水平设计系统,切忌以项目小组的喜好随意设计; ☆ 请客户和用户模拟操作,找出盲点和分歧点,问题越早发现越容易处理,损失越小;
☆ 制定性能和功能指标,作为下一阶段测试工程师的工作依据。客户对功能的需求相对来说比较敏感和直观,但是对性能的需求很难提出具体的要求,这就需要系统分析师在这个阶段进行明确,并作为系统设计的依据之一。
● 技巧方法:
☆ 真正以用户为中心的设计,到客户的实际工作环境中观察和记录;
☆ 仔细查找各种业务主角,并描述不同主角的各种操作流程与步骤;
☆ 简化需求,将客户的需求归纳整理,抓住核心问题;
☆ 细化需求,针对核心问题,模拟用户角色,进一步确认流程和规范;
☆ 认真制定设计计划书,为下阶段的工作打好基础。
在这个阶段,我们将客户的需求转换成一个切实可行的设计方案,并为客户重新进行业务优化和组合,定出项目目标。
第三阶段:系统分析及软件建模
系统分析和建模是项目开发的核心工作,对于一个有经验的开发人员来说,客户的需求有很多方式可以实现,但是不同的构架对系统今后的维护、升级和扩展具有天差地别的影响,一个不合理的结构用不了多久就得完全抛弃,重新开发。系统分析决定系统开发的成败,软件建模使系统开发走向成熟。 客户的需求一定会变,服务器和客户端环境也不断在变,考虑到不同的操作平台、不同的应用服务器、不同的数据库、不同的编程语言、不同的传输介质等等所带来的影响,系统分析员面临着艰难的选择,任何人都不可能掌握甚至说精通全部的技术,孰优孰劣,何去何从?
“采用面向对象的开发模式并使用UML(统一建模语言)对系统建模!”网站即软件,软件开发方法同样适用于网站项目开发,这给系统分析员指出了方向。
建模并不等同于程序编码,利用同样的UML模型可以生成不同语言的框架代码,而且可以通过反向生成,在编写代码过程中及时更新UML模型,这对系统分析员和项目管理人员来说是梦寐以求的。只要能够仔细地把握客户的需求,不断改进软件模型,那么采用什么样的语言开发已经成了次要,大量的需求积累和分析工作能在客户需求变化时得到高度的复用,即使系统采用新的语言重新开发,需要的也仅仅是编码部分的工作。
● 重要角色:系统分析师,构架设计师,数据库工程师,业务流程分析师。
● 获取文档:《需求分析报告》、《项目模型报告》、《用户界面原型》、《设计开发计划书》。
● 里 程 碑:《系统分析报告》、《设计及编码规范》、《系统模型工件》。
● 注意事项:
☆ 客户比较关注的是功能实现,但是不意味着客户不在乎系统的性能,成功的项目开发不会仅仅为表面上达到客户的需求而忽视系统的缺陷和瑕疵,网站项目同样需要有”精品”意识,树立一个品牌将为自己赢得更多的机会和更丰厚的回报。
☆ 客户的初期需求或许很简单,但开发人员不能不为客户潜在的巨大需求打下坚实的基础。
☆ 也许是因为项目周期过短、开发人员技能达不到等因素,在小型项目开发中难以采用进行规范的系统分析设计和建模,此时,应尽可能采用模块化设计、争取代码最大限度的复用。
● 技巧方法:
☆ 补充完善上一阶段可能欠缺的系统性能需求;
☆ 系统分析员需要站在全局出发,设计合理可行的系统方案;
☆ 在需求不明的情况下设计多种解决方案,供客户选择;
☆ 使用UML建模方式,将客户变化的需求映射到模型中,大大提高系统的扩展性和开发效率。
第四阶段:界面设计、交互设计及程序开发
在网站项目开发过程中,这个阶段也叫做构建阶段,是工作量最大、最艰苦、最难以控制的阶段。
● 美工设计师在根据用户界面原型进行美工设计,准确地将系统的形象进行定位;
● 交互设计师将美工的作品根据业务流程进行网页的编辑,为用户体贴地设计着交互程序;
● 程序员根据系统分析员分配的模块编写代码,一行行代码将系统浇注起来,一个个模块开始活起来;
● 测试工程师不断地检验着每个人的工作,单元测试、集成测试、负荷测试;
● 文档工程师开始收集、管理各种开发文档,每天检查更新记录和随时保证重要文档处于最新版本;
● 系统管理员为每个开发人员部署开发环境,并保证着最佳的工作状态。
系统构建阶段,控制开发质量,保证进度是项目经理最关注的焦点,通过合理地分配资源和任务、建立小组成员间的有效沟通和采用相关管理软件控制能够有效地提高开发质量和进度。
● 重要角色:美工分析师、交互设计师、程序员、测试工程师、文档工程师。
● 获取文档:《需求分析报告》、《项目模型报告》、《用户界面原型》、《设计开发计划书》、《系统分析报告》、《设计及编码规范》、《系统模型工件》。
● 里 程 碑:《程序模块》、《开发文档》、《按客户需求开发完成的系统》。
● 注意事项:
☆项目管理人员要保障小组成员之间有效地沟通和协作。
☆ 测试是保证质量最直接最有效的方式,只有不断地测试、测试、再测试,才能使系统达到满意的质量。把BUG消除在萌芽状态是最理想的,系统构建进度最快的时候通常就是BUG产生最多的时候,只有进行反复交叉的测试才能确保质量。
☆ 交互设计师是系统和用户之间的桥梁,真正从用户的方便和习惯上下功夫,无论是一个弹出窗口还是站点的导航设计,甚至意外出错的提示等等,都需要精心设计,反复雕琢。交互设计如果能解除新用户对系统的恐惧,将会赢得意想不到的奇效。
☆ 程序员在编码过程中需要和系统分析员保持密切的协作和沟通,在规范的系统开发过程中,随意的个性化 ● 技巧方法:
☆ 利用项目管理工具对项目进行管理,无论是Project还是Starteam,或是其他工具都行;
☆ 建立文档管理规范,采用相应的文档管理工具对版本进行控制,PVCS或VSS都是可选择的工具;
☆ 创建团队的沟通环境和渠道,利用邮件或者论坛,开会或者递纸条,一切有利于交流的方式都可以,以保证协作成员之间迅速绕过障碍,奔向目标,人力资源经理的忠告是:沟通是提高团队凝聚力最有效的办法; ☆ 建立BUG汇报及处理系统。只要是软件,就一定有BUG,虽然这是个灰色笑话,但捕捉和消灭BUG是开发人员的天生义务,建立BUG管理系统可以争取使同样的错误不再犯第二次,当系统日渐完善的时候,那长长的BUG消灭清单就像工程师们的累累战果。
系统的全貌终于露了出来,客户的心这时候总算踏实了些。不过这时候可不是结束的时候,在软件开发过程中,剩下的10%工作量都可能会拖延占用项目的90%时间。
第五阶段:系统测试、部署和文档编写
● 测试工程师根据《系统分析报告》和《项目模型报告》模拟测试环境,按照测试指标对系统的功能和性能进行全面的测试,编写测试报告,并通知项目成员进行修正。
● 部署工程师会同客户代表进行安排配置和调试,直至正式发布启用。
● 文档工程师撰写各种文档,包括系统白皮书,用户使用手册,管理员手册,客户培训文档,用户帮助等等,并总结设计和开发文档,进行项目总结。 项目小组协助客户快速部署并提供相应文档,不但能为售后服务节省大量精力和成本,同时能够大幅度提高客户满意度。
● 重要角色:测试工程师、文档工程师、部署工程师、客户代表。
● 获取文档:《需求分析报告》、《项目模型报告》、《用户界面原型》、《设计开发计划书》、《系统分析报告》。
● 里 程 碑:《测试报告》、《技术白皮书》、《用户使用手册》、《客户培训文档》、《用户帮助》。
● 注意事项:
☆ 测试不单包括功能测试,特别需要注意到性能测试和兼容性测试,应尽可能创建不同的模拟环境,取得完整的测试数据,针对测试结果对系统进行改进。
☆ 开发环境和部署环境不同造成实施过程出现“意外”一点也不意外,只有到客户能够良好地驾驭系统才算达成目标。
☆ 对照前两个阶段所做的《需求分析报告》和《项目模型报告》,检查目标是否都已经实现了?
● 技巧方法:
☆ 根据系统的特性,采用专用测试软件或编写测试工具,有助于提高测试的效率、准确性和完整性。
☆ 选择对系统完全陌生的典型用户模拟操作,能够发现大量系统缺陷。
☆ 无论是网页模板还是程序模块,养成在源代码中写注释的良好习惯,对开发过程中任务交接、纠错或今后二次开发都非常重要。
☆ 交给客户的文档越规范详尽,后期的成本越节省。
第六阶段:客户培训、技术支持和售后服务
开发一个老客户的成本远远低于拓展一个新客户,网站项目作为一个特殊产品,对客户的培训及技术支持尤其重要,而对于客户来说,一旦失去了技术保障,系统出现问题或需要扩展和升级的时候,将面临着怎样的困境?! 因此,为客户建立售后支持快速反应体系,不但可能会赢得更多的业务,也能消除客户的后顾之忧虑。至于客服支持的费用,总能找到双方可接受的条件。
● 重要角色:培训工程师、客户支持工程师、业务员。
● 获取文档:《需求分析报告》、《测试报告》、《技术白皮书》、《用户使用手册》、《客户培训文档》、《用户帮助》。
● 里 程 碑:《培训手册》、《客户服务记录》。
● 注意事项:
☆ 客户培训不仅仅是本期项目的一个终点,同时也是开启新项目的最好契机,认真做好培训文档,把接力棒顺利交接过去,今后会受益无穷。
☆ 技术支持和服务是网站项目非常重要的环节,它保持双方的联系和业务往来,合理控制服务成本,可以增加客户的忠诚度。
● 技巧方法:
☆ 电话、邮件、网站都是建立客户支持的良好手段,将相应文档发布在网站上对客户来说有时更加方便。
☆ 可按照客户情况的紧急度确定客户支持的反应时间和方式,使客户支持工作更有效率。
☆ 建立客户服务纪录,跟踪客户运行状况和变更记录,为下次的合作建立密切的联系。
对网站项目来说,存在着各种各样的问题,我们可以将网站项目分阶段、分角色进行有效地组织和管理,从而完成网站项目的要求。