老蔡
说:
1、背景
2、存在问题
3、制度与监控
4、QA审计方法与组织级技术管理的介入点
我们业务软件分公司,有200+人员,下设业务拓展部(市场),5个产品线(开发为主)、集成、支撑等各部门
此外,还有一个项目推进部(PMO)
产品线下设各项目组。需要注意的是,由于产品线由经营指标导向,而项目组是产品线下属机构,所以,PMO实际上只是一个弱PMO。
这种组织结构形成有历史原因。即使从现状看,也不可能做成强PMO,因为毕竟各产品线的业务各异,与客户、各干系人的接口不可能通过PMO进行。
实际上,有一定矩阵式的特点。
产品线经理的考核,主要是经营指标导向的,虽然也有一些其他指标,但明显弱多了。
因此,产品线经理非常注意经营指标,而忽视其他一些关键指标,甚至出现一些短期行为,这都是可以理解的。具体的说,主要有以下问题:
1、项目管理
的随意性。名义上,产品线下属的单位是3-5个项目组,项目组的负责人叫项目经理。实际上,这些项目经理即便上了PMP课,在实际工作中,仍是非常随意的作坊式工作。而产品线经理不会对这些进行辅导,只关注客户的实时要求、经营指标等。
2、对质量的极度忽视。在CMMI的观点中,把质量提高到前所未有的高度。在我们的实践则相反,只要用户无投诉,基本上不会当成项目经理什么大的过失,软件做的好坏完全以客户评价定。
3、由于无质量要求,那么系统设计、技术架构、新技术引入也都谈不上,开发工作在低水平上重复,代码复制率很高,复用率很低。这样,开发人员就缺乏一种技术成长的感觉,也会缺乏团队归属感。
Kerry说:
产品经理的确只对产品的特性负责,项目经理对项目进度、风险、成本等进行管理
老蔡
说:
4、由于管理的随意性,人为偏好,技术成长困难等因素,导致员工的受挫感的传播,团队难以形成好的氛围。
Kerry的问题我先解释下。我们的
“
产品线经理
”
是项目经理的直接领导,PMO不是项目经理的领导。所以,他们负责的面向是完全一致的。其他问题等最后一起聊吧。
5、各类管理信息无法到达分公司管理层,导致分公司工作被动,有时是客户投诉到总公司时,分公司领导才得知此事的情况。至于组织层面的整体技术管理,根本不可行,如同昨天说到的知识
管理案例也是这么回事。
根据以前管理产品线的经验,针对这些问题,我的考虑是(1)通过《项目流程》的制度,把职责、流程、流程中各角色职责、基本行为规范、基本软件过程定下来。
(2)通过组织级QA审计,检查各项目的流程执行情况,同时取得一手信息,避免信息被项目经理、产品线经理两个管理层面屏蔽。
(3)在信息通道打开之后,技术管理等其他管理手段逐步介入。
现在就着上传的4个文档
给大家说明一下我们的工作方法
Richard李明-项目主管-北京说:
嗯有流程,信息流动好像不是很好
老蔡
说:
李明的问题,正是我要说的。
Richard李明-项目主管-北京说:
请继续哈
老蔡
说:
首先,流程执行的第一个要求是客观,实际怎么执行,怎么表达。
我们是行业应用软件,一是软件开发流程,这是一个时间段。在这个时间段中,可能会出很多很多版本,一般1周至1个月出一个版本。
出版本后,要升级到现有系统去,那么就需要制作升级包,升级手册、数据库脚本什么的。升级操作是一个
“
点
”
而不是一个时间段,但由于它非常重要,所以我们也要记录和审计。
打开《版本开发流程单》,这份文档,就是要求每个迭代版本开发时填写。
评审等过程,简化为签字,而不像CMMI要求的那样出评审报告。
对于大的版本,比如1个月出一次的,一般来说,会有与用户的原始交流,即用户提出原始需求
。
然后需求人员进行分析,出需求规格文档。
再和开发人员、项目经理开会,确认做哪些,哪些跟客户解释不做或以后做。这个会议,不要求出评审报告和会议纪要,只要相关开发人员签字认可。
接下来项目经理根据大家评审的结果,进行规划版本;后是测试
。
最后项目经理审核整个版本包,产品线经理复核。
如果是一个紧急补丁,很多过程可以简化。
这样,实际上用于
“
流程
”
的时间,也非常少。
等到版本或补丁制作完,开始准备上线时,需要进行现网操作审核
这个细节就比较多,因为维护支撑部其实没有参与前期的开发,那么他们就会对项目组期待很大,而自己不去关心版本的内容。另一面,项目经理也会有同样的期待,这里就有一个漏洞了。
QA审计要关注到这个升级操作是否明晰,是否可执行,是否可回退等。
甚至,如果现场实施人员,同时也是次日保障人员,是否可能?对于一个简单的补丁一般没有问题,但如果大版本肯定不行。
这样,理论上,项目成员只用了签字、填表的时间成本,就把关键的项目信息都透明出来了。
补充上,刚才漏了。在CMMI中,提倡对每个项目的软件过程进行定制。
在实践中,我认为基本不可能。
所以我的做法是,根据项目的重要程度,新系统开发还是迭代式,分别管理。具体见《项目检查点》上的说明。
这样,PMO维护一份项目清单,同步给各产品线,大家按照项目检查点上的要求,结合整体的项目流程,这样实际上就等同于,定义了5-6种标准过程,选择使用(PMO与产品线事前沟通选择)
最后说下执行的情况。
在最初,我摸索这个方法的时候,尽管要求项目成员填写的信息不多,但通过有限的信息,以及相关的工作产品文档,可以发现一些疑点或不清晰的地方,然后找相关人员访谈确认(这个访谈也跟CMMI不同,重实质不重形式上的覆盖率)。
这样,发现了很多并不是一般意义上的流程执行问题。
例如,可以发现补丁包制作错误,发回项目组重做后,才同意上线。
(严格的说,是否同意上线不是QA的权力,QA审计是事后的审核点。因我是分公司管理层,才可以这么做)
当我把这个方法移交给QA时,发现执行情况不理想。受CMMI熏陶过多,每个流程单十几分钟就审核完了,要么就是完全违反流程,要么就是没有任何问题。
为此,我重新考虑了我自己的审核的方法,设计了《QA审计报告》文档。本来我认为QA审计应该不受限于审计报告,而以主观经验带入为好,但这样导致我对QA无法监督,而QA发现问题越少也无所谓。现在不得以加入文档化的审计报告
这样,一方面,审计报告中体现出QA对项目原始数据的搜集。这些搜集主要不是通过询问项目人员,而是访问SVN、Jira等
通过原始数据的搜集后,对于软件过程审计,应当能分析出一些有意义的结果。
什么是有意义的结果呢?例如,一个大版本,开发人员200的,有测试报告,但Jira上却没有BUG记录?或者只有少量的小BUG,这肯定不对。
“
软件产品质量审计
”
这个小节,侧重关注产品定义是否清晰,实际上与配置管理关系很大。很多项目组的配置管理非常混乱。
部署包和升级步骤,基本上就是组织级技术管理的主要介入点之一(新系统开发的评审也是重要的介入点)。
在这个点上加强控制,可以提高升级的成功率,减少回退和次日的问题数量、紧急补丁数量。
这个部分,也是要求QA做独立意见的。
徐文锦-ITConsultant-singapore说:
问一下你们有几个环境除了dev和production
老蔡
说:
当我看到审计报告时,如果对QA意见明显不认可,可以找QA谈,顺便指导QA的工作。
最后,版本上线情况跟踪分析,实际上形成了一个闭环。
可以关注到,项目经理、产品线经理是否有进行后续跟踪(很多产品线经理根本不管)。
然后与其他版本建立相关性,可以分析是否存在屡次升级失败,是什么原因等。
通过这个审计报告模板,基本上QA的工作可以保证达到一定的细腻度。对于分公司层面进行上线最后的确认也不会太盲目。
主要内容就这些了。麻烦徐文锦再表述一下问题?
徐文锦-ITConsultant-singapore说:
我说的是,从开发环境到生产环境中间还有几个环境几个步骤
老蔡
说:
正常情况下,开发环境就是开发人员的工作电脑+数据库;测试环境在公司,也独立于开发环境。生产环境不在我们公司。
独立的测试环境,和正确的版本制作方法,理论上可以保证版本升级的正确性。
不过,在实践中,项目组混同开发与测试环境的事情也不少见
各位,还有问题吗?
徐文锦-ITConsultant-singapore说:
个人感觉不让开发人员接触测试环境即QAT可以较大的提高软件质量.
老蔡
说:
是的,我们是这个要求。但是,从分公司管理层面,到开发人员有管理层级的差距。如果去问项目经理,很可能还告诉你他们分的很清楚,只有在工作实践中的QA数据才能发现问题。
吴柯-管理-北京说:
你们是为自己的母公司开发软件吗?
老蔡
说:
不是,为电信行业客户开发。
吴柯-管理-北京说:
哦,一个大软件公司,业务软件分公司是一个大产品线
老蔡
说:
不是。我们的分公司,你可以理解成一个独立公司,除了财务不在我们,其他职能多少有一些。
吴柯-管理-北京说:
哦
产品版本和项目版本怎么同步?
lastwinner-pm-bj说:
跟上进度了,老蔡今天讲的这个层次相对较高了
我想问一下,这样做,对QA的技术素质貌似要求很高呀?
老蔡
说:
无所谓产品版本和项目版本,在配置管理混乱的情况下,只能根据各个项目的实际控制来说。实际上,基本是一个地点的一个项目一个版本。产品,只是概念上的,用于包装给客户的。
徐文锦-ITConsultant-singapore说:
QA
其实是软件开发中非常重要的一个环节
吴柯-管理-北京说:
这样啊
徐文锦-ITConsultant-singapore说:
microsoft
的officeteamdev和qa的比例达到1:10
老蔡
说:
lastwinner,由于历史原因,我这边的QA薪酬相当不低。
徐文锦-ITConsultant-singapore说:
而且严格的项目一般是要求qa或者专门的deploymentteam出包和部署
吴柯-管理-北京说:
哪质量难以得到保障,产品发展代价反而更大
lastwinner-pm-bj说:
怪不得分配的任务要求这么高
徐同学说的微软的情况,国内很多公司够不适用的,连用友这样的公司都做不到
徐文锦-ITConsultant-singapore说:
我觉得国内公司特别是小公司对于qa的要求太低很难保证产品质量
吴柯-管理-北京说:
比如一个项目里发现的BUG,修改后其他项目未必用得上
lastwinner-pm-bj说:
国内很多公司都不适用的(刚把都打成够了)
老蔡
说:
我们是要求测试人员出包。即开发人员宣称代码已经好了,然后测试人员打上版本标签,从SVN库中取文件,用事先提供后的脚本构造编译出包。实际上,个别项目组做的到,大部分做不到。
吴柯-管理-北京说:
这个是对的
徐文锦-ITConsultant-singapore说:
一般这个过程可以采用自动集成/编译/部署,不过一般需要专门的部署团队
吴柯-管理-北京说:
版本一定要专人
老蔡
说:
我的方法是,开发人员可以帮助测试人员写脚本。但提交测试和部署的版本包,一般是在开发人员无法接触的情况下生成的。
吴柯-管理-北京说:
除了SVN以外,还用到什么辅助开发管理的工具吗?
lastwinner-pm-bj说:
老蔡你说的"做不到",指的是代码的版本管理做不到还是说实际上他们宣称的代码已做好是不符合实际的?
老蔡
说:
这样,只要测试通过的包,拿去升级一定没有问题。
lastwinner-pm-bj说:
老蔡-技术总监-福州says(13:24):
这样,只要测试通过的包,拿去升级一定没有问题。
这话太绝对了,不过这样做可以说99.9%的情况下都不会有问题
徐文锦-ITConsultant-singapore说:
如果你有兴趣可以研究一下TFS和微软一整套的软件开发流程
老蔡
说:
lastwinner,是项目经理的意识做不到。我现在的工作层次在组织级项目管理。
lastwinner,别这么认真啊,其实99%没问题就已经非常非常好了。我们目前升级的回退率大概5%,加上升级有问题的情况,应该快10%了。
徐文锦-ITConsultant-singapore说:
一般比较正交的测试把bug降低到1%问题还是不大的,如果有会写代码的qa那么还会再降低Bug率
lastwinner-pm-bj说:
如果是意识问题,那么通过你的方法灌输下去,多数项目经理就能具备这样的意识,对吧?
老蔡
说:
不只是灌输啊,要循序渐进,慢慢渗透进去。
项目经理真想做,一定能做到的。
吴柯-管理-北京说:
一个产品同时支持多个客户?
多少个?
老蔡
说:
大部分产品是1个。现在慢慢2-4个的,但实际上,那个产品也有很大变更。你理解成项目或许更好些。
徐文锦-ITConsultant-singapore说:
问一下,谁为版本回退/部署失败负责?
吴柯-管理-北京说:
以现场客户开发为主,还是在公司开发测试完后在现场只是部署?
老蔡
说:
项目经理
在公司开发为主。
吴柯-管理-北京说:
这个是电信的行业特点,还是你们公司的业务特点,我们公司做金融行业,大部分是现场开发?
老蔡
说:
电信行业,一般不会大部分现场开发。金融行业,听说大部分是现场开发。
吴柯-管理-北京说:
公司开发要求客户的需求质量比较高,变动也不能太多
你们这方面如何控制
徐文锦-ITConsultant-singapore说:
毕竟你们和钱打交道....软件质量会要求比较高
lastwinner-pm-bj说:
这种管理方式感觉能让PM较快的成长起来,而且能对自己的工作职责范畴有清晰的了解
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0吴柯-管理-北京说:
客户不参与最后的测试吗?
徐文锦-ITConsultant-singapore说:
应该是参与的吧
吴柯-管理-北京说:
你们测试完就直接上线?
蔡晓东说:
新系统开发,会参与,但参与度低
徐文锦-ITConsultant-singapore说:
不过国内的就不好说了....电信那些人--#
蔡晓东说:
迭代式,很多情况已经是在线系统了,客户要求我们1-2周上一次版本,他们没有精力陪我们测试。要测也是等上了再说。
差不多了吧,这次记录我自己发吧
吴柯-管理-北京说:
我们一般1-2个月一次,1-2周会不会有些短,从需求、涉及开发到测试?
徐文锦-ITConsultant-singapore说:
如果是迭代的话这个时间不算短,
瀑布就惨了
蔡晓东说:
行业不同。有时客户会要求2-3天来一次。
吴柯-管理-北京说:
哦
徐文锦-ITConsultant-singapore说:
你们是如何避免涟漪效应的,就是你改了一个地方其他其他也受影响
吴柯-管理-北京说:
差异还真大
蔡晓东说:
当然必须迭代。不过目前主流过程对迭代支持都不好。scrum可能会好,但是,scrum的客户参与等是不可用的,我们必须把客户做干系人管理,而不是类同团队成员。
老徐的问题,分两个层面:项目层面,看经验;组织层面,就只能在QA质量审计,QA或者分公司管理层发现疑问,追溯下去分析了。
吴柯-管理-北京 说:
用了scrum吗?
蔡晓东 说:
没有,我是在自己的方法论形成之后,才知道Scrum。感觉Scrum也是受应用场景限制的。
分享到:
相关推荐
【微信小程序项目实例——今日美食】是一个以移动开发技术为核心,专注于美食分享的应用。这个小程序旨在为用户带来丰富的美食制作教程,提供详细的食材配料和步骤指导,让用户在家中也能轻松制作出美味佳肴。 首先...
《项目管理者联盟——特刊》是一本集合了2009年前三个月关于项目管理实践与动态的专题出版物。这个特刊旨在分享项目管理领域的专业知识,为读者提供丰富的应用经验和最新的行业信息,以帮助他们提升在实际工作中的...
在这个"IT项目管理——project实用案例"中,我们将深入探讨如何利用Project进行实际操作,提升项目管理效率。 首先,我们要理解项目管理的基础概念。项目是指为了创造一个独特的产品或服务而进行的一次性努力。项目...
在这个“微信小程序项目实例——体质计算器”中,开发者构建了一个专注于健康领域的应用,帮助用户计算体质指数(BMI),评估其健康状况,并提供相关健康建议。 体质计算器的核心功能是根据用户的身高和体重计算BMI...
在当今商业环境中,项目管理已成为企业组织运作的核心组成部分。它贯穿于项目从构思到完成的每一个阶段,确保项目目标的顺利实现。为了协助企业和个人掌握项目管理的精髓,本文将深入介绍一份名为“项目管理培训全套...
【JSP 项目实例——客户管理系统(clientManager)】 在IT行业中,JSP(JavaServer Pages)是一种基于Java技术的服务器端脚本语言,用于创建动态网页应用。本项目实例——客户管理系统(clientManager),是一个典型的...
项目管理是企业管理中的一个重要组成部分,它涉及到从启动到结束对一系列独特且相互关联的任务进行规划、执行和控制,以达成特定目标。以下是对项目管理概念的详细解释: 1.1 项目特征 项目通常具有以下几个关键...
【标题】"jsp开发实例1——购物车"是一个适合初学者了解JSP技术以及实际应用在电子商务中的案例。在这个实例中,我们将深入学习如何利用JavaServer Pages(JSP)技术来构建一个基本的在线购物车系统。这个系统的核心...
"PHP项目管理实例源码"来源于《PHP项目管理全程实例》一书,它提供了一个实际的项目——99供求信息网的完整源代码,这对于学习和理解PHP在项目管理中的应用具有极大的价值。 1. **项目框架结构分析** 99供求信息网...
文档介绍部分,明确了报告的目的,旨在详细阐述宽带收费管理系统的数据库设计,以便于开发者、项目管理者和其他相关人员理解系统数据的组织结构和处理方式。文档范围涵盖了数据库环境、命名规则、逻辑设计和物理设计...
其次,“小程序实例开发——IT书单”这个项目,可能是一个用于展示和管理IT书籍信息的应用。在这个实例中,我们可能会看到如何使用小程序开发框架(如微信小程序、支付宝小程序等)来创建页面、定义组件、管理数据流...
接着,我们进入项目管理的核心——“项目管理与软件项目管理”。项目管理涉及计划、组织、领导和控制资源以实现项目目标,而软件项目管理在此基础上增加了对软件开发过程的管理,包括需求分析、设计、编码、测试和...
总的来说,【微信小程序项目实例——印记】涵盖了微信小程序开发的多个方面,包括UI设计、数据管理、用户交互、多媒体处理、网络通信以及性能优化等。对于学习和实践微信小程序开发的人员来说,这是一个很好的实战...
2. **未来IT规划**:讨论华为对于未来项目管理IT系统的规划,旨在提升项目管理的自动化和智能化水平。 在营销背景下,项目经理不仅需要掌握上述知识体系和工具,还需要对市场需求、竞争态势和客户期望有深刻理解,...
在信息系统项目管理中,风险管理是一项至关重要的任务,它涉及到项目的全过程,从项目启动到结束,对可能出现的风险进行识别、分析、应对和监控。这15篇来自希赛网和信管网的专业范文,提供了丰富的风险管理实践案例...
这个实例“实例018——计算某日为星期几”显然关注的是如何通过编程确定给定日期是星期几。这种功能在许多应用程序中都有用,例如日历应用、时间管理工具或者数据分析系统。下面将详细介绍实现这一功能的关键知识点...
【C#实例编程——简单的窗体VS2003】是一个关于C#编程语言实际应用的教程,特别针对初学者,旨在通过一个简单的Windows应用程序示例来解释如何在Visual Studio 2003环境中创建和操作窗体。在这个实例中,我们将深入...
“样板参照法”——项目管理团队建设的有效工具 173 IT应用的风险管理 176 风险项目投资选择与管理 180 工程项目管理中的风险分析与防范 181 项目风险管理 183 项目风险管理解决方案及应用 186 项目风险管理研究 189...
在这个“微信小程序项目实例——飞机大战”中,我们将探讨如何利用微信小程序框架开发一款类似于经典街机游戏“雷电”的飞行射击游戏。 首先,我们要了解微信小程序的基础架构。它基于JavaScript,使用WXML(WeChat...
#### 项目管理的重要性 - 项目进度管理是确保项目按时交付的关键因素。 - 项目管理涉及多个阶段,包括需求分析、系统设计、技术架构、项目实施和监控等。 - 项目经理在项目中扮演重要角色,需要负责制定计划并控制...