阅读作业2王冬篇

No Silver Bullet - Essence and Accidents of Software Engineering:

    银弹能杀死狼人。如果我没记错的话,在漫画中柯南对黑暗组织而言就是一颗银弹。生活中是不是真的有银弹我还是不太确定。假如有,银弹就是

一点弱点也没有么?如果有,能抓住银弹弱点的又被称为什么?

  在《No Silver Bullet》中,强调了由于软件的复杂性本质,而使真正的银弹并不存在;所谓的没有银弹是指没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍。所以我觉得这篇文章不是在陈述没有银弹这个事实,而是希望我们在完成软件工程的时候不需要银弹。我们应该组织好开发团队,选择最合适的开发模式。其实人人都是银弹就做到了No Silver Bullet。

  真正好的项目,需要便捷的开发技术,但没有一种技术能彻底的舍弃了人的存在。我们不能忘记的重要事实是,软件是为了方便人类而被创造的。

 

 Managing the development of large software systems: concepts and techniques

这是后来大家说的 “瀑布模型”,它有什么特点?

  根据原文,完整的瀑布开发模式应该是这样的:

 

  

  瀑布模型有以下特点:
  为项目提供了按阶段划分的检查点;当前一阶段完成后,只需要去关注后续阶段。这个特点决定了瀑布模型的适用范围:不适用于经常改动需求的项目;可在迭代模型中应用瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
  但是瀑布模型还有以下特点:
  在项目各个阶段之间极少有反馈;只有在项目生命周期的后期才能看到结果;通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 

  瀑布模型对很多类型的项目而言依然是有效的,如果正确使用,可以节省大量的时间和金钱。对于我们的项目而言,是否使用这一模型主要取决于是否能理解客户的需求以及在项目的进程中这些需求的变化程度,对于经常变化的项目而言,瀑布模型毫无价值。

  在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。 

  其实不管是瀑布模型还是什么别的模型,都是被有意简化,以帮助我们解决真实生活中遇到的问题。

big ball of mud

你的项目有一个大泥球么? 有什么解决办法? 

  大泥球,是指杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。

  其实很多软件都是靠着大泥球完成的。我觉得大泥球之所以有这么强的生命力,肯定有他的可取之处。比如虽然肉体上的工作量大,但是思想上的工作量小;比如他的逻辑简单,易于快速构造。同时弊端也是显而易见的。在现实生活中很多时候无论花费多少时间试图去找出完美的软件结构,客户总是引入一个变化破坏这个结构,不存在完美结构,只存在那些试图平衡当前的代价和收益的结构。有时候,程序员把原因归咎于客户,责怪他们总是改变需求。但是这不是他们的错误,他们只是在思考一种最合理、有效的方式为自己的工作服务。

  但是,客户连源代码都看不到,这种怨念却是没道理的。当我们接收时间管理助手的时候感觉就是一个大泥团。没有注释,没有文档,很难看懂一段代码对应哪块功能。但是还是得慢慢的看,理解。我们的解决办法是每人负责一小块,将大泥球分成小泥球,然后再解决这个小泥球,这项相对容易些。但这样也会出现一些问题。如果我的“小泥球”里的一些东西牵扯到别人的”小泥球“,那么我就很难做下去。所以加强组员的沟通对解决大泥球也很重要。 

CatB – Cathedral and the Bazaar

你的团队是用什么方式建造软件?

Lost in CatB.

这些情况在你的团队中出现过么?

   所谓的大教堂模式(The Cathedral model):源代码在本模式是公开的,但在软件的每个版本开发过程是由一个专属的团队所控管的。
   市集模式(The Bazaar model):源代码在本模式也是公开的,不过却是放在互联网上供人检视及开发。

  根据我对阅读材料的理解,我们团队的开发模式应该是Cathedral模式。好像与Cathedral and the Bazaar 的倾向相左。

  大教堂模式的优点是团队内比较凝聚,可以集中到一个点。而我们做的项目相对比较小,适合团队集中解决。

   在《A Generation Lost in the Bazaar》中,作者却报以不同的观点,警醒我们不要在市集模式中迷失。他认为,Raymond在其书中称颂的集市模式导致的悲哀的现实:“一坨脓包似的权宜代码,被一群盲目的根本不知IT架构为何物的所谓IT“专业人士”永无休止地复制着,粘贴着。”

  这确实一个问题,但出现这个问题的原因不是模式不够完善,而是程序员自己的原则性不够强,如果每个程序员对自己所用的代码都了然于胸,不可能出现这种情况。

