﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-kevin-随笔分类-软件工程</title><link>http://www.blogjava.net/kevinfriend/category/13721.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 06:19:38 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 06:19:38 GMT</pubDate><ttl>60</ttl><item><title>披着盛装的稻草人-- 编程中的随笔 </title><link>http://www.blogjava.net/kevinfriend/archive/2006/10/11/74546.html</link><dc:creator>康文</dc:creator><author>康文</author><pubDate>Wed, 11 Oct 2006 06:36:00 GMT</pubDate><guid>http://www.blogjava.net/kevinfriend/archive/2006/10/11/74546.html</guid><wfw:comment>http://www.blogjava.net/kevinfriend/comments/74546.html</wfw:comment><comments>http://www.blogjava.net/kevinfriend/archive/2006/10/11/74546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinfriend/comments/commentRss/74546.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinfriend/services/trackbacks/74546.html</trackback:ping><description><![CDATA[
		<p>1 不是使用了spring ，hibernate 等企业级产品的框架，我们就是企业级产品了。不是我们采用了新瓶装旧酒的web 2.0 我们就走在技术的前沿了。我门所需要的是一个高性能的，健壮的 产品，是一个可以降低我们实施成本，一个可以树立我们企业品牌的产品。在这里我不得不对我们产品的所谓的架构们产品疑问，Archetectures,what are you doing？</p>
		<p>2 在实现框架代码的时候，当你对采用那种实现方式犹豫不决的时，换个角度，想一想如果你是程序员，喜欢怎么这些框架。在实现框架的时候一定要考虑程序员是否能够理解你写框架的思路，除非万不得已不要用一些自以为很高明很巧妙，然而却很晦涩难懂的方法，那样的框架，程序员至少合格的程序员是不愿意使用的。我想程序员和编码工人最大的区别就是程序员不仅要知其然，还要知其所以然。</p>
		<p>3 只有在不断实践中，才能激发你不断的求知欲。只有把学到的知识不断的应用道实践中，你才能在学习中得到满足。不要为了学习而学习（学院派，不好听点就是纸上谈兵），而是要从实际问题出发，在解决问题的过程中不断深入，不断总结，所以说，当你离开了编程的第一线，你将失去学习编程知识的欲望。当然如果你愿意，在别的领域还有更广阔的天空，但是请不要总是说自己原来编程怎么怎么，其实你已经被三振出局了。</p>
		<p>4 想外行一样思考，想专家一样实践，一本书的名字，虽然书没有看过，但她的名子就已经非常有意思了。这岂不就是我们作需求，和作架构时的座右铭吗？既能象“外行”一样的站在客户的角度思考问题，又能象“专家”一样参与到整个产品的开发和实施当中，在实践中不断提高自我。然而，不幸的是许许多多的所谓的架构师，系统分析员们却正向着相反的方向迈进。“真正”的做到了，象“专家”一样思考，象“外行”一样实践，可悲呀可悲。<br />5设计做到什么样才叫做到位呢。我想只有真正的开发者才有权利发言。只有有它们才是设计的真正使用者和受害者。因为就我所知和所见，绝大多数设计都是设计者自己的游戏（当然，我可能是井底之蛙了没有见过什么好的设计），程序员所开发往往还是对着原形自己再进行一遍设计，且不说额外增加了多少工作量，浪费了多少时间，就工作质量而言，也是差强人意。毕竟大多数情况下，设计者或称为架构师的在技术方面的经验都更为丰富，对业务的理解也更为深入，另外由一个人进行设计在功能复用，和整体性能方面的考虑也更完整一些。但怎么做才能熊掌和鱼兼得呢？下面我发表一下我个人的看法：<br />  1 代码就是最好的设计，这句话不是我说的，是 xp开发届 中的一位大牛说的。之所以在这里引用别人的观点，并不是自己是一个xp 的fans，也并不时完全赞同xp 的理论，我只是觉得这句话得太对了，对程序员来说什么设计比代码读起来更亲切呢？。其实设计无非是向开发所着传达设计者的思想，告诉开发者系统需要开什么个对象，具有什么属性和行为，它们之间的调用关系又如何。我们在设计文档中经常使用的方法就是有class 图，协作图，和顺序图对上面所提到的进行描述。然而结果呢，面对这大量的令人畏惧的抽象图表，开发者可选择的也只有是“重整江河待后生了”。想想，这样的设计和代码能够同步吗，这样的设计文档还有什么用呢？所以说与其是这样还不如把设计变成代码，如对象属性可以这直接在代码中体现，方法可以只定义接口，实现方式可以作为代码的注释，向写需求分析用例似的来一步一步说明程序是需要怎样调用。当客户要求设文档的时候，只需要提出javadoc就可以了，而其保证和代码同步。而开发者呢，在开发前需要阅读用例，了解需求，然后在设计者已经搭好的代码框架中进行开发就可以了。如果需要修改的话，不用在去设计文档中更改，只需要修改一下代码注释就可以了，（程序员是比较懒的，不怎么愿意写写文档的）。当然了，让懒惰的程序员能够自觉地写好文档也不是一件容易事，下面也许能给你提供一个好的方法<br />  2 交差开发能够帮助完成最好的设计文档。<br />  3 设计者在开发阶段还作什么呢？                 <br />待续                                                                </p>
