<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://cmmionline.net/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>设计</title><link>http://cmmionline.net/blogs/design/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>一切皆可复用</title><link>http://cmmionline.net/blogs/design/archive/2007/08/25/949.aspx</link><pubDate>Fri, 24 Aug 2007 16:28:00 GMT</pubDate><guid isPermaLink="false">a3cee3cf-888f-4043-8fa2-9101e6e147b9:949</guid><dc:creator>zhangcb</dc:creator><slash:comments>2</slash:comments><comments>http://cmmionline.net/blogs/design/comments/949.aspx</comments><wfw:commentRss>http://cmmionline.net/blogs/design/commentrss.aspx?PostID=949</wfw:commentRss><description>&lt;SPAN&gt;&lt;o:p&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;作者&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;：张传波&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;摘自&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;：&lt;SPAN&gt;&lt;A href="http://www.cmmionline.net/"&gt;http://www.cmmionline.net&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;摘要&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;：&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;人类文明不断地进步，并不是现在的人比古代的人要聪明，而是我们能不断地“复用”前人的知识、经验。你能不能成为优秀的软件人才，也视乎你能不能不断地“复制”你的成功。一流的软件公司，关注的不止是在技术方面的复用，实际上软件开发过程中几乎所有的东西都可以复用！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;你有复用习惯吗？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;你是程序员吗？我们经常要写数据库连接的代码，这些代码都类似，无非是&lt;SPAN&gt;new&lt;/SPAN&gt;一个&lt;SPAN&gt;connection&lt;/SPAN&gt;，然后配置&lt;SPAN&gt;connection&lt;/SPAN&gt;的参数，然后&lt;SPAN&gt;open&lt;/SPAN&gt;。很多编码新手，常常会在不同的地方编写这段类似的代码。其实很简单，这段代码应该抽取出来供每个地方调用。如果你编写的代码中发现很多类似的甚至相同的代码到处都是，应该好好考虑重构一下了。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;读小学的时候，老师要求我们写日记，当时觉得很难写，也不想写。后来读高中的时候，我的思想来了个大转变，突然写起日记来，一写就是几年。写日记并不是记下每天干了啥，而是每天都总结一下当天的得失，看看有什么东西是可以“复用”的。现在写文章对我来说并不是什么很难的事情，我也比较容易观察出周围一些事物的闪光点，并学习它，供自己“复用”。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;复用其实不复杂，从小处做起，养成一种习惯，这种好的习惯会让你的成功速度加倍！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;你的企业有复用习惯吗？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;你们公司有组件库、类库或者是共享代码库吗？每次你们做项目，有没有之前的一些东西可直接供本项目使用的，还是需要全部重新开发的？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;A&lt;/SPAN&gt;&lt;SPAN&gt;项目遇到一个问题，而这个问题&lt;SPAN&gt;B&lt;/SPAN&gt;项目已经解决了，但&lt;SPAN&gt;A&lt;/SPAN&gt;项目的人还不知道，这种情况多见吗？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;你们做项目，是不是时间压力非常大，公司有没有要求你们完成项目的时候要提交一些可复用的组件出来？项目能按期完成就阿弥陀佛了，还管什么复用呢&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;L&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;很多公司可能不太注意“复制成功”，每天都在干救火的事情，老员工陆续离职，新员工陆续入职，公司一直没有什么积累。一流的软件企业，都有一套“复用”机制，能不断地积累知识和成功经验，不断地保持公司的竞争优势。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;一切皆可复用！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;一说到软件复用，很多人可能只想到技术方面的复用，我们应该把复用的范围再扩大。我们为什么要复用呢？因为我们想利用别人或者自己之前的成果，加快进步的步伐。正是因为我们这个目的，所以只要有利于进步的东西，都可以复用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;软件企业之间的竞争说到底是人才的竞争、智力的竞争和知识的竞争，每个公司都想网罗最优秀的人才。但千军易得，良将难求，企业有什么办法把优秀人才的优秀做法“固化”下来，让整个企业都具备优秀人才的特点呢？优秀的人才包括很多方面的人才，技术人才、管理人才、行业知识专家等等，通过一套“复用管理办法”，可以让这些专家的先进的做法，贯彻到整个企业中去。这样就相当于企业复制了很多个这样的优秀人才，企业的战斗力就会达到超强的境界。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;技术复用&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我们公司的某个项目，要通过网页的方式展示一些列表，并且要把列表的内容导出成&lt;SPAN&gt;Excel&lt;/SPAN&gt;。开发人员经常抱怨客户的需求在变，列表及导出成&lt;SPAN&gt;Excel&lt;/SPAN&gt;的表格，客户经常修改对列的要求，什么列要显示什么列不需要不显示，列的顺序、宽度、列标题等经常要修改。很多时候客户确实不是无理取闹的，业务是发生变化的，人的认识也是不断加深的，这是一种合理的变化要求，软件应该满足这样的要求，只是我们的技术能力还不过关，每次这样的修改都需要去改代码，修改成本高，开发人员不高兴，客户也不高兴，因为每次修改我们都要跟他讨价还价。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;当时我就问开发人员，能不能把这部分的做成可定制的呢？客户想显示什么列就让自己去配制，我们不需要改代码，客户也不会来“骚扰”我们。但开发人员就以难度大，时间紧为由而不同意。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;很多公司都会出现类似这样的情形，一般情况下指望项目组内能解决这些问题是不太可能的，原因有二：一是项目所有人基本都是进度优先的，基本上对于这样的改进都是听不进去的；二是项目中的人没有能力去做这个技术改进，或者是项目中利害的人没有时间来处理这个问题。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;如果我告诉开发人员，公司组件库中有这样的一个组件，能做到可定制的，能完满满足要求，我想项目组会毫不犹豫地使用这个组件。项目组其实并不否认这样的做法的好处，只是没有时间做或者是自己做不出来。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;公司应成立专门的部门，管理整个公司的技术复用，技术复用包括设计复用、组件复用、类库复用、代码复用等。该部门有两大任务：一、不断地研究能为公司使用的先进技术；二、关注每个项目，提取项目中可重用的内容，并为项目提供可重用的组件，为项目解决技术难题，从技术上加快项目的进度和保证质量。这个部门是很重要的，优秀的技术人才放到这里，会使他的作用成倍地放大。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;关于技术复用，请看我的另外一篇文章《超越竞争对手的秘密武器&lt;SPAN&gt;-&lt;/SPAN&gt;技术重用》，这里仅做简单介绍。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;项目管理复用&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;为什么有项目经理管项目就比较好，有些项目经理就做得不太好了？优秀项目经理的管理经验能不能重用呢？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;微软总结了很多项目的成功经验，总结出&lt;SPAN&gt;MSF(Microsoft Solution Framework),&lt;/SPAN&gt;并向整个微软甚至是全世界的软件公司推荐&lt;SPAN&gt;MSF&lt;/SPAN&gt;。&lt;SPAN&gt;MSF&lt;/SPAN&gt;的八大原理以及&lt;SPAN&gt;MSF&lt;/SPAN&gt;的团队模型，对提高业界项目管理水平发挥了不可估量的作用。除了&lt;SPAN&gt;MSF&lt;/SPAN&gt;，业界还有&lt;SPAN&gt;RUP&lt;/SPAN&gt;、敏捷、&lt;SPAN&gt;XP&lt;/SPAN&gt;等各种方法供大家参考，这些东西都不妨“拿来主义”，为我所用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;除了复用别人成功的管理经验，更重要的是要复用具有自己企业特色的项目管理经验。把优秀的做法写成过程，“固化”下来，让全部的项目遵照执行，并不断地完善此过程。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;过程必须是经过公司实践的提炼出来的，而不要“照搬”外部的一套过程来实施。我们公司刚建立过程的时候，是通过两个试点项目各自的实践摸索出来的，我们总结了这两个项目的成功经验，建立了过程的初稿。以后所有过程的修改，都不是凭空构思，而是“复用”了实践中的成功经验。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;管理这东西是有点虚的，不能照搬理论，一定要通过实践来总结经验，把最佳实践写成过程，让整个公司学习和执行这个过程，这样优秀项目管理者的成功经验就会被“复用”到每个项目中去。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;行业知识复用&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;你们做行业软件吗？比方说财务软件、房地产、股票交易软件、建筑预算软件、医院系统。有位项目经理负责一个医院的管理系统，做完后他颇有感触地说，现在就连那个医院的院长也不比我对医院的业务熟悉了！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;行业知识不精，最直接后果就是难以把握好需求，被动地响应客户的变化，难以做出客户真正想要的东西。如果你们公司是专注于某个行业的软件的，如果行业知识不精，很容易被竞争对手超越。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;作为客户，他们除了关注软件公司技术水平，可能更关注软件公司能不能帮助他们重整业务流程，实现更大的业务价值。很多大型的&lt;SPAN&gt;ERP&lt;/SPAN&gt;系统、&lt;SPAN&gt;MIS&lt;/SPAN&gt;系统实施不成功，很可能是因为对业务的理解不够，难以推动客户重整业务流程。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;为了保证在行业知识方面的优势，很多公司会招聘熟悉该行业的人士，甚至用即懂该行业又懂软件开发的人来负责项目。除此以外，我们应该关注行业知识的复用，公司只有少数几个业务精英是不够的，我们希望每个人都是业务精英。要做到业务知识复用并不复杂，关键做好以下的事情：&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;1.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;安排业务高手讲业务知识文档化，如写出产品的需求规格说明书、使用手册等。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;2.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;由业务高手安排一些培训，让负责该行业软件的项目经理、开发、测试、实施都接受培训和考核，保证项目组全部成员都具备相应的知识。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;3.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;持续地更新业务知识文档，并持续地进行培训。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;软件公司除了要关注技术积累，也要注重行业知识积累，其实应该首先关注行业知识积累，行业知识就是需求的根源，而技术是为实现需求服务的。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;估算复用&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;要做准确的估算，对估算者的要求很高，要考虑的问题很全面和深入。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;以前我们公司做项目估算很不准，一个开始估计是&lt;SPAN&gt;10&lt;/SPAN&gt;万的项目，最后可能要&lt;SPAN&gt;20&lt;/SPAN&gt;万。如果每次估算，都有一些资深的项目高手来估算就好了，这样能比较全面充分地考虑问题，于是我们想到了这样的一个办法：&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我们集中全公司的资深项目经理，一起来对项目估算进行总结，一起列出做估算需要考虑的内容，并加上详细的说明。最后做出了一个估算用的模板，这既是一个模板也是一个指南，列出了项目整个周期需要考虑的工作，并给出详细的说明。这个模板“固化”很多人的智慧，项目组使用这个模板进行估算，就相当于“复用”了大家的智慧。采用此模板后，估算准确率提高了很多，估算的偏差由原来&lt;SPAN&gt;50%&lt;/SPAN&gt;以上，控制在&lt;SPAN&gt;20%&lt;/SPAN&gt;以内。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;业界有很多估算办法，如功能点法、代码行数法，倒不是说这些方法不好，不过很多公司都没有办法很好地掌握这些方法，也没有让这些方法发挥作用。估算这个事情也不是什么方法就能搞定的，是很依赖于估算人的智慧、经验、判断能力的，想办法“复用”他们的智慧，这可能才是解决估算问题的有效办法。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;测试复用&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;发现了一个缺陷，如何保证以后测试不会遗漏？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;软件发布了新功能，进行测试的时候如何保证老功能不会有问题？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;测试复用对于提高测试质量、保证软件质量和降低测试工作量太重要了。凡发现缺陷的测试用例都需要重视，这个测试用例以后要复用！进行新功能测试的时候，我们还需要跑一下测试老功能的测试用例，检验做新功能有没有导致老功能出问题。测试中其实是非常关注复用的，也有很多公司在研究自动化测试工具，特别是功能自动化测试工具，以便更好地复用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;但实际上很多公司并没有做得那么理想，测试时间经常被压缩，测试人员得不到重视，测试自动化工具一直也没办法用上，测试工程师们周而复始地进行原始的手工测试，软件还是持续地遗留大量的缺陷发布给客户。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;要做好测试复用，可以先从简单做起：&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;1.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;规范测试的过程，保证缺陷都被准确地记录下来，并且详细地记录发现缺陷的测试步骤。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;2.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;每次测试都需要总结经验教训供以后使用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我们公司为了让测试的水平能持续地提高，我们针对我们的产品编写了功能树，列出了全部的测试点，以及测试时的注意事项，测试时要按照此树进行测试，要覆盖全部的点。如果发现测试有遗漏，或者软件功能调整，我们马上更新功能树。这样即使我们安排不同的人去测试，都基本能保证测试的效果，我们的测试工程师通过功能树“复用”了前人的经验教训，避免了重犯。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;持续培训，把复用发挥到极致！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;说到底，复用就是一个实践、总结、学习、应用的过程，我们公司的“每日培训”把复用发挥到极致。每个公司都应该有持续培训的制度，把公司各方面的复用推向极致！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979192&gt;&lt;SPAN&gt;培养知识共享、乐于交流、追求进步的企业文化&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;不少软件公司的技术人员，都或多或少的有一些技术保留的想法。但持续培训机制，让每个人都很热衷把自己研究的成果与大家分享，乐于解答别人在工作上遇到的困难和问题，乐于与大家争论技术问题，每个人都急于吸收新知识、新技术，每个人每天都会觉得自己有很多东西要学、想学。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979193&gt;&lt;SPAN&gt;员工与公司共同进步&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;公司是由每位员工组成了，每位员工进步了，公司也就进步了。持续培训机制是每位员工个人发展的加速器，员工通过不断的学习，甚至是自己亲自做讲师，个人水平得到了全面地提高。伴随着员工水平的提高，公司的生产力也不断地提升。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979194&gt;&lt;SPAN&gt;打破部门界限、项目组界限&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;持续培训制度，彻底打碎部门界限、项目界限，所有人不分部门、不分项目组地坐在一起上课、讨论，不同部门的人、不同项目的人轮流上台讲课，讲授各自的经验和知识。不同部门、不同项目组之间的员工关系将非常融洽，彼此了解对方正在什么工作，也非常乐意提供跨部门、跨项目的帮助。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979195&gt;&lt;SPAN&gt;新技术、新过程迅速转化成生产力&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;采用新技术，实施新过程是公司不断革新的重要方法。新技术、新过程的顺利实施并转化成生产力的周期越短越好，持续培训制度，大大缩短了这个周期。所有新技术、新过程将会很快地被“复制”，大家会在培训上热烈讨论，加深了对新技术、新过程的理解，从而加速了新技术、新过程的实施。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979196&gt;&lt;SPAN&gt;新制度迅速落实&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;一个管理严格的公司一定会有严格的日常管理制度，而日常管理制度应该根据实际情况及时调整，持续培训制度对新的制度的迅速顺利落实起到了很大的作用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979197&gt;&lt;SPAN&gt;成功迅速复制，错误不会重犯&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;持续培训制度，可以让每一个人的成功经验迅速“复制”给每一个人，而任何一个人的失败教训，可以迅速让每一个人体会，避免错误重现。&lt;A name=_Toc134979198&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;打造金牌讲师&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;每位讲师，由准备讲课到经历讲课，是对自己各方面能力的考验，每一次讲课就是一次能力提升的过程。持续培训制度，“复制”了大量的金牌讲师。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979199&gt;&lt;SPAN&gt;打造品牌课程&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;持续培训制度积累了大量的课程，所有的课程的资料全部保存到培训网站，可供所有后来的员工查阅和学习。而不少系列课程，经过多次的改版以及重讲，慢慢了形成了公司的经典课程，这些经典课程被不断地“复用”，教育着一批又一批的新员工。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;A name=_Toc134979200&gt;&lt;SPAN&gt;打造卓越团队&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;持续培训制度，锻炼了大量的项目经理、部门经理，他们成为了公司的中坚力量，“复制”出一个又一个的卓越团队。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;打造企业的复用库！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;能复用的东西非常，如：风险识别办法和缓解办法、设计方案的复用、缺陷的解决办法等等，复用思想的本质其实就是要不断地总结经验教训为今后所用。要做到这点，除了在公司倡导总结和学习的企业文化外，需要制度化地管理复用工作。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;CMMI&lt;/SPAN&gt;&lt;SPAN&gt;中提到资产库，资产库的重要组成部分就是复用库，复用库可以包含组件、代码、设计方案、各种工作模板、工作指导书等等，然实有利于以后更好地工作的，这些内容都可以纳入复用库中。每个公司都应该好好规划自己的复用库，持续地更新这个库，持续地推动项目使用复用库中的知识。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;试想一下，如果每个项目开展之前，能在复用库中得到大量的帮助，对于提高项目速度、保证质量是有多么重大的意义。一个公司也只有通过这样的方式，才能让公司具备越来越强的竞争力。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;每个公司都不可能网罗全部的精英，精英也不可能一直都呆在同一个公司，公司除了要关注招聘和留住优秀人才外，也需要打造自己的复用库，复用是每个公司成功的加速器！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;一切可以复用，需要通过良好的持续培训制度，以及优秀的企业复用库来支撑，会复用的人才是最聪明的人，会复用的企业才是最厉害的企业！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;-----&lt;/SPAN&gt;&lt;SPAN&gt;全文完&lt;SPAN&gt;-----&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT color=#ff1493&gt;&lt;STRONG&gt;特别声明：&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;如需转载此文，请给出指向本网站的连接，如下：&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;作者：张传波&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;摘自：&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.cmmionline.net/"&gt;&lt;FONT face="宋体, MS Song" color=#99aa99&gt;http://www.cmmionline.net&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;如不能按此要求，请不要转载此文。&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://cmmionline.net/aggbug.aspx?PostID=949" width="1" height="1"&gt;</description></item><item><title>超越竞争对手的秘密武器——技术重用</title><link>http://cmmionline.net/blogs/design/archive/2007/08/21/939.aspx</link><pubDate>Tue, 21 Aug 2007 15:44:00 GMT</pubDate><guid isPermaLink="false">a3cee3cf-888f-4043-8fa2-9101e6e147b9:939</guid><dc:creator>zhangcb</dc:creator><slash:comments>1</slash:comments><comments>http://cmmionline.net/blogs/design/comments/939.aspx</comments><wfw:commentRss>http://cmmionline.net/blogs/design/commentrss.aspx?PostID=939</wfw:commentRss><description>&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;作者&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;：张传波&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;摘自&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;：&lt;SPAN&gt;&lt;A href="http://www.cmmionline.net/"&gt;http://www.cmmionline.net&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;摘要&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN&gt;：&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;软件重用的好处不言而喻，但似乎很多公司都会陷入这样的怪圈：因为项目进度压力大，就不讲究什么重用设计了，太花时间了，完成项目再说。因为一直都是项目进度压力大，故周而复始的循环这个怪圈。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;如何摆脱这样的怪圈？如何在激烈的竞争中立于不败之地？如何利用好“软件重用”这个厉害的武器？本文阐述了笔者大量的工作体会，将给你一个有益的启发。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;国外软件技术水平&lt;SPAN&gt; VS &lt;/SPAN&gt;国内软件技术水平&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;微软的&lt;SPAN&gt;Office&lt;/SPAN&gt;，我想无人不晓吧？&lt;SPAN&gt;Office&lt;/SPAN&gt;的&lt;SPAN&gt;VBA&lt;/SPAN&gt;不知道了解的人是否多？&lt;SPAN&gt;n&lt;/SPAN&gt;年前我第一次知道这个&lt;SPAN&gt;VBA&lt;/SPAN&gt;的时候，我觉得非常震惊， 我们利用&lt;SPAN&gt;VBA&lt;/SPAN&gt;可以低成本地做很多开发，直接利用&lt;SPAN&gt;Office&lt;/SPAN&gt;的全部功能。同时我很佩服微软，&lt;SPAN&gt;Office&lt;/SPAN&gt;中几乎所有的产品，都包含&lt;SPAN&gt;VBA&lt;/SPAN&gt;这个“组件”，这个小小的组件让所有应用这个组件的产品增值不少。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;几年前我玩过一个国产的&lt;SPAN&gt;RPG&lt;/SPAN&gt;电脑游戏，觉得非常经常好玩。数月后，该公司再次发布了一款新游戏，号称继承了之前那个游戏的精华，我非常激动，购买了这个游戏，谁知道让我非常失望，新款游戏的基本上就是用原来游戏的模子倒出来的，只是把故事情节、场景换掉。这里倒不是想说这个游戏没有什么新意，而是想说这个公司把重用发挥到极致，游戏的情节引擎、战斗引擎等都不需要换掉，他们甚至利用开发团队内部使用的“情节编辑器”和“场景编辑器”等工具，就可以“配置”出一款新的游戏软件出来。姑且不论这个公司游戏创意方面的考虑，这个公司利用软件重用，生产游戏的速度得到了很大的提高，并且可以很好地保证质量，因为这些重用的组件之前已经经过充分测试了。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;国外软件技术比起国内来，领先了很多个“马位”，软件重用方面的考虑在国外大公司来说已经是“家常便饭”的事情了，而国内真正考虑软件重用的公司并不多。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;国内的很多系统和软件，基本上是做数据库的“四轮马车”的工作。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;A HREF="/photos/chatu/picture938.aspx" target=_blank&gt;&lt;IMG src="/photos/chatu/images/938/640x438.aspx" border=0&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;很多项目的名字都类似于“某某管理系统”，什么&lt;SPAN&gt;ERP&lt;/SPAN&gt;、&lt;SPAN&gt;MIS&lt;/SPAN&gt;等系统，其实背后做的都是数据库的增加、修改、查询和删除的操作，技术含量并不高，仅是工作量大而已。这些庞大的系统，经常会把一些软件公司拖死。难道就没有办法用快速、高质的办法来完成这些项目吗？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;过程&lt;SPAN&gt;VS&lt;/SPAN&gt;技术&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;为了更好的控制需求，为了做好需求开发工作，为了提高生产力，很多人想到了改进过程，很多公司也竞相去过&lt;SPAN&gt;CMMI&lt;/SPAN&gt;多少级。从过程来改进生产力无疑是一个好方法，但能不能从技术来改进呢？很多时候从技术来改进生产力比从过程入手来得更直接更有效。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;在做一些信息管理系统的时候，经常会遇到客户需要修改业务对象属性的情况，这时我们常常要给相应的数据表增加一些字段，并要修改界面层到数据库操作层的代码。难道没有一种好的技术办法来解决这种需求变更吗？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我们用微软的&lt;SPAN&gt;SharePoint&lt;/SPAN&gt;作为我们公司的内部办公平台，&lt;SPAN&gt;SharePoint&lt;/SPAN&gt;最大的优点就是能“随需而变”，能随时增加、修改、删除字段，而不需要编写任何的代码，也不需要要求微软提供任何支持服务。我们为之感到惊叹，微软的技术也太牛了！我们学习了&lt;SPAN&gt;SharePoint&lt;/SPAN&gt;这个特点，对自己的产品进行改造，使之具备类似于&lt;SPAN&gt;SharePoint&lt;/SPAN&gt;的特点，能随时增加、修改、删除业务对象的属性，而不需要修改任何代码，并且我们把这个技术几乎重用到我们全部的产品上，极大提高了我们产品的竞争力。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;业务对象的属性发生变化，这是常见的事情，我们完全没有必要埋怨客户的“无理”变更，当你成为客户的时候，你也会有这样的需求变化要求。如果我们的软件在技术上能做到“随需而变”，那么你还会害怕什么需求变更呢？&lt;SPAN&gt;IBM&lt;/SPAN&gt;的广告词之一就是“随需而变”，如果没有强大的技术做后盾，谁敢打出这样的广告呢？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;当然，技术改进与过程改进是密不可分的，技术改进也需要配合相应的过程来支持，我们在考虑改进的时候，不妨同时从过程和技术两个角度来考虑。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;老调重弹——重用的好处&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;网上说软件重用的好处的文章特别多，这里只介绍几点。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;让生产软件的速度更快。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;让那些以重用设计要花更多时间而不原意进行重用设计的人滚一边去吧，软件重用的目的之一就是让软件生产更快。如果贵公司每做一个项目，有&lt;SPAN&gt;50%&lt;/SPAN&gt;是重用以前的组件的时候，贵公司的软件生产速度会比你的竞争对手快多少？磨刀不负砍柴功，这个道理谁都懂，但一到现实工作中，还是有很多人直接拿钝刀就去砍大树了。很多软件公司生产了软件多年，还是没有一点技术积累，自己的类库、组件库、共享代码库为零，如果还不立下痛心来改变现状，那就等着被被人淘汰吧。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;有一款&lt;SPAN&gt;PS2&lt;/SPAN&gt;游戏叫“战神”，非常受欢迎，我也很喜欢玩，而“战神&lt;SPAN&gt;2”&lt;/SPAN&gt;的面世比其前作快了很多，也比其他大型软件的开发速度快很多，因为 “战神&lt;SPAN&gt;2&lt;/SPAN&gt;”重用了前作的图像引擎。在这个商业社会，不再是大鱼吃小鱼了，而是快鱼吃慢鱼。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;让软件质量更高。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;项目越临近发布，需要加班的几率就越高，开发时间严重超出了计划的时间，而测试的时间不断被压缩，甚至有些软件公司不进行测试了，美名其曰“给客户测试”！这样的软件质量如何让客户满意？如何抛离你的竞争对手？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;测试是可以被重用的！如果软件重用了大量的组件，而这些组件之前是经过充分测试的，那么软件的质量就会得到极大的保证，这些组件不需要重复测试，软件需要测试的时间也会大大减少。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;让管理成本更低。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我曾经花了很大的力气去抓项目的设计过程，但效果甚微，原因是我们没有足够多的利害高手，能把每个项目的设计做好。为了提高大家的设计水平，我们又进行了大量的培训。当我费劲心思提高我们的设计水平的时候，我们公司的技术副总却给了我另外一个思路，让我阔然开朗！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;他认为与其从改进过程和提高大家设计能力的角度来改进，还不如编写一套生成项目框架的代码，并要求全部项目使用公司的组件库，这样做项目的人不需要很高的水平就能做出满足架构要求并且质量高的软件来。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;每个公司的技术高手毕竟是少数的，要把这些高手用到刀刃上，并通过软件重用这个框架，保证高手们的智慧能贯彻到每个项目中去。这样公司管理过程的成本将会极大地降低，同时公司也不需要招聘大量的高水平的开发人员，把公司的管理重点放到能产生&lt;SPAN&gt;80%&lt;/SPAN&gt;价值的&lt;SPAN&gt;20%&lt;/SPAN&gt;的员工身上。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;有利于保护公司的技术秘密。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;前段时间我还在笑话一个案例：一名客户希望某系统能做成虚拟现实的效果，能有三维的场景，能从中取出所需要的物品，当时我的感想是：无言！不过不久前，我在网上瞎逛，居然点进一个三维购物网站，里面展示了一个类似于三维的场景，能在货架上取货还能跟店员谈话！我的天啊，太牛了！我觉得非常惭愧，我居然还敢笑话那个客户，看来该笑话的应该是我！那个三维购物网站虽然还不算很强，但已经接近那个客户想要的东西了。我想如果好好发展这个技术，该技术很可能会成为该公司很有竞争力的一个技术！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;一个软件公司要成为龙头老大，没有核心技术是不行的。保护核心技术最好的办法，就是采用重用技术。有核心技术的公司，一般会有两套人马，一套人马研发该核心技术的，一套人马使用核心技术的，使用核心技术的人员只能得到编译后组件，而这些组件常常要给与授权码才能使用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;保护好这些可重用的核心技术，这些将成为公司重要的资产。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;A HREF="/photos/chatu/picture941.aspx" target=_blank&gt;&lt;IMG src="/photos/chatu/images/941/original.aspx" border=0&gt;&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;如何做到重用？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;先做好项目内重用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;不知道你编写代码的时候，是不是经常&lt;SPAN&gt;Ctrl+C&lt;/SPAN&gt;和&lt;SPAN&gt;Ctrl+V&lt;/SPAN&gt;？我曾经见过一些软件的代码，相同的代码到处都是，不要说面向对象了，连基本的结构化代码都写不好。相同的内容要抽出来成为方法，相似的功能可以提取到公共类中。这是最基本的编码功底，也是最基本的重用要求，如果连这点都做不到，就不要空谈什么软件重用了。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;还有一次，我检查一个&lt;SPAN&gt;VB&lt;/SPAN&gt;写的&lt;SPAN&gt;Windows&lt;/SPAN&gt;程序的缺陷列表，发现一批关于录入提示不友好的缺陷，后来一问，原来开发人员直接使用&lt;SPAN&gt;VB&lt;/SPAN&gt;的&lt;SPAN&gt;InputBox&lt;/SPAN&gt;函数来让用户录入数据，开发人员还用一堆&lt;SPAN&gt;InputBox&lt;/SPAN&gt;函数不好用的理由来说明这个缺陷是不能解决的。该软件存在大量的这种类似的录入窗体，我就问为什么不自己做一个录入窗体，然后在所有地方重用它呢？这样问题就不存在了，而且用户感觉更好，何况做这样的一个录入窗体时间最多也就是&lt;SPAN&gt;30&lt;/SPAN&gt;分钟的事情。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;做自己做起，从项目做起，马上把软件重用做好吧！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;拿来主义——利用开源代码及共享组件。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;n&lt;/SPAN&gt;&lt;SPAN&gt;年前，我曾经利用一个共享的软件，生成其中一个项目的数据操作层的代码，节省了我们不少时间。类似的这样的一些共享代码、组件、软件在网络上非常多，大家不妨多去搜索一下。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;不过这里要给大家提个醒，必须测试好这些免费的东西。我曾经吃过亏，我拿了一个网上大家都鼓吹得很厉害的一套开源免费的论坛来做自己的网站，结果发现一堆&lt;SPAN&gt;bug&lt;/SPAN&gt;，还有不少是导致网站无法访问的错误。使用免费的东西总是要付出代价的。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;另外也要注意大家注意版权问题，很多免费的东西是不能用于商业用途的。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;项目无可比性，如何做到项目间重用？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;当我提到软件重用时，很多人跟我说，我们公司的项目每次都不一样的，很难提炼出可重用的东西。于是我回答，不管是什么项目，很多内容是可以考虑做成可重用的，如：权限管理、配置管理、日志管理、异常管理（出错管理）、缓存管理、数据层组件等。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;很多共性的东西，只是我们没有抽取出来。不知道大家是否了解过微软的&lt;SPAN&gt;Enterprise Library&lt;/SPAN&gt;，这个&lt;SPAN&gt;Library&lt;/SPAN&gt;提供了很多个&lt;SPAN&gt;Block&lt;/SPAN&gt;，项目能直接使用这些&lt;SPAN&gt;Block&lt;/SPAN&gt;为项目服务，如：&lt;SPAN&gt;Data Access Application Block&lt;/SPAN&gt;能提供数据访问的&lt;SPAN&gt;API&lt;/SPAN&gt;，你无需再开发数据库访问的代码。微软为什么就可以对不同的项目进行抽象，提炼出这么多可重用的&lt;SPAN&gt;Block&lt;/SPAN&gt;，我们是不是应该多动动脑筋？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;另外不管你是不是采用&lt;SPAN&gt;.net&lt;/SPAN&gt;技术去开发的，也建议去好好研究一下微软的&lt;SPAN&gt;Enterprise Library&lt;/SPAN&gt;，看看他们是如何设计这些&lt;SPAN&gt;Block&lt;/SPAN&gt;，好好学习人家的重用设计是怎样做的！&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;l&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;发掘有价值的重用。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;项目中可重用的东西实在太多了，平时要好好发掘。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我的测试团队经常会报这样的一些缺陷，对录入数据的合法性没有做比较全面的判断，如输入电话号码的地方，可以输入“&lt;SPAN&gt;ABC&lt;/SPAN&gt;”&lt;SPAN&gt;,&lt;/SPAN&gt;而系统没有报错。而我们的开发也经常说这类缺陷没必要修改，另外要满足这个要求的话，代码比较难写，而且要到处修改。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我比较纳闷，如果发现要不断地处理类似的问题，是不是应该考虑重用设计呢？如果经常要验证电话号码的合法性，是不是可以做一个电话号码控件，并到处重用这个控件呢？当然电话号码的合法性判断并不简单，这段代码也并不好写，不过我们有“正则表达式”，现在很多开发包都提供正则表达式引擎，这些不都可以利用吗？&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;I&gt;&lt;SPAN&gt;注释：正则表达式是一种对录入数据格式和合法性的定义语言，如录入电话号码的要求，完全可以用正则表达式来表达。正则表达式的引擎，可以将正则表达式与输入值进行比较，判断输入值是否符合正则表达式的要求。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;我们要有敏锐的触觉，凡重复的代码、凡类似的功能、凡经常遇到要解决类似的问题，都可以考虑采用重用设计。重用设计是有一些难度，不要畏惧这个困难，很多情况下可以用简单的办法解决的。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;B&gt;&lt;SPAN&gt;规划技术管理路线，打造核心技术&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;市场、技术、过程可能是软件公司最重要的三样东西，具备具有市场价值和竞争力的技术，并且通过软件过程管理来保持和扩大这种优势，对软件公司来说是至关重要的。纵观各大软件巨头，无一不是具备这样的特点的。中国要成为软件强国，也必须走这样的发展道路，什么发展外包只是权宜之计。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;以前某软件老板曾经说过：他们公司不是研究机构，更不是慈善机构，公司存在的目的就是赚钱，所以他们公司没必要打造核心技术，能赚钱的就做。问题是，如果没有核心技术，能不能持续地赚钱并且赚大钱呢？&lt;SPAN&gt;n&lt;/SPAN&gt;年过后，该老板的软件公司也不见得发展了多少，目前还在为公司生存而奋斗。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;阿里巴巴的发展大家有目共睹，互联网刚在中国兴起的时候，马云看中了网上交易的前景，目前阿里巴巴网站已经为阿里巴巴带来丰厚的收益，马云把&lt;SPAN&gt;B2B&lt;/SPAN&gt;的市场拓展到&lt;SPAN&gt;C2C&lt;/SPAN&gt;——淘宝网，为了保障安全的网上交易，开发了支付宝。为继续扩大优势，阿里巴巴并购了中国雅虎，一下子拥有了全球领先的搜索技术。没有强劲的技术是难以保证持续领先的，一流的软件公司都在不遗余力地打造自己的技术优势。&lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;各软件公司应该好好分析自己的市场前景，制定相应的技术路线，打造核心技术来支持公司的战略！而软件重用将是保持竞争力的杀手锏！ &lt;SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN&gt;-----&lt;/SPAN&gt;&lt;SPAN&gt;全文完&lt;SPAN&gt;-----&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal align=left&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN&gt;&lt;SPAN&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&lt;FONT color=#ff1493&gt;&lt;STRONG&gt;特别声明：&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;如需转载此文，请给出指向本网站的连接，如下：&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;作者：张传波&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;摘自：&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="http://www.cmmionline.net/"&gt;&lt;FONT face="宋体, MS Song" color=#99aa99&gt;http://www.cmmionline.net&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN&gt;如不能按此要求，请不要转载此文。&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://cmmionline.net/aggbug.aspx?PostID=939" width="1" height="1"&gt;</description></item></channel></rss>