您的位置:首页 > 业界新闻

我第一家互联网公司产品开发周期

2014-10-26 22:31 519 查看
从开始上班到现在,也快满一年了,在这,就谈一下软件开发的几个阶段。各公司应该有不同的名称,但是开发流程较完整的公司应该是会有下面的几个阶段。下面是我对这几个产品周期阶段的理解还有心得,还请大家不吝指教~

需求评审

  在此阶段,产品经理(PM)会提出新的需求,比如说软件的一些新功能,并解说此需求的动机,完成产品需求文档(Project Requirement Document)後招开相关会议;研发人员(RD)则会在会议上评估此项新需求是否可实现、所需要的工作日、对产品稳定度的影响,是否在既有产品已有相关功能等等;测试人员(QA)则会提出一些测试上的疑问及意见,方便後期进行 Case 评审。这个阶段容易发生的问题,一般是产品经理和开发人员意见不一致,或者是二者有信任问题而导致的。曾经见过冲突案例是这样的:一位产品经理,因为在前一家的公司,有做过类似的产品,便认为此项设计容易实现,而他不知的是,每家公司的产品,其架构不见得类似,实现的困难度肯定是不大相同的,因此便开始质疑RD开发能力,还有是不是想要偷懒之类的情绪性发言,於是冲突便发生了。私以为这种情况其实是无解的,因为这和冲突双方的个人特质及个性是极度相关的,唯有尊重对方的工作及专业,并且注意自己的发言及语气,才是专业化的表现。

开发阶段

  在需求明确了以後,RD即开始进行开发工作,在 FC (Function Complete)期限之前将相关功能实现并且自测完毕。在开发时,除了要尽可能注意各种可能会发生的情况,并实现需求以外,更要以产品的稳定度为上,同时考虑这个需求如果需要花费大量的系统资源,这是否值得?在实现本次版本需求之余,也要考虑到对旧版本的兼容性,还有这种实现对未来的扩展性,能够在考量这些因子後完成相关工作,这是目前我要求自己的标准。最後,在开发完成後,需要预留时间自己为新功能自测。因为一个小功能,测试人员往往需要执行数个测数案例以确保其功能正常,研发人员在进行开发工作时,一定要给自己留至少一天的自测时间,确保在正常情况下的操作是没有问题的,这样不但减轻测试人员的工作量(当发现一个
bug 时,在开发人员解完 bug 後,测试人员是需要复验的),这样连带的也使自己的名声好听一些,如此,何乐而不为呢?

Show Case

  在基本功能开发完成了以後,便会邀请其它小组人员观看、评论新开发的功能,如果有必要的话,做小幅度的调整。

测试案例评审

  测试人员在完成自己编写的测试案例,会将召集产品经理, 研发人员,以确保相关案例(case)足以覆盖此项新功能,新功能能正常地发挥该有的效果。研发人员在开测试 case 评审时,应该想想自己的代码逻辑,在更动的代码部份,提出可能会遇到的情况,确保 test case 有完全覆盖到这些改动造成的影响。

测试阶段

  在测试人员测试过每一条 test case,且开发人员完成 bug 的修改了以後,便可以进入 RC (Release Complete)阶段。而我们一般说的 RC 时间,便指的是 RD 该把 bug 都修复的最後期限。在这边有一点需要注意的是,进入RC前的测试阶段,使用的测试环境是线下测试环境,而进入 RC後,便开始使用线上测试环境进行测试。在测试阶段,也是研发人员容易和测试人员冲突的时候,常发生的场景如下:

一、测试case 因某些 bug 而被 block 住,无法往下测,而再过多久便是期限了。遇到这种情况,必须尽快解决 bug,否则会影响新版本的发行,一方面,可能也得注意自己的语气,缓合任一方的情绪,因为多和几个人吵架,并不会让进度变得更顺利。

二、对bug的认知。某些情况下,是按照正常产品设计所产生的必然结果,而测试人员从用户的角度,自然便认为是个 bug,此时应和产品经理一起讨论解决问题。

三、开发未完成自测,导致在进入测试阶段後,立刻出现一堆 bug。

四、Bug修改导致其它地方出现问题。  

  其实,每个角色总是得以团队为重,产品为上,所以必须克制一下自己因忙碌而产生的负面情绪,不能因为这些负面情绪影响了工作的进行。但是如果遇到个别无法控制自己情绪或行为的人员,也应兼持自己的为人処事原则,该怎麽办就怎麽办,不能事事忍让对方,有时也必须「站出来为自己的原则吵上一架」不管是在谈话语气方面,或是公事的mail往来方面,都是一种処理方式。有时候恰恰是因为你对原则的坚持,反而会得到对方对你专业的尊重。

灰度

  在这个版本进入 RC 状态了以後,在线上环境测试没问题了以後,测试人员会发布 RC 报告,并进入灰度,灰度主要是先将新版本公开给一小部份的用户,因为平台及使用行为的差异,此时有可能会有一些产品的 crash 及用户回报的问题,而依问题的严重性,可能会有一次灰度,二次灰度等,然後便是全面发布,将产品公开给全部用户使用,此时全部的用户便会收到相关的升级讯息。灰度期间主要的问题,应该是反馈的 bug 一般比较不容易解决,不容易解决的原因主要是不容易复现,比如说没有用户所使用的平台,又比如说当时的操作环境可能是非常特别的等等各种不同的原因,这时我想就得靠经验解决了。

以上,就是我目前的心得~我并不是一开始就知道这些的优秀开发人员;相反的,我常常犯错,但是犯错之後,我时常反省,如何才能做的更好,也会去请教资深开发人员,如何才能变得更好更强大,始终没有放弃,现在有空之余,便整理相关心得和大家分享,并希望能得到大家的宝贵意见,以使自己能够有所长进,再次谢谢大家阅读~请多多指教~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