Agile Method – by Martin Fowler

你的团队在开发中用了那些敏捷的思想和做法?

 

  先总结一下原文章里的一些我觉得有意义的观点:

  在所有敏捷开发方法中,XP(Extreme Programming)是最引人注目的,它适用于需求快速变动背景下的中小规模的开发团队。极限编程弱化针对未来需求的设计,非常注重当前的简化。因此,极限编程适合规模小、进度紧、需求变化大、质量要求严的项目。它希望以最高的效率和质量来解决用户目前的问题,以最大的灵活性和最小的代价来满足用户未来的需求,极限编程在平衡短期和长期利益之间做了巧妙的选择。极限编程的特点:

  1.极限编程方法从整体团体的开发小型的系统等方面解决了这些问题。

  2.极限编程使用了发布计划的方法。使得开发人员能对前一阶段的开发成果进行评估,更好地把握后面工期的任务安排

  3.极限编程方法尤为强调面对面的沟通,通过现场客户、站立会议、结对编程等方式来保证沟通的有效。
  我们团队在开发时间管理助手的时候有采用极限编程方式,比如会采用类似Pairwork的方式集中解决一个问题。还有在做团队项目的时候每天更新Daily Scrum以加深组员之间的了解等都符合敏捷开发模式。

转载于:https://www.cnblogs.com/WWW-Buaa/archive/2012/11/18/2776611.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌、脸书、微软、亚马逊、苹果、百度等AI巨头发展路径探析

来源:中国信息通信研究院、造奇智能作者:张婷,中国信息通信研究院产业与规划研究所工程师随着云计算、大数据、算法技术等条件的成熟,人工智能(AI)在产品优化、消费提升、攻克顽疾、应对气候变化等方面表现…

Python技能树丨Python简介

🍅 作者主页:不吃西红柿 一、为什么要学Python 短短 20 年间,「计算机和互联网」以一种前所未有的速度,改变了人类的生活 。 我们使用微信 「交流」,使用淘宝 「购物」,使用搜索引擎 「获取信息」&#…

清华自动驾驶前沿报告!解密六大关键技术,全球人才分布【附下载】| 智东西内参...

来源:智东西摘要:清华-中国工程院知识智能联合研究中心从技术、人才、应用和趋势的维度盘点自动驾驶的发展。从传统车企到新造车势力,再到互联网大佬,都在加注自动驾驶。自动驾驶既指向了更高效安全的交通运营系统,也意…

【送书啦】Python操作Mysql(连接、数据探查、写Excel)

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、HDZ核心组成员💪 欢迎点赞、收藏、评论 🍅 粉丝专属福利:简历模板、PPT模板、知识体系、面试题库、技术互助。直接去文末领取 &a…

心得14--jsp遍历所有数据标签与转义标签

1. 开发遍历所有类型数据的标签 标签处理类:package com.csdn.web.example;import java.io.IOException;import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import jav…

IBM长文解读人工智能、机器学习和认知计算

来源:人工智能产业链联盟人工智能的发展曾经经历过几次起起伏伏,近来在深度学习技术的推动下又迎来了一波新的前所未有的高潮。近日,IBM 官网发表了一篇概述文章,对人工智能技术的发展过程进行了简单梳理,同时还图文并…

【包邮送书活动】20210928期-开奖通知

【抽奖活动开奖:20210928期】 奖品:包邮实体书 参与方式:CSDN点赞评论收藏文章即可参与、或公众号 开奖通知方式(老是有人中奖联系不上,我很郁闷):朋友圈、blink、私信、发文 抽奖文章链接&…

师生脑信息传递的证据:部分学习还是整体学习?