<img src ="http://www.blogjava.net/kevinfriend/aggbug/74546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinfriend/" target="_blank">康文</a> 2006-10-11 14:36 <a href="http://www.blogjava.net/kevinfriend/archive/2006/10/11/74546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>代码会生锈吗？</title><link>http://www.blogjava.net/kevinfriend/archive/2006/08/30/66617.html</link><dc:creator>康文</dc:creator><author>康文</author><pubDate>Wed, 30 Aug 2006 03:14:00 GMT</pubDate><guid>http://www.blogjava.net/kevinfriend/archive/2006/08/30/66617.html</guid><wfw:comment>http://www.blogjava.net/kevinfriend/comments/66617.html</wfw:comment><comments>http://www.blogjava.net/kevinfriend/archive/2006/08/30/66617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinfriend/comments/commentRss/66617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinfriend/services/trackbacks/66617.html</trackback:ping><description><![CDATA[   代码会生锈吗？这真是一个很奇怪的问题，代码怎么会生锈呢？但是现在的许多软件企业，却总认为代码放久了就会发霉，会生锈，因此每次发布的新版本总抛弃了原来所有的代码从头来过。这种做法真的可取吗？我们且不说这么做要浪费多少人力物力（反正公司有的是钱 really？但为什么工资只开这么一点点，配的电脑也这么烂），就仅仅从新版本的质量来讲，也不见得尽如人意。谁能够保证新版本的核心人员与原来版本是同一批人，那么又怎么来保证原来的“经验积累”能够在新版本中发挥作用。另外，老版本的代码多是经过项目实践来检验的，它们身上可能带着修复bug后，留下的伤疤，但是至少它已经痊愈<br />了，他已经成为了一名经历过战场洗礼的战士。而新版本呢，好比是在军校学习的学生，它们可进行了更为先进的战略战术的学习（一些更先进的技术）但是，遗憾的是他们从来没有在战场上真枪实弹的打过仗，（在项目中许多新技术的应用往往是程序员边学边用的，当然，这也是软件行业的一个特点）因此能否成为合格的战士还需要经过实战（项目）的考验，而不仅仅是考试（测试人员）的成绩。如果我们把一些战斗经验丰富的老战士，进一步培训（对老版本进行修复，重构）我想他们的战斗力可能会远远超过这些新兵？<br />   但是为什么这么多的企业，都会不约而同的选择重新编写代码呢，我想很可能是那些程序员在作怪（呵呵，不好意思我也是一个程序员，在这里只是就事论事 不敢含有任何贬低咱程序员的意思）。程序员总是不停的在抱怨，原来的代码事如何如何的乱，几页的代码竟然没有任何注释，许许多多的代码我竟然不知道做什么用的，让我修改，我还不如重写一遍呢？这是发生在程序员修改别人写的代码时，时常会发的牢骚。 原来的代码真的真么糟吗，其实并不尽然。那写你看起来一团糟的代码，也许就是修改某个<br />bug 时留下的伤疤，如果从头写一段新的代码，谁能保证你的代码没有原来那bug呢？其实我们可以采用很多重构的方法来解决，如设计模式的开闭原则，就可以很好的规避这一类问题。<br />  因此我认为，一个企业不要总是频繁的发布新版本，只有可以明确的指出现有版本已经满足不了市场的需求了，我们才需要重新规划。我们需要明确，我们当前最需要做的是对现有版本修修补补，使之不断完善，不断健壮。君不见，网景的netscape 和borland 的dbasde就是前车之鉴吗？<br />  <br />   注：网景的netscape 因新版本重写代码，整整用了3年的时间，其市场份额从80％ 降到了20％<br />       borland 从些Arago（dbase的前身） 也把市场白白的让给了 access<img src ="http://www.blogjava.net/kevinfriend/aggbug/66617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinfriend/" target="_blank">康文</a> 2006-08-30 11:14 <a href="http://www.blogjava.net/kevinfriend/archive/2006/08/30/66617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于软件小组矩阵式管理的一点点想法</title><link>http://www.blogjava.net/kevinfriend/archive/2006/08/28/66213.html</link><dc:creator>康文</dc:creator><author>康文</author><pubDate>Mon, 28 Aug 2006 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/kevinfriend/archive/2006/08/28/66213.html</guid><wfw:comment>http://www.blogjava.net/kevinfriend/comments/66213.html</wfw:comment><comments>http://www.blogjava.net/kevinfriend/archive/2006/08/28/66213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinfriend/comments/commentRss/66213.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinfriend/services/trackbacks/66213.html</trackback:ping><description><![CDATA[  现在各行各业都兴采用什么，矩阵管理的方式，号称可以提高效率，但是在软件行业一定适用吗？<br />  据说，微软采取的就是这种矩阵管理的方式，每一个项目由技术人员，项目经理，测试人员三个<br />部门的人员组成。其中，项目经理负责项目的协调。看起来，是人尽其用，每个人只需完成它分内的工作<br />即可，但是在一个项目中，涉及到大量的沟通（正式的和非正式的，内部的和外部的），和协调。如果项目组成员仅仅完成自己分内的工作，而把剩下的工作全部交给项目经理去完成，那么工作效率之低就可想而知了。这理涉及到一个问题，如何提高项目组成员的工作主动性，主动去完成自己分外的，但是自己最合适的工作呢？当然可以提高员工的工资，但是人的欲望是没有止境的，长到多少合适呢，在说公司能够承受多少呢？<br />   可见，涨工资不是解决问题的根本方法。因此我们需要想一些别的办法。<br />   在矩阵管理的模式下，由于每个人不隶属于任何的项目，只隶属于自己的部门。因此，在项目经理<br />与组员进行沟通时，也仿佛在与其他部门进行交互一样，存在这推诿，敷衍等等许多问题。如何解决这<br />个问题呢，那就是让每个项目组成员都要与这个项目荣辱与共。这恰恰就是矩阵管理存在的最大问题。<br />  在矩阵管理中，当项目组成员完成一步份工作后，可能就会撤出这个项目，因此这个组员也不会全<br />身心的投入项目的开发，因为它还要想着下一个项目。项目经理常常挂在嘴边的一句话，我的项目<br />怎么怎么样了（先不管这样说会让其它项目组成员心里怎么想），但是很少有项目组成员会说我的项目。。。。，这是为什么呢。因为不管嘴里怎么说，项目组成员在内心深处就没有把他当作自己的项目<br />他只需要完成自己的工作就可以了，没有必要作一些额外的工作，不在其位，不谋其政吗？这里所提到的<br />是矩阵管理存在的一些共性的问题，对软软件小组进行矩阵管理存在的问题更大了。众所周知，软件开发<br />是一种创造性的工作，其工作主动性所产生的作用更远远大于其它行业。在《人件》认为软件工程的管理<br />其实就是对人的管理，一切管理都要以人为核心。但是某些领导，往往忽视了这一点，把软件人员当作一种可以重复利用的资源，结果吃亏的将会是项目本身。<br />      也许大家会说了，你是不当家不知柴米贵，不作领导你不知领导的难处，在这里发发牢骚谁都会，如果你是领导，你会怎么办呢？<br />  当然了，作为非领导的我，只是从我的角度讲了一下我对这个问题的看法，另外我也不只是在这里<br />夸夸其谈，我呢，在下面也阐述一下，如果是我，我会如何管理，希望某个领导看到后也也考虑考虑。<br />   1 软件小组依然存在，但是其作用已经发生的变化。首先软件小组对已经进入项目的小组成员不能<br />进行工作的安排。只能对在项目之外的软件人员进行工作安排。其次，软件小组需要担付起对新入职的<br />软件人员进行培训的工作，不能把培训大量的工作放到真实项目中，这样必然会降低项目的质量。再次<br />软件小组，对项目中一些通用的问题集中解决，对项目中的疑难问题提供技术支持。另外软件小组还需要<br />对小组成员代码的质量进行走查，提高软件小组的成员的技能。当然作为软件小组成员的行政单位，软件小组成员的考核还是要有软件小组主导的。<br />   2 软件人员，尽能的参与项目真个生命周期，项目紧张人紧张，项目不紧张人员可以稍微放松，或及时进行充电。忽略了软件人员的对不断学习的需求，是当前软件管理的一大弊病。（可能有些上岗上线了，但这对调动软件人员的积极性和保持相对稳定的团队有这意想不到的作用）<br />   3 项目经理，需要对软件开发的特点，和软件人员的管理有所了解，建议读一读《人件》这本书。当然<br />    提高项目经理本身的软件素养才能根本解决问题，建议软件项目的项目经理一定要具备较强的开发能力和较为丰富的开发经验，公司不要心疼一点点工资，它可以给公司带来的效益要远远高于此。<br />   4 项目经理不要说，“我的项目”，应该改成“我们的项目”，让项目组的每个成员由一种归属感。<br />作为一个项目组成员，我们需要的是一种经历风雨见彩虹的成功感，而不是一种机械的忙碌的工作。<br />   5 最后，也是每一个软件人员都十分关心的问题，什么时候给我们换一个快点的机器呀。一个好一点的机器<br />比可能比更高一点的工资更具备吸引力，对公司来讲也是更划算的。（效率和人员流动上，呵呵）<br />  <br />   <img src ="http://www.blogjava.net/kevinfriend/aggbug/66213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinfriend/" target="_blank">康文</a> 2006-08-28 16:39 <a href="http://www.blogjava.net/kevinfriend/archive/2006/08/28/66213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对需求分析中的一些想法</title><link>http://www.blogjava.net/kevinfriend/archive/2006/08/27/65965.html</link><dc:creator>康文</dc:creator><author>康文</author><pubDate>Sun, 27 Aug 2006 00:23:00 GMT</pubDate><guid>http://www.blogjava.net/kevinfriend/archive/2006/08/27/65965.html</guid><wfw:comment>http://www.blogjava.net/kevinfriend/comments/65965.html</wfw:comment><comments>http://www.blogjava.net/kevinfriend/archive/2006/08/27/65965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinfriend/comments/commentRss/65965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinfriend/services/trackbacks/65965.html</trackback:ping><description><![CDATA[
		<br /> 1 写出用户级的需求用例。在现在的需求调研中，更多的是把客户提出的需求用流程图的方式表达。但是<br />在给客户讲解的时候效果不是很好，主要存在以下问题：<br />   1）流程图不适合描述分支很多的流程。分支过多，将导致流程图十分复杂，不具有可读性。<br />   2）流程图的受众比较少。在实际的业务业务调研中，面对的用户往往是系统的使用者，而不是作为<br />技术人员的维护和开发者，由于不具备相关技术背景，因此这些人在阅读流程图的时候，往往觉的眼花缭乱，更不要说提什么修改建议了。这将会使很多本应在需求调研阶段发现的问题，遗留到了用户正式使用的时候，由此带来的损失不可估量。<br />   3）由于流程图是一个粗线条的流程描述，因此许多客户提出的细节问题，需要以另外的方式进行记录<br />这可能会导致在设计阶段遗漏掉。如 系统使用这在使用时的心态，等等<br />  2 采用用例和流程的结合形式来描述客户的需求，原因如下：<br />   1）由于用例采用自然语言描述，所以任何人可以轻松的进行阅读。<br />   2）在一定格式的辅助下，用例描述不必受流程分支多少的约束。<br />   3）采用自然语言描述，可以详细的描述处用户的使用细节，这些细节可能会对这个项目的开发起着<br />   决定作用。<br />   4）加入流程图，让具有相关背景知识的人迅速的了整个流程的全貌。如果分支不是很多流程图<br />   还是可以画的十分简洁易懂的。<br />   5）好的用例对后期的设计，开发，测试都是很有帮助的。甚至可以直接作为客户的培训素材<br />  3 如何写用例<br />   1）写用例需要结合用例图，用例图可以让用例的读者了解整个系统提供的功能，和与其他系统的关系。 这样可以使读者的在阅读用例时，在一个限定的范围内思考问题。<br />   2）用例的格式大体上可以分为前提条件，主成功用例，扩展。当然，作者可以丰富用例的格式，这里<br />   仅仅是一个最简单的框架。<br />   3）由于是在需要阶段的用例，因此用例尽量用轻松的语调来写用例。你甚至可以把用例当作一片散文来写。这里需要注意的是，在写用户级用例的时候需要把系统当作一个黑盒，不要去描述系统内部是如何工作的<br />   此时作者一定要以一个客户的角度来考虑问题，来描述系统。<br />   4）用例可以也可以想写函数是的写一些通用性比较强的模块，以便其他用例可以复用。如用户身份验证模块。<br />   5）在写用户级的用例时候，对用户使用系统的细节需要描述，如使用者的心态。这可能决定着用户易用度的设计。<br />   6）在写用例的时候一定需要用完整的主谓宾来写。及谁，在做什么<br /> 4 用例描述仅仅是对用户需求一个梳理的过程，我们还需分析出其中的主要实体，和他们的关系，在分析<br />  的过程中可能会对产生新的疑惑，可以和客户及时沟通。当然在设计的过程中，也可以继续和客户沟通<br />  但是，客户方不一定能够随时协调到合适人员，这将导致项目的推后。因此，在集中讨论期间<br />  多做一些分析，乃至设计（原型的设计），可以大大减少后期的工作了量，提高客户满意度。用例，分析，和原型 可以是在需求期间一个小的迭代周期。<br /> 5 在讨论需求的时候，最好是以集中会议的形式进行，参会者应为 相关领导，系统将来的实际使用者<br />  ，技术把关人员。为什么者样作，和如何利用其中的微妙关系，需要大家自己去体会，去琢磨。呵呵<img src ="http://www.blogjava.net/kevinfriend/aggbug/65965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinfriend/" target="_blank">康文</a> 2006-08-27 08:23 <a href="http://www.blogjava.net/kevinfriend/archive/2006/08/27/65965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>项目经理－－嘿嘿</title><link>http://www.blogjava.net/kevinfriend/archive/2006/08/24/65418.html</link><dc:creator>康文</dc:creator><author>康文</author><pubDate>Thu, 24 Aug 2006 00:09:00 GMT</pubDate><guid>http://www.blogjava.net/kevinfriend/archive/2006/08/24/65418.html</guid><wfw:comment>http://www.blogjava.net/kevinfriend/comments/65418.html</wfw:comment><comments>http://www.blogjava.net/kevinfriend/archive/2006/08/24/65418.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinfriend/comments/commentRss/65418.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinfriend/services/trackbacks/65418.html</trackback:ping><description><![CDATA[
		<p>        现在公司招来的员工中，总是招进一些“空降兵”式的项目经理，这些项目经理不管它以前有什么<br />样的经验，仅仅就项目实施来说，他们有太多的不知道了。在我心目中，一个项目经理不仅仅具备一定<br />的沟通技巧还需要具备较强的技术修养和背景。<br />        不否认，项目中的沟通是可以解决项目中的一些问题，但是说服客户是需要“以理服人”，因为客户<br />不是傻子，他们需要了解为什么这项功能不能实现，为什么这项功能需要推后实现，在我的经验中，项目<br />中没有什么是客户提出问题，而仅仅通过项目经理的沟通就可以解决的。解决的方式往往是项目经理“无可奈何”的向客户保证××××我们一定完成。恶梦开始了，软件人员有需要不停的加班来满足客户那些毫无理由的需求了。<br />       我认为项目经理在客户的和项目组员眼中应该是一个技术高手的形象，只要这样他所作的决定才具有一定的说服力，所安排的工作才具备一定的合理性。而不是那些一行代码没有些过，而仅仅花一些钱考一些什么pmp 之类的认证的人。由于缺乏客户的信任，将导致客户绕过项目经理，直接找技术人员去解决问题，这将导致项目的逐渐失控。<br />        现在公司不知是怎么想的，招聘只是考虑有没有意愿，有没有pmp而不是从实际是否具备的能力。在项目中也不知多少是由于他们的无知造成工期的延误，一点点问题，都要到处协调人去解决，很小的一个问题一来一去不知要耽误多少时间，消耗多少资源。最后还颇为感慨的说，作项目经理太累了。其实这不是太累了，这是因为技术素养太低造成的。IT行业所具有的特点是高手和庸才 之间生产力的差距不仅仅是几倍而是几十倍，甚至是上百倍。<br />      不具备软件开发背景的项目经理工作进度的安排仅仅是一个漂亮的project 图表，不具备任何实际意义。由于没有亲身经历过开发，他不可能了解软件开发的全过程，不可能对项目进度有比较深入的控制。而是靠pmp 中过程控制的方式管理软件的开发，这几乎成了软件项目开发一济致命毒药。因此软件项目的延期甚至失败则变成了必然。<br />      另外 没有作过软件人员的项目经理，在软件人员的管理方面存在也存在问题。不了解技术人员所想<br />的是什么，更不可能真正调动起技术人员的积极性。他们所做的仅仅是不停的催促软件人员开发，其实这也不能怪他，因为在他的眼里，整个软件开发是一个黑盒，他之所以急躁，是因为他觉的不可控。</p>
		<p>         嗨 不说了，说了这么多，只不过是对外行人管内行人的一点点感慨。趁这自己还在软件开发这个阶段，多学习，多总结，为成为自己心目中的软件的项目经理而努力。</p>
