| Profil de 希章陈希章@中国PhotosBlogListes | Aide |
|
|
09/08/2009 创造的基础是模仿本小节摘自《像外行一样思考,像专家一样实践——科研成功之道》一书,作者:金出武雄 卡耐基.梅隆大学计算机科学和机器人研究所 教授 说到独创、创造,人们就很容易想到那是某个人首先想到的、谁也没想出来的绝佳的构想。但事实上,这种情况少之又少。现实生活中,对于别人成功实现了的构想,总有人说:“我很早之前就想到过。”其实那未必是吹嘘,而很可能是种不服气的说法。 对照自身的经验,也有人说我研究成功的理论:“说来说去,这与标准的最小平方平均应用法本质上没有什么区别。”也有的时候别人得出极好的成果时,我也会感叹:“啊!这个我以前也做过的。” 事实确是如此。纵观科学史和技术史,哪项成就不是以前就有人想到过的。只不过是当时那个人或是没有实现它的能力;或是没有坚持到最后,在研究的道路上半途而废而已;或者是这些努力都做到了,但由于当时能够使用的技术和工作不足而未成功。这样的事情一定很多。 细心地调查一下过去的专利申请,特别是那些最终没有被批准的专利申请,就会发现这是个创新的宝库啊!那些没有被批准的专利申请的想法是先行一步的,但之所以没有通过审批,或者是因为现实情况不允许,或者是因为当时没有这种要求。实际上也有人说因为爱因斯坦曾经在专利局工作,才会有如此成就。 。。。。 大家想的都一样,这样还能发明创造吗?最初的想法的确是相同的,但在此基础上添加东西,使之升华的水平高低才是决定胜负的关键。 据此,大部分的创造都是在模仿的基础上增加其附加值的东西。 独创、创造,不是无中生有的魔术。 15/05/2006 从研究到产品微软亚洲研究院 主任研究员 张益肇博士
三个问题
一个产品一定要找到能够真正适用的场合。不能只是为了技术而从事技术,为了研究而进行研究,却不管用户对你所研究的技术和产品有没有需求。否则,无论你的技术是多么优秀,多么先进,恐怕你的产品在市场上都无法获得成功。
技术生命周期(把一项技术变成产品并推向市场所经历的过程)
基本规则
软件设计之源微软亚洲研究院 凌小宁博士
一。错误的设计之源
1。技术至上
简言之,是市场决定了产品的设计,而不单纯是技术
用户需求分析很重要,非常重要
2。唯我独尊
首先,不应凭空想象我们的用户,不应想当然,而应对市场和已有的产品作调查,分析。毕竟我们自己对软件的需求,只代表用户需求的极小的一部分,大多数用户并不想我们这些搞计算机的人那样使用软件
其次,我们应善于学习,向市场学习,向用户学习,向懂行的人学习。真正弄懂市场要什么,用户要什么,产品要什么
研发人员的自我表达不应成为软件设计的目的
3。满足人的一切需求
这是软件设计的另一个极端:满足人的一切需求,而忽略技术上的可行性。
软件设计工作只有基于用户需求,立足于可行的技术才有可能成功
4。功能至上
软件的功能指为用户完成一件事的能力。
如果一个功能真能帮助用户完成一件事,称这个功能是"有用的(useful)"。
如果一个功能的实现能使用户很方便地使用,称这个功能是"可用的(useable)"
这是两个不同的概念。前者强调有用性(usefulness),后者强调可用性(useability)。对软件可用性研究,通常是对用户心理行为的研究。软件的可用性一般体现在对用户界面的设计上。一个好的用户界面,可以方便用户的使用,也易于在市场上成功
如果不能克服功能至上的不足,就只适合实现一个软件产品,而不是设计一个软件产品
软件开发第四阶段任务,目标和注意事项第四阶段:发布阶段
这个阶段,需要在以下的几个方面达成一致
这一阶段,各团队分担的角色
这一阶段的可交付产品包括
这一阶段要完成的任务
软件开发第三阶段任务,目标和注意事项第三阶段:范围完成 /第一次使用里程碑
这三阶段,需要在以下的几个方面达成一致
这一阶段,各团队分担的角色
这一阶段的可交付产品包括
这一阶段要完成的任务
软件的Bug以及软件测试什么是Bug?
Bug的定义可以很广泛,在软件使用过程中所出现的任何一个可疑问题,或者导致软件不能符合设计要求或满足消费者需要的问题都可以是Bug,即使这个Bug在实践中是可行的
Bug可以真正消灭吗?
可以说,没有任何一个产品没有Bug,也永远不可能找出并修复所有的Bug。在修复了旧的Bug的同时,往往又会产生新的Bug
以微软的经验,每修复三到四个Bug,一般又会产生一个新的Bug
所以,Bug提交开发人员解决后,可能会有以下几种类型的反馈
1。Fixed:表示Bug已经被修复或更正了
2。Duplicated:表示测试人员所找到的某个Bug已经被别人找出来了。
3。PostPoned:表明这个Bug不是很重要,在当前阶段不用进行更正了,或者更正这个Bug风险太大,Bug本身又不会造成大的影响
4。By Design:测试人员认为是Bug,不符合逻辑,也不符合用户的需求,但开发人员则认为是按照项目经理的设计做的
5。Not repro:以前出现的某个Bug自动消失了,可能是处理其他Bug的时候把这个Bug一并修复掉了
6。Won't Fix:这个Bug是一个错误,还没有重要到非要更正不可的地步,完全可以忽略不计
软件测试应该注意的问题
1。测试最重要的一件事就是要考虑所有的出错可能性。同时,还要做一些不是按常规做的,非常奇怪的事情
2。除了漏洞之外,测试还应该考虑性能问题,也就是一定要保证软件运行得很好,非常快,没有内存泄漏,不会出现越来越慢的情况
3。另外,测试还要考虑软件的兼容性
软件测试方法和辅助工具
1。覆盖性测试(Coverage Testing)
这是一种从代码的特性角度(即内部)出发的测试方法,包括以下方式
2。使用测试(Usage Testing)
这是一种用户角度(即外部)出发的测试方法,包括以下方式
另外一种分类方法
1。白盒测试(White Box Testing)
又叫做玻璃盒测试(Glass Box Testing),在软件编码阶段,开发人员根据自己对代码的理解和接触进行的软件测试。主要以软件开发人员为主。
2。黑盒测试(Black Box Testing)
还有一种分类方法
1。手工测试
2。自动测试
辅助工具
相关测试文档
如何与项目经理及开发人员沟通
编写代码的十大秘诀微软亚洲研究院新技术开发部经理 林斌 没有完全理解精神,先记录下来
1。百家之长为我所用
不一定要什么都自己写
2。取个好名字
例如好的函数名,变量名,最好按照一定的规则起名
3。凌波微步,未必摔跤
活用Goto
4。先发制人,后发制于人
初始化很重要
5。见招拆招,滴水不漏
错误处理要周密
6。熟习剑法刀术,所向无敌
熟悉掌握Win32 API
7。双手互搏,无坚不摧
自己测试
8。活用断言
9。草木皆兵,不可大意
一定要考虑到对外接口的出错处理问题,用户不是像我们那样熟悉
10。最高境界,无招胜有招
尽量避免写太多的代码,写得越多,出错的机会也越多。最好能重用别人开发的接口函数或者直接调用别人的API
项目经理和项目管理为什么需要项目经理?
项目经理每天都做什么?
项目经理的背景要求
什么是一流的代码?1。稳定可靠
2。可维护且简洁
3。高效
4。简短
5。共享性
6。可测试性
7。可移植性
以上是纯粹从技术角度考虑一流代码的标准,真正一流的代码还需要兼顾到商业效益或社会效益,即确实是解决了实际问题,对人们有所帮助的才算
12/05/2006 软件开发第二阶段任务,目标和注意事项第二阶段:产品计划的通过里程碑
这一阶段,需要在以下的几个方面达成一致
这一阶段,各团队分担的角色
这一阶段的可交付产品包括
这一阶段要完成的任务
一个好的产品规范的判断标准
软件开发第一阶段任务,目标和注意事项第一阶段:想法和意图批准里程碑
这一阶段,需要在以下的几个方面达成一致
这一阶段,各团队分担的角色
这一阶段的可交付产品包括
这一阶段要完成的任务
软件开发的科学[微软的经验]微软的软件开发过程包含四个主要里程碑,每一个里程碑都是一个阶段的终结点。
软件开发和团队运作[微软的经验]七大步骤
六大团队
除了软件开发团队必须集中精力,不能分心去干其他的事情外,其他的几个团队可视情况进行组合压缩
1。产品团队原则
在产品团队中,权威仅仅来自知识,而不是来自职务
People are most productive working in small teams with tight budgets,time deadlines,and the freedom to solve their own problems.( 人们在那些具有严格的预算和时间限制,并且能够自由地解决他们自己问题的小团队中工作将更富有生产力。
——比尔.盖茨
2。软件开发的过程模型
2.1 指导原则
2.2 具体原则
3。软件的开发过程[微软的特点]
软件开发的科学和艺术(一)作者: 陈宏刚,林斌,凌小宁,张益肇,熊明华,张亚勤
以上均为微软公司华人专家,大多为微软亚洲研究院的高层
出版社:电子工业出版社
一。全球软件产业现状、趋势与挑战
张亚勤[微软亚洲研究院院长兼首席科学家]
软件行业的发展趋势可以概括为三个方面:网络化,服务化与全球化
网络的发展
1。起始阶段(20世纪70年代至90年代),出现了TCP/IP协议,小部分人通过它进行数据交换和传输
2。万维网阶段(20世纪90年代到今天)。1991年欧洲的一位软件工程师Timothy Berners Lee发明了万维网,不久网景公司推出了Netscape Navigator浏览器,随后微软也推出了Internet Explorer
3。智能网络阶段(现在到未来)。我们正进入一个网络技术发展的新纪元,网络技术正呈现出四方面的发展趋势:从静态网到动态网;从被动方式到主动方式;从呈现信息和浏览的窗口到智能生成的平台,从HTML到XML。互动性和可编程性成为崭新的动态网的主要特征。
有大德才有大智
|
|
|