现代软件工程-构建之法---第七章 练习与讨论

1、结合互联网时代的开发方式,分析你的团队开发成功软件的核心要素是什么

        在当下信息发达、科技创新、竞争激烈的时代,要想获得成功,单打独斗是不行的,常常是一个团队在协作。比如阿里巴巴、百度、腾讯等,都是这样。一个优秀团队必须具备的五大要素才能成功。这五大要素是:有效沟通、相互信任、处事慎重、换位思考、快乐工作。我们在不断探寻更好的软件开发方法,希望能找到适合自己和团队的好办法。不过,基于既有的教条,关于各种开发方法孰优孰劣的讨论最终总会演变成激烈的争吵。字典中教条的定义是“一种权威性观点,但并没有充分的依据”。我们经常会看到,各种方法的拥护者们都坚持认为自己的方法才是开发软件唯一正确的方法。我们不断听到一些从业人员这么讲,他们执着地采用某种方式开发软件,即使这种方法明显危害到团队的其他人甚至整个组织,却仍然固执己见。事实上,开发软件根本没有所谓“绝对正确的方法”。倒是有很多错误的方法,不过没有哪一种方法、观点、哲学或工具能“以不变应万变”,在所有时间、所有场合对所有项目和所有人都适用。

2、软件工程原则与MSF、Agile的原则的异同
 
   MSF,即Microsoft Solution Framework,也就是微软公司推荐做软件的方法。在2006年,伴随着Visual Studio Team Foundation 2005的发布,MSF4.0也推出了。其中描述了团队协作的典型流程和在软件上的应用,软件自然就是VSTF了。
MSF基本原则包括以下8条:
1、推动信息共享与沟通(Foster open communication)
2、为共同的远景工作(Work toward a shared vision)
3、充分授权和信任(Empower team members)
4、各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
5、重视商业价值(Focus on delivering business value)
6、保持敏捷,预期变化(Stay agile, expect change)
7、投资质量(Invest in quality)
8、学习所有的经验(Learn from all experiences)
 
   Agile方法即敏捷方法(agile methodologies)(也被称为轻量级方法,lightweight methodology),它是一组开发方法的统称。 随着技术的迅速发展和经济的全球化,软件开发出现了新的特点,即在需求和技术不断变化的情况下实现快节奏的软件开发,这就对生产率提出了很高的要求。

3、你怎么回答这些问题?

1)、这和“数量化的管理”级别的要求有没有冲突?

         首先,个人认为这是没有冲突的,在一个团队的时候,用领导力来取代一些以类目,份额,目标为基础的管理原则,是有必要的,因为领导力会让这个团队不仅仅看到眼前自己的一小部分工作,而是可以放眼全局,更好的统筹整个项目,也更有利于一个团队的更紧密合作,而并非每个人都局限于某一个数字或者量化的目标。

2)、二柱的观点

         这可能反应了在校大学生的一些心态,在没有走出校园到企业里去之前,我们可能认为程序的开发充满了随意性,我们并不需要一些专业的术语和流程来束缚它,其实不然。在真正的应用中,我们要把所开发的程序交付给客户,而不是老师,我们不能单单去实现一些要求的东西,更要看到背后的一些商机或者是一些实际的东西,想办法站在一个商业项目的角度来实现它。

         商业项目与我们在学校的一些项目,程序是有所不同的,商业项目的交付仅仅是一个开始,还有更长的维护更新的道路要走,我们在学校期间养成的一些不好的习惯,如我们的项目为了展示,很有可能都编译不了,或者之后就没有后续的一些工作了,这些都是商业项目所不能允许的。

         所以作为程序员的我们应该重视软件工程,不仅仅是一些术语和理论知识,更应该从小事开始把它上升到一个实际的高度上来解决问题。

猜你喜欢

转载自www.cnblogs.com/boxianxian/p/9195417.html
今日推荐