首页 > 技术文章 > 《构建之法》chapter5,6 读书心得

Sswallow 2017-05-14 13:21 原文

     《构建之法》第五章用体育运动等团队例子引出软件开发团队的形式,用更加生活化、形象化的例子让读者更能理解软件开发团队的形式。软件团队形式多样,适用于不同的人员与需求。团队可能会演变的模式有:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式等。开发流程模式有:瀑布模式、瀑布模型的各种变形、统一流程、老板驱动的流程、渐进交付的流程等。瀑布模式:当软件行业还在年幼的时期,它从别的成熟行业借用了不少经验和模型。在那些“硬”的行业中,产品大多遵循:分析→设计→实现(制造)→销售→维护这个流程。由于在“硬”行业中产品一旦大规模生产,要再返回去修改时就非常困难,甚至是不可能的。因此这个模型描述了单向的、不可逆的生产过程。但它在软件工程中具有局限性:1、各步骤之间是分离的,但是软件生产过程中的各个步骤不能这样严格分离出来。2、回溯修改很困难甚至不可能,但是软件生产的过程需要时时回溯。3、最终产品直到最后才出现,但是软件的客户,甚至软件工程师本人都需要尽早知道产品的原型并试用。瀑布模型适用范围:如果产品的定义非常稳定,但是产品的正确性非常重要,需要每一步的验证;产品模块之间的接口、输入和输出能很好地用形式化的方法定义和验证;使用的技术非常成熟,团队成员都很熟悉这些技术;负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流在过去的学习生活很少有团队合作的时候,看了本章很期待后续与大家团队合作,肯定会遇到很多困难,但只有把学到的运用到实际,知识才会学得更牢靠。

      看了第六章了解到敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷开发的原则:

1、尽早并持续地交付有价值的软件以满足顾客需求

2、敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势

3、经常发布可用的软件,发布间隔可以从几周到几个月,能短则短

4、业务人员和开发人员在项目开发过程中应该每天共同工作

5、以有进取心的人为项目核心,充分支持信任他们

6、无论团队内外,面对面的交流始终是最有效的沟通方式

7、可用的软件是衡量项目进展的主要指标

8、敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步骤持续合作下去

9、只有不断关注技术和设计,才能越来越敏捷

10、保持简明—尽可能简化工作量的技艺—极为重要

11、只有能自我管理的团队才能创造优秀的架构、需求和设计

12、时时总结如何提高团队效率,并付诸行动

敏捷开发的步骤:

1、找出完成产品需要做的事情—Product Backlog

2、决定当前的冲刺需要解决的事情—Sprint Backlog

3、冲刺

4、得到软件的一个增量版本,发布给用户

推荐阅读