读书笔记-6《构建之法》

接着第四次读书笔记,继续学习《构建之法》。

首先是第五章,团队和流程。团队是一个正在合作完成某项目标的集体,团队成员之间彼此配合、相互协助,分工明确而且按照计划完成一个目标。团队有着很明显的特点:有一致的集体目标并且要一起去完成;团队成员有各自的分工,互相依赖合作,共同完成任务。然后作者介绍了一些软件团队的模式,我认为针对我们的团队项目,社区模式可能是最适用的,当然这里并不是说我没有明星队友,我们的项目是日记APP,虽然只需要一个as开发平台,但具体的模块还是需要明确分工的,所以我认为大家应该各自参与自己感兴趣的模块,在学习中开发,平行进步,共同完成目标。最后介绍了开发流程,第一种写了再改模式我认为效率很低,写写改改,质量很没有保证,而且很耗时;作为瀑布模型,我认为其优点有:避免了返工的问题,每做一步都向前做相邻回溯,可以及时解决很多问题,事实上这两天我们做结对编程时也是这样解决了很多问题;其二,可以及时优化目标方向,因为有些问题只有在开发的过程中才能发现,所以在每一步复审和回溯时,如果有发现方向以及目标上的问题,就必须及时修正;此外,在这种模型中,书中还提到用户的及早介入是很重要的,我非常赞同因为我们是在为用户开发软件,用户给我们的反馈和建议才是最有价值的,我们也必须以其为依据实时地做出改变,让用户满意就是我们最终的目标。

第六章介绍的是敏捷流程,首先介绍了一些敏捷开发的原则,比较有感触的是尽早并持续地交付有价值的软件以满足顾客需求、经常发布可用的软件、以有进取心的人为项目核心并充分支持和相信他们、面对面交流是最有效的沟通方式、不断地关注技术和设计这几条。敏捷的步骤主要包括(1)找出完成产品需要做的事情;(2)决定当前的冲刺需要解决的事情;(3)冲刺。作为一个团队,要实现敏捷流程,则需要做出的改变有:(1)自主管理——自主挑选任务、总结不足、提出改进并具体实施;(2)自我组织——大家联合起来对项目复制,若有人落后就需要给他提供帮助;(3)多功能型——每个人全面负责测试、说明书编写等一系列流程。可以看出,敏捷流程对于团队的要求是很高的,只有发展到一定阶段的优秀团队才有能力做到。

第七章讲述开发实战,暂时先跳过。第八章介绍了需求分析,首先软件团队在开发之前肯定需要找到这款软件的需求所在,寻找需求主要有以下几个步骤:(1)获取和引导需求。一般软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出自身真实的诉求;但有时用户也不知道自己的具体需求或者不愿意地表达完整的需求,那作为软件团队就需要设身处地,站在用户的角度,引导并设想其需求,这是十分有必要的。(2)分析和定义需求。这是指对各个方面的需求进行规整,定义需求的内涵并从各个角度进行需求量化等等,这关系到一些细节问题以及具体的需求,据此我们就可以开始一些开发细节的构想,在之后的开发过程中也需求据此做出一些调整。(3)验证需求。软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查等形式向他们验证软件团队对于这些需求的认知。(4)在软件产品的生命周期中管理需求。在软件的生命周期中,需求在不断变化,技术也在发展,团队成员的能力也在不断提高,所以原来制定的一些计划不可避免需要改变,也就要求我们不断地重新审核需求并相应地调整。这些需求一般分为对产品功能性的需求、对产品开发过程的需求、非功能性需求和综合需求等等。而获取用户需求(也称用户调研)有几种常见的方法:焦点小组、深入面谈、卡片分类、用户调查问卷,我们大项目的调研就是使用了最后一种方法,所以书中提及的一些问题我们也经历过,比如说问题定义不准、描述模糊、问题中带有引导性的倾向,我们当时也是经过了多次小组讨论才最终发布问卷的。总结起来,需求分析需要全面细致,必要时可以还辅以技术的支持,鉴于其重要性会贯穿整个开发过程,我们必须予以重视。

原文地址:https://www.cnblogs.com/notegeek/p/8734316.html