来源 :华东师范大学心理与认知科学学院官网2018年8月,胡谊课题组的研究论文Interpersonal synchronization of inferior frontal cortices tracks social interactive learning of a song被神经影像国际权威期刊《NeuroImage》接受。该研究采用基于功能性…

第十四章 集合(List)

一、集合框架体系 集合: (1)可以动态保存任意多个对象。 (2)提供了一系列方便的操作对象的方法:add、remove、set、get等。 二、Collection 1. Collection 接口常用方法 (1)add&a…

【文末送书】知识体系目录

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家🏆、HDZ核心组成员💪、C站周榜第一✌ 🍅 粉丝专属福利:简历模板、PPT模板、知识体系、面试题库、技术互助。直接去文末领取 &#…

《日本制造业白皮书2018》深度解读:非连续创新、现场力、互联工业

日本三大部门共同撰写《日本制造业白皮书》作者:胡权来源: 工业4.0研究院2018年6月14日,日本经济产业省(简称经产省)发布了2018年的《日本制造业白皮书》。要了解日本制造业的情况,就全面性和系统性而言&am…

耗时n年,38页《数据仓库知识体系.pdf》(数据岗位必备)

文末下载PDF 文章很长,前言一定要看 拥有本篇文章,意味着你拥有一本完善的书籍,本篇文章整理了数据仓库领域,几乎所有的知识点,文章内容主要来源于以下几个方面: 源于「数据仓库交流群」资深数据仓库工程…

使用detours实现劫持

第一步:下载detours3.0,安装detours 第二步:构建库文件,nmake编译 第三步:包含库文件和头文件 #include “detours.h” //载入头文件 #pragma comment(lib,”detours.lib”) //表明要使用静态库 第四步&#xf…

Gartner2018新兴技术成熟度曲线:人机界线日益模糊!

来源:云头条摘要:Gartner公司的2018年新兴技术成熟度曲线上35项值得关注的代表性技术揭露了五种明显的新兴技术趋势,它们将模糊人与机器之间的界线。2018年新兴技术成熟度曲线是从2000多种技术筛选出来的。Gartner公司的2018年新兴技术成熟度…

1万字,阿珊学习笔记《前端基础知识》小白入门导读(建议收藏)

🍅 作者:阿珊 🍅 作者简介:95后前端小姐姐,蓝桥签约作者,欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 🍅 包邮送书&…

①万字《详解canvas api画图》小白前端入门教程(建议收藏)

🍅 作者:阿珊 🍅 作者简介:95后前端小姐姐,蓝桥签约作者,欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 🍅 包邮送书&…

新科技快速指南系列之“量子计算”:历史、现在与未来

来源:36Kr摘要:当计算机变更小或者变更快时,就会发生下一个大事件(Big Things)。量子计算的出现,是为了追求技术史上最大的性能提升。当计算机变更小或者变更快时,就会发生下一个大事件&#xf…

使用C与C++混合编程封装UDP协议

引入头文件&#xff0c;导入lib文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <WinSock2.h>#pragma comment(lib,"Ws2_32.lib")2. 在头文件中声明&#xff0c;由于是C中调用C代码需要使用extern关键字extern …

数据倾斜?几招把你安排的板板正正的!

&#x1f345; 作者&#xff1a;不吃西红柿 &#x1f345; 简介&#xff1a;CSDN博客专家&#x1f3c6;、HDZ核心组成员&#x1f4aa;、C站总榜前10名✌ &#x1f345; 粉丝专属福利&#xff1a;文末公号「信息技术智库」回复「资料」领取 &#x1f345; 如觉得文章不错&…

数据解读:资本追逐的14个人工智能细分领域

来源&#xff1a;亿欧摘要&#xff1a; 2014年后&#xff0c;人工智能逐渐成为中国私募市场的“宠儿”&#xff0c;投资风口也逐渐形成。亿欧智库最新推出的《2018中国人工智能投资市场研究报告》中&#xff0c;挖掘了14个行业中最受追捧的细分领域。2012年&#xff0c;深度学习…