构建之法——Team & Scrum & MSF
第五章(团队和流程)83-99
这一章主要介绍的是团队精神
那是不是说只要能组合在一起的就是组成了一个团队了?其实不然,软件团队有各种形式,适用于不同的人员和需求。适合自己的团队才能共赢!
一个好的团队流程能把冲突的积极方面(各自尽力把自己的工作做好,说服别人)释放出来,而避免消极方面(因为冲突而产生的消极、抵触情绪等)。我们不能因为说有了团队的队友就放松对自己的要求,因为每一个人的工作质量会直接影响到最终软件的质量,当所有的个人高质量工作加起来才可以达到一个优秀的团队高质量工作项目。
软件团队的模式有好多种:主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队模式、特工团队模式、交响乐团模式、爵士乐模式、功能团队模式和官僚模式。每一个团队不能够冲着利益最高的而自创模式或乱串模式,适合自己团队和项目要求的才是最重要的。那么怎样加强与别人的合作呢?在一个组织之中,很多时候,合作的成员不是我们能够选择得了的,所以很可能出现组内成员各方面能力参差不齐的情况,如果作为一个领导者,此时就需要很好的凝聚能力,能够把大多数组员各方面的特性凝聚起来,同时也要求领导者要有很好地与不同的人相处与沟通的能力。如果领导者在开始时没有以身作则做好各方面的工作,就会产生许多不良的后果。
所以,学会与他人合作,发挥团队精神在具体生活中的运用,可以使我们收到事半功倍的效果,可以使我们的工作更加良好地向前发展。
-
第六章(敏捷流程)100-119
“敏捷流程”是一系列价值观和方法论的集合,这个做法并得到了一些软件界的专家的肯定。
在6.1.1 中有谈到敏捷的开发原则,其中有一条说“经常发布可用的软件,发布间隔可以从几周到几个月,能短则短”,那么,是不是可以把问题对应到我们平时电脑或手机上的软件更新?相信大家都会遇到这样的一个困惑,我们的电脑和手机时不时就会弹出一个框来提示我们要更新系统软件的版本,可是,版本更新得如此频繁,那些软件需要我们更新的软件,如果我们更新完了,这个软件就真的是焕然一新了吗?就会有更好的体验效果了吗?答案是不一的,因为作为使用者的我们,从实战可以得出,有时候一些软件的更新只是很微小,更新完后几乎发现不了有什么大改动,此时就会让有些用户觉得该公司是在“骗流量或者骗点击量”。这些都因人而异,因为有时有的软件更新真的可以使得用户使用更加方便或有更大的视觉冲击震撼。
敏捷的适用范围是有限的,敏捷对团队的要求很简单:自主管理(Self-managing)、自我管理(Self-organizing)、多功能型(Cross-functional),一般人不能马上做到这一点,它不是“银弹”,不能解决软件开发的所有问题,所以敏捷的方法不是万能的,它能帮助你更早地知道你是否能如期完成任务,如此而已,那到底什么时候才适合选择敏捷?这就要根据不同用户跟不同项目的实际需求而定了,因此我们不能过于依赖敏捷做法。
-
第七章(MSF)120-140
什么是MSF?它其实就是微软推荐的做软件的方法——微软解决框架方案(Microsoft Solution Framework,MSF)。
我很欣赏MSF的九条基本原则:推动信息共享与沟通;为共同的远景而工作;充分授权和信任;各司其职,对项目共同负责;交付增量的价值;保持敏捷,预期和适应变化;投资质量;学习所有的经验;与顾客合作。
MSF规划得如此合理,那么是不是就可以随意而安了?答案不言而喻,MSF在世界范围内由微软顾问咨询部及微软认证的培训中心提供培训,它在不断发展,它是一个框架结构,它不是一成不变的。相反,MSF会随我们从微软的客户和合作伙伴那里的学习而不断的发展和完善,新的思想和准则会不断地被引进MSF。这些发展将适应技术的更新、商业需求的变化,并支持构建更好的软件解决方案。
MSF注重团队模型,它展示了如何组织项目队伍,在时间控制和连续不断发展计划的要求下,有效的交付系统的解决方案。它描述了六种基本的角色(产品管理、项目管理、开发、发布管理、测试、用户体验)。在MSF团队模型中,任何技术项目都必须达到特定的关键质量目标,才能够被认为是成功的项目。任何一个角色都无法实现其目标,都将危机整个项目。因此,每个角色都被认为是同等的重要,重要的决定都要共同做出。