阅读了《构建之法》第5章到第8章,让我对软件团队,他们的工作模式还有需求问题都有一定的了解。首先是团队问题,团队不是一群临时工,他们有共同奋斗的目标和各自的分工,但是他们相互依赖,相互配合完成任务。看了这么多种团队模式,例如明星模式,功能模式,就拿这次四人结组开发来说,我们尽管在水平上有差别,各有所长,但是我们一定会做到互相配合完成任务,共同进步,而不会变成“一人做事,其他人跟着打工”的样子。
说到团队,就避免不了谈到团队的工作模式,例如瀑布模型、敏捷流程、MSF等都是为团队的工作模式总结出来的智慧和经验。敏捷流程适合产品可靠性不太高,容忍经常出错,有资深程序员带队,需求经常变化的程序。敏捷流程首先要找出完成产品需要做的事情,决定当前冲刺需要完成的事情,进行冲刺。敏捷流程先是确定各种需求和任务之间各种复杂的依赖关系,然后进行任务认领,这个任务认领是主动认领,而不是进行分配的,然后开始冲刺,冲刺的时候每天要开站立会议。讨论小组的任务完成情况、遇到了什么问题和下一步任务的分配等。在每日的站立会议上,大家要总结自己昨天做了什么,遇到了什么问题以及今天打算做什么等。通过每日站立会议大家能够互相交流自己遇到的问题。
再谈到需求分析,首先我们需要找到软件的利益相关者,充分了解并挖掘他们的需求,有一些可能甚至是他们自己都没意识到或没表达出来的需求,最后对需求进行分析定义,验证这些需求等。了解需求的方式有多种,比如深入进行面对面的交流,发布一些调查问卷,使用A/B测试等方法去了解用户需求。所以我们小组在考虑开发一个软件的时候,不能只考虑模仿市面上已经有的软件,也不能凭空想象,主要通过N(需求)A(方法)B(好处)C(竞争优势)D(推广)这五个方面考虑我们的软件是一个怎样的产品,关键在于他要能解决用户的某一个需求就可以,把这个需求进行深入挖掘,就是这款软件的亮点。