需求分析心得——卖女孩的小火柴队

  需求分析是软件开发中的最重要一环,如果做不好,在后面的开发阶段将会经常性面临返工。经过需求分析阶段,我们小组的成员对需求分析都有了一定体会和感悟,以下是我们小组成员的心得体会:

小组成员——蒋佳(PM)

  在本次项目分析需求的过程中,我们小组经历了很多问题。这个项目我们算是第一期,所以没有之前学长学姐的资料可供参考。同时指导老师和课程组两边对我们的要求不统一,所以算是有两个甲方。手势识别项目的重点在算法方面,所以工作量不容易体现出来,为了满足两方的需求,我们小组讨论了很多次。并且最让人感到难受的是甲方的需求并不清晰,深刻感受到老师上课说的一句话“很多时候甲方不明确,你需要帮助他去确定,然后再去问他,这个怎么样可以吗?”

  作为PM在这段时间最深的感觉就是迷茫吧,因为也是第一次接触如何编写需求文档,作为PM也要承担很多责任。最初是与其他小组的成员进行交流,再然后就是组织小组成员进行讨论,大家一起想办法如何给我们的项目增加功能和特点。

  在做需求的时候一个很大的疑惑就是想要加进一个功能,但不知道是否能够实现。因为我们在技术方面现在来说还是菜鸟,了解不深,指导老师的要求也就是算法(笑哭)。在这方面小组成员之间也会出现不统一的意见。

  整个过程下来我的感觉就是做需求真的不容易啊,作为PM多和团队小组成员交流吧,同时要积极联系你的甲方探明需求(后面我就开始问课程组了),做PM不容易QAQ。需求是很重要的一环,我很希望能把它做好,这样后面开发会减少很多返工和疑问,一边经历一边成长吧,希望我们组能把这一步做好。

小组成员——骆一鑫

  算是第一次写需求文档,有些许感想,记录下来。(不让交也不会写的)

完善需求文档的整个过程修修改改我们的功能啊,表啊,弄了好多次,还好是写需求文档,要真是做了开发,这样改一定会累死吧。会浪费极多时间,精力。所以算是发现需求文档的一个优点。

  下面是我们在讨论需求时遇到的两个主要问题:

  1、想做的更好但是又怕实现不了

  在一开始的需求分析中,我们经常会遇到这个问题,这个需求我们能否实现?一方面我们想要用户有好的体验,让我们的app有亮点,有更多的工作量,但是另一方面我们都没有开发软件,实现机器学习算法的经验,拿不准我们提出的需求,基于我们的技术水平和在网络上学习之后,是否能实现。这时就会去不断地权衡,而且因为需求是我们自己提取,如果有的需求虽然重要性不高,但是的确能为软件增色不少,就会陷入万分地两难地境地。

  我的建议:

  只要切合实际,干就完了,与其把时间花在纠结上,不如把时间花在学习上,网上资源可太多了,就算做项目也要不断学习,不断进步,在这个大浪淘沙的时代,你只能不断进步。但是,切记,一定要切合实际!!!一定要切合实际!!!一定要切合实际!!!

  2、团队意见不统一

  每个人的想法都是不一样的,正所谓萝卜青菜各有所爱,需求的讨论肯定也会有意见不统一的时候,在团队较为统一时好解决,不统一时呢,尤其说的都有道理?

  我的建议:

  一般先让两种或多种意见的支持者进行阐述,支持总要有理由吧,到后面能只有一个意见最好,不然大家再权衡,投票,和平处理嘛(我就是被和平的),再或者先记录下来,找个能拍板的人,如指导老师,PM,或者更高层。但是一定不能遏制别人的思想。

  最后希望我们组加油,好好做,做出令自己和老师都满意的软件。

小组成员——杨道允

  做好需求分析是做好软件项目的重要前提。需求分析要求我们将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。我们都知道,需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节,所以做好需求分析工作具有重要的意义。

  在团队项目中,我们从甲方获取需求的工作,然后通过小组的讨论,从非形式的需求表述出发,深入地理解每一项需求的含义,将需求详细地具体到每一个功能,并初步探究实现这些功能的方法。探究的目的就是为了每个人都深入考虑工作量、技术性、实现难度等一些重要的因素,将需求具体化,从需求中提取出确定的需求用例。要做好需求分析工作就需要有耐心,与客户沟通,与组内成员沟通。通过项目的原型可以让我们分析出来的需求具体实例化,很好的呈现给客户并为我们以后进行编写代码有了明确具体的参照,有利于项目更好的进行。

 

小组成员——乔美萱

  这次需求分析总的来说过程还是蛮艰辛的。因为我们的项目主要注重的是算法,而且手势识别能应用到的(并且我们有能力实现的)地方其实没有想象中那么多,所以在开始时大家绞尽脑汁,也没能想出来几个实际功能。但是由于课程组对代码数量和数据库个数都是有一定要求的,于是我们便打算从其他的一些地方入手(比如账号注册登录和修改个人信息),来保证工作量一定要达到。后来在老师的指导和小组成员的努力之下,增添了选择算法和用户反馈的功能。不过在小班课评审上,老师对我们的项目似乎还是不太满意,这些不足之处希望在之后的迭代开发中改进和完善。我们小组讨论需求时,是和原型设计联系在一起的,效率很高,且不会遗漏。这种分析需求的方式在其他实验课的项目设计中也可以借鉴使用。

 

小组成员——郭铭

  在完成一个项目之前,要明白这个项目具体是要干什么,要进行详细的需求分析,需求分析的内容是针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。具体分为功能性需求、非功能性需求与设计约束三个方面。功能性需求即软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的动作。功能性需求是软件需求的主体。开发人员需要亲自与用户进行交流,核实用户需求,从软件帮助用户完成事务的角度上充分描述外部行为。作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。主要包括软件使用时对性能方面的要求、运行环境要求。软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。

  1、要做一个什么样的系统?

  分析系统构架,系统功能

  2、系统将要在什么样的环境下进行?

  在设计新系统的同时你必须考虑,要花时间去了解以前系统的功能,接口等,如果不了解,等你把新系统开发完了才发现系统脱离了原有的业务流程,让用户的需求得不到满足,那就代表你开发的系统根本没有价值,我想这不是我们想要的结果。  

  3、要解决哪些问题?

  开发出来的软件系统就是为了解决客户需求的,我们的项目就是要尽可能精确的识别图片中的手势。

  4、将来可能会有哪些变化

面对将来的发展,我们也许不能完全考虑到,但可以提前考虑些,能想到多少就想多少,多多益善,我们开发一个系统不是只满足当前的需求,如果眼光只放在眼前,那么你这个系统很快就会被淘汰,功能也许不需要现在实现,但接口总得留下吧,不然想改进都是很困难的事,如果一个稍微的小需求都要动系统构架,我想这个系统会越来越不稳定。

原文地址:https://www.cnblogs.com/jiangjia/p/11788400.html