导语
华南零售行业全渠道联盟,简称“南零商盟”,华南时尚行业CIO联盟和广州鞋服行业信息化联盟、华南CIO联盟、华南智慧商品联盟唯一联合指导交流社群,汇聚服饰、时尚行业新零售全渠道搭建双方的精英联盟;
| 专心 | 专业 | 专研|
时尚行业信息化第一微信公号
第90期“南零商盟”微谈会于2019年4月18日晚上8点正式开播,本次分享嘉宾是来自迅羽科技CEO董洪洲总为大家分享“软件项目管理过程总结”。
嘉宾介绍
大家好,我是来自迅羽科技总经理董洪洲,非常感谢黄总,再次与大家一起分享。也感谢各位新老朋友的支持。
我先简单介绍下公司,我们公司创办于2014年,至今恰好5年,我们公司是在江南水乡无锡,那这个时候也正是这里景色比较美的时节,也欢迎各位朋友有机会来无锡。我们公司主要做电子商务相关系统的实施,公司产品有B2C、B2B2C商城、OMS、微商城小程序、移动协同办公软件、商品图片数据云平台,一直也在华南地区为歌莉娅、都市丽人等客户做项目实施服务。
群里之前大佬们从服装整体行业、形势、新零售等很多方面分享了专业的见解,话题都比较高大上,我今天分享的话题比较简单,“软件项目管理总结”。我本人从毕业至今也是一直是乙方角色,参与过大大小小一些项目开发及管理,今天我从项目管理角度来和大家一起探讨下项目管理的一些关键因素。
软件项目管理有四个阶段:项目启动、项目规划、项目跟踪执行控制、项目结束。
1、项目启动
项目启动这个阶段是一个项目的开始,可以分为:确定项目范围、制定项目章程、任命项目经理与确定约束条件和假设条件。
2、项目计划
项目计划阶段是为所有项目干系人提供项目的全景图,能够正确指导大家开展工作。这其中包括:项目的明确范围、任务分解(WBS)和资源分析。
3、项目执行监控
任务执行阶段就是需要项目人员按照所分配导的任务来按时高效执行。项目经理需要做好前期工作、范围变更、记录项目信息、激励组员和强调项目范围及目标。
项目的监控可使用专业的项目管理软件来实施。项目监控通常与执行结合起来,项目经理需要做到能够及时变更范围、评估质量标准、状态报告和风险应对。
4、项目收尾
当项目开展结束后,就需要及时关闭。项目经理对结果进行评估检验,还需要督促财务部门回收项目剩余账款。并组织项目干系人一起开会,盘点整个项目过程中的收获与感悟。
每个阶又有各自的过程,项目管理贯穿着整个项目启动到结尾,包含7个关键因素:
1、风险评估
2、成本预算
3、沟通过程
4、需求分析
5、编码过程
6、开发管理
7、交付验收
这7个因素里有些因素各位都比较专业,我就挑一些和大家一起分享一下:
一、风险评估
软件项目风险是指在项目周期过程中遇到的成本预算、开发进度、技术难度、经济可行性、安全管理等等方面的问题以及这些问题对项目的影响。软件项目风险会影响项目计划的实现,如果项目风险变成现实,就有可能影响项目的进度,增加项目的成本,甚至使软件项目不能实现。对项目进行风险管理,可以最大限度的减少风险的发生。
项目风险管理是指为了最好的达到项目的目标,识别、分配、应对项目生命周期内风险的管理过程。风险管理涉及的主要过程包括:风险识别,风险量化,风险应对计划制定和风险监控,风险识别在项目的开始时就要进行,并在项目执行中不断进行。就是说,在项目的整个生命周期内,风险识别是一个连续的过程。
风险识别:确认哪些风险有可能会影响项目进展,并记录每个风险所具有的特点。
风险量化:评估风险和风险之间的相互作用,以便评定项目可能的产出结果的范围。
风险应对计划制定:确定对机会进行选择的步骤及对危险作出应对的步骤。
风险监控:涉及整个项目管理过程中的风险进行应对。该过程的输出包括应对风险的纠正措施以及风险管理计划的更新。
很多问题在其他人眼中也许算不上风险,有一部分问题甚至超出了项目管理的外延,但对于部分IT企业或者大中型项目管理,或许会起到一些参考和借鉴作用。
1企业内部管理的风险
比如:公司领导对IT管理的熟悉程度,以及支持程度,很多高层领导都是非IT出生。
2企业项目管理的成熟度
如: IT部门组织架构是否完善,公司的软件能力成熟度情况。公司技术总监的能力。公司历史项目规模等等。
3.甲方项目经理的职责风险及能力
甲方项目经理的管理包括:工作范围的圈定、时间管理、沟通管理、质量管理、成本控制管理、风险管理、人力资源管理、采购管理、整合管理。
4.人员的技能问题
项目开发团队人员配备是否齐全,一个理想的团队包括项目经理、系统架构师、系统管理员、DBA、开发工程师、测试人员若干、美工等全角色。
5.系统集成能力和外包
个人认为系统集成程度是大中型项目与小型项目的一个明显区别。
系统集成能力主要表现在是否可以集成系统硬件、操作系统、数据库、不同接口开发、系统架构等,这方面知识的积累并非一朝一夕所能造就,它取决于公司的日常积累。
此外,当公司资源无法满足项目要求的时候,需要适当地引入外包资源。外包团队的风险管理。
二、成本预算
预算的颗粒度比较细,包括软硬件成本、物料成本 ,软件成本 、外包成本 、人力资源成本 、维修保养成本等等 ,这里我就不展开了。
三、客户沟通的过程
客户沟通伴随着项目启动到结束,全程都离不开沟通,从客户沟通的方向出发来看,可分为:需求识别、方案定制、项目实施、项目结束等4个不同的阶段,各个阶段都具有不同的沟通重点。
需求识别阶段
(1)沟通获取需求:通过面谈、会议等形势最大程度获取需求。
(2)业务逻辑沟通:沟通过程中以草图或者其他可视化形式,确认需求可行性。
(3)需求变更的规范化管理:需求变更的提出应该是定期而不是随时的,但是现在往往甲方在需求这块变化很频繁,开发方应该做好详细的文本记录,让客户了解需求变更的实际情况以及开发方为之所付出的成本代价。
方案定制阶段
该阶段项目的主要任务是与客户共同制定一个以前期明确的需求、双方的资源、项目开始的阶段、实施的时间约定、项目费用限制等为基础的具有可操作性的项目计划,从本阶段开始争取客户全面参与项目的管理,并以双方的共同利益考虑项目实施的具体计划与风险规避。
项目实施阶段
软件项目团队应该与客户共同领导项目的实施。同时,项目团队应实时评估客户满意度,并通过持续改进的方式提高客户满意度,还应要求客户参加必要的培训,以及在必要时检查项目产品。在出现客户的需求变更前,应主动与客户沟通交流,使客户充分了解项目的每个环节,以及变更带来的影响,减少需求变更。如果出现客户需求变更,应与客户一起共同解决由变更引起的成本、进度、质量变化。
结束阶段
项目成果的移交,把系统交付给甲方,并对使用人员进行知识转移,帮助客户实现商务目标,结清各种款项,以及质保期内的技术支持等。
四、需求分析
需求分析过程
为了开发者真正满足用户需要的软件产品,明确了解用户需求是关键,可行性分析是要决定“做还是不做”,需求分析就是要回答“系统必须做什么”这个问题。
需求来源大致有以下几个:
(1)甲方提出的:对于初级产品经理/助理大部分需求来自领导,一般他会要求某个功能模块,简单的描述下这个功能。
(2)竞品分析:一些需求是来自于竞品,我们的竞争对手上了某个新功能,这个功能和我们的目标用户、业务发展很吻合。
(3)数据分析、用户反馈:用户反馈前面的文章已经详细的描述过了,通过数据分析也会得出许多需求。
(4)用户调研:通过用户访谈,调研会获取需求。
当我们拿到一个需求的时候我们要从四点着手如下
(1)用户:谁会用这个功能?
(2)场景:用户在什么情况下会用?
(3)问题:用户在上述场景下,碰到什么问题?
(4)方案:用户现在的解决方案是什么?
需求开发阶段的重点
(1) 业务对象 :业务对象是指系统使用的真实对象,谁来用系统,系统里的各种角色;
(2) 业务流程 :系统的业务流程有哪些,各个模块的功能,工作流程;
(3) 性能需求 :软件的性能指标;
(4) 环境需求:硬件环境、外部接口、操作系统、数据库等;
(5) 可靠性需求:系统运行的可靠性、故障率;
(6) 安全保密要求 :系统设计中,哪些数据需要保密或加密等;
(7) 用户界面需求:UI设计的要求;
(8) 资源使用需求 :系统实施过程中各种资源
(9) 软件成本与开发进度需求:费用、进度
(10) 开发目标需求 :系统上线目标;
五、编码过程
这里就不阐述了。
六、开发管理
项目管理大致有项目计划和开发团队管理两方面。
建立项目计划
(1)设计总体架构
针对项目的实施需要,采取适合项目且相对成熟的框架结构。时代在发展,新技术不断出现,对开发者来说也是不断学习的过程,Web的发展,从web1.0到web3.0 ,对应着技术框架也在不停的发展和完善,软件系统随着业务的发展,变得越来越复杂,不同领域的业务所涉及到的知识、内容、问题非常非常多。一个成熟的快速开发框架,它是模板化的代码,它会帮我们实现很多基础性的功能,我们只需要专心的实现所需要的业务逻辑就可以了。而很多底层功能操作,就可以完完全全不用做太多的考虑,提高整个团队的开发效率。另外对于团队成员的变动,也不用太过担心,快速开发框架的代码规范让我们能轻松的看懂其他开发人员所写的代码。
(2)控制可扩展度
扩展度过大,将提高系统的复杂程度,延长开发时间;扩展度过低,会直接影响系统的二次开发与维护。控制系统的可扩展性,能提高开发效率,降低系统维护的难度。
(3)基础设施的建立
合理分配软、硬件等基础设施的部署所需要的时间与成本。
(4)划分开发任务
对可交付结果进行分类与划分。每个项目划分为多个不同阶段,每个阶段又可以分为多个工作包,最后从工作包中分解出多个开发任务列表,分配给各个开发人员。
(5)部署开发进度
从需求调研、进行概要设计、进行详细设计、执行开发任务、测试、联合调试、测试环境部署、生产环境部署都常常延误,项目经理必须有谈判能力、预判风险能力、控制能力。项目经理就是在满足各方项目干系人的利益的情况下,推动项目向前发展,最后达到项目验收。
(6)测试项目成果
每个工作包都应该同步部署测试工作,提高项目的质量。对出错BUG的工作包应该由测试人员以文本方式记录,向开发人员展示错误所在,让开发人员及时进行修改。
管理开发团队
(1)组建团队
按照工作任务与项目时间的前提条件建立团队,按团队职责分配人员,并在不同阶段提前准备好团队角色。
(2)分配开发任务
在每个迭代周期内(一般是15~30个工作日),应该把每个工作包进一步细分为多个开发任务,开发任务的开发时间应该控制在15个工作小时以内,如果开发任务的开发时间超出15个工作小时,应该考虑把任务再度细化。而开发任务应该以自由选择的方式分配给每个组员。
(3)跟进开发进度
在迭代的前期举行一次会议,让组员了解开发的进展及流程,并以自主选择的方式分配开发任务。用工具记录开发流程的进展,在每个工作包完成开发后应该进行性能功能的测试,并以文本方式记录测试结果。
每天举行一次站立会议,组员汇报昨天已完成的开发任务,当天将要做的任务,以及开发过程中所遇到的问题。
并在每周举行一次项目例行会议,甲方项目经理参与,汇报整体工作进度。
(4)系统测试
对每个已完成的工作包进行适时的测试,保证系统质量与性能。
测试人员应该以文本方式记录bug,并与开发人员共同工作的,把突出的缺陷演示给开发人员,以提高修改的效率。
(5)解决开发中的问题
对开发人员进行按工作能力分配任务,项目经理指导组员的开发。当遇到问题时应该在当天的站立会议时即时提出,避免影响开发进度。
七、交付验收
项目的后期审核
在项目开发最终完成后,对开发人员来说可算是放下工作的重担,但对项目经理来说这往往是项目的关键时刻。前期的风险评估、成本预算、需求分析、软件设计都是为了引导项目走向这一时刻,此时所有的目光都将投向项目管理人员。你可能发现大量而琐碎的工作将要在几个小时内完成,此刻项目经理更需要保持清醒与镇定,把最后的工作视为微型项目来对待。细致地对项目进行后期的审核,分析项目成果、项目团队的效率、可交付产品的价值,以此审核结果可作为项目管理经验总结的一部分。
项目的最终交付
正常情况下在项目的前期就会订立项目交付的协议,项目交付方式分为非正式验收与正式验收两种。一般在项目完成后都会先进行非正式验收,让客户体会项目的质量并提出反馈意见,最后在客户肯定产品质量后再以书面协议的形式进行正式的产品验收。
项目的最终报告
在项目的最后,应该制定项目的最终报告,此报告可以视为是对该项目一个记录,但报告不必包含项目的所有方面。一般最终报告应该包含以下方面:
(1) 最初引进项目时的初期项目视图
(2) 对该项目的价值评估及支持性信息
(3) 项目的范围
(4) 项目的开发流程及WBS
(5) 项目的会议记录
(6) 项目变更的报告及变更的理由
(7) 与项目相关的沟通过程文件
(8) 项目的审核报告与客户验收报告
(9) 项目成员的表现报告
(10) 项目的最终成果
以上也是我在实施项目中的一些经验,也借鉴了其他一些好的方法,在项目实施过程中,确实会遇到大大小小的问题,前期范围不够明确、项目实施过程中需求变化、实施中的技术难度,成本控制、团队不稳定,沟通不力等等,这些都是避免不了会出现的问题,如果规避、解决问题,也正是项目管理中的挑战。
我们和歌莉娅合作也有三年了,期间实施了大大小小的项目有一二十个,这期间甲方对我们的实施能力,交付产品反响还是满意的,也期待有机会和大家一起合作讨论,谢谢。
注:以上内容摘选自南零商盟分享会,转载仅限学习分享;
如产生版权问题,请联系我们处理;
文章不代表”华南时尚行业CIO联盟“立场!
本篇文章来源于微信公众号: 时尚行业CIO