<img src ="http://www.blogjava.net/kevinfriend/aggbug/65418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinfriend/" target="_blank">康文</a> 2006-08-24 08:09 <a href="http://www.blogjava.net/kevinfriend/archive/2006/08/24/65418.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件管理没有特效药读书笔记</title><link>http://www.blogjava.net/kevinfriend/archive/2006/08/03/61488.html</link><dc:creator>康文</dc:creator><author>康文</author><pubDate>Thu, 03 Aug 2006 05:23:00 GMT</pubDate><guid>http://www.blogjava.net/kevinfriend/archive/2006/08/03/61488.html</guid><wfw:comment>http://www.blogjava.net/kevinfriend/comments/61488.html</wfw:comment><comments>http://www.blogjava.net/kevinfriend/archive/2006/08/03/61488.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevinfriend/comments/commentRss/61488.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevinfriend/services/trackbacks/61488.html</trackback:ping><description><![CDATA[
		<p>
				<font style="BACKGROUND-COLOR: #c8e0d8">        为什么兴趣小组没有什么报酬，但 却比大多数商业公司的团队更有效。为什么open source 在软件行业中成为了一只推动发展的生力军。这是因为参与者都具有相当的热情和爱好，只根据能力和状态的不同去分配任务，则会让一切变得简单。这一切都取决于一个根本的原因－－人。软件项目的管理根本是人的管理而不是过程管理。<br />         在商业软件项目中，完成项目的时间应该是安排的程序员制定的，而不是项目经理或者其它人。完成高质量的任务的并不是将任务分配下去，而是自己自己抢这去做。因为每个程序员都渴望成功，这个成功可以是贡献，也可以是分享。当软件项目有机的切割成不同的任务时，每个任务最适合的人员就是那些有兴趣，有决心把它做到最好。<br />         在工业时代，我们需要管理的是工人的四肢；科技时代，我们需要管理的是程序员的敏捷头脑和激发一切的主管能动性。软件凝聚的是程序的智慧，而不是程序员的汗水。<br />        一个项目团队，就像是一个临时家庭，作为一个团队的管理者，你是知道团队中每个人的生日，你是否知道团队中每个人的上班路线，你是否知道团队中每一个人的爱好。越来越的团队开始用兄弟连的的例子去描述一个团队。一个团队的核心是每个团队成员而不是管理者。<br /></font>
		</p>
<img src ="http://www.blogjava.net/kevinfriend/aggbug/61488.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevinfriend/" target="_blank">康文</a> 2006-08-03 13:23 <a href="http://www.blogjava.net/kevinfriend/archive/2006/08/03/61488.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>