??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜福利精品久久,亚洲avav天堂av在线不卡,亚洲人成在线播放网站岛国http://www.tkk7.com/zbw25/archive/2006/07/14/58254.htmlM、思考、生z?/dc:creator>M、思考、生z?/author>Fri, 14 Jul 2006 13:35:00 GMThttp://www.tkk7.com/zbw25/archive/2006/07/14/58254.htmlhttp://www.tkk7.com/zbw25/comments/58254.htmlhttp://www.tkk7.com/zbw25/archive/2006/07/14/58254.html#Feedback0http://www.tkk7.com/zbw25/comments/commentRss/58254.htmlhttp://www.tkk7.com/zbw25/services/trackbacks/58254.html 
?a >Ajax大赛W二轮公?/a>?/div>
?a >Ajax大赛W二轮结?/a>?/div>
 

我写的ȝ
 

  如果和超U女生这L大赛相比的话Q?/span> Ajax 大赛应该被称之ؓ?/span> Ajax 赛”吧?/span> 250 名初赛选手Q?/span> 10 多名复赛选手Q三个来自于一个网站?/span> Ajax 中国”的评委。这L比赛意义在哪里呢Q?/span>

 

  仅仅看数量,是看不出来的?/font>

 

  Ajax ?/span> Web 应用的一U,而且可以肯定的说Q是 Web 应用中最为复杂的一U,一?/span> Web 目Q我们通常都会分ؓ“美工”、?/span> Web 静态页面制作”、?/span> Server 端系l开发”这样几个工U。?/span> Ajax 应用则同旉?/span> Server 端与 Client 端复杂的端到端编E技术?/span>

 

  对于参赛选手而言Q这些工作,都得靠一׃力来完成Q在 2 个多月之内,做出来的作品Q要观Q要好用Q要有创意,要符?/span> W3C l织?/span> Web 标准Q还得正有效的作ؓ一个程序在览器里q行。真的,不容易!q?/span> 11 位(可能会修改)参赛选手Q每一位都不容易!

 

  我们Q大赛组l者、评委和参赛选手Q都非常切的意识到Q我们正处在一场变革刚刚v步的阶段?/span> Ajax 可能仅仅是这场革命开始时Q最响亮的一个名字。激动h心的发展会接踵而来Q而我们这些h会自豪的宣Uͼ我们从一开始就不是旁观者,而是实实在在的参与者,和有力的推动者!

 

  看着选手们的代码Q我们的信心更加充Q这?/span> Ajax 的爱好者和参与者们Q不仅是热忱的,更是t实的。不但是严肃认真的,更是勇于创新的。由q样的一h来推?/span> Ajax 在中国的发展Q实在是一个极好的开始?/span>

 

  ?/span> Ajax 大赛Q正是这样一个机会,使得q一中坚力量,能够集结、凝聚,q而取得更加卓的成就。这是我对于这个比赛意义的理解?/span>


   说实话,E微吹了一?img src="http://zbw25.spaces.msn.com/mmm2006-07-07_16.32/rte/emoticons/smile_tongue.gif" />



]]>q̎—?http://www.tkk7.com/zbw25/archive/2006/06/20/54084.htmlM、思考、生z?/dc:creator>M、思考、生z?/author>Tue, 20 Jun 2006 15:05:00 GMThttp://www.tkk7.com/zbw25/archive/2006/06/20/54084.htmlhttp://www.tkk7.com/zbw25/comments/54084.htmlhttp://www.tkk7.com/zbw25/archive/2006/06/20/54084.html#Feedback6http://www.tkk7.com/zbw25/comments/commentRss/54084.htmlhttp://www.tkk7.com/zbw25/services/trackbacks/54084.html“出来؜QL要还的。”这话说得真好。我最q的blog写得太少了,惛_的东西,其实又实在是不少Q一日复一日的堆积心里Q又惛_Q又不想写,隑֏呀?

q篇blog原本q是打算在Word 2007里写的, 后来作ؓ草稿发上来,发现q有不少不如意的地方Q还是在U写吧?

惌的事情挺多的Q一件一件的说吧?

一、敏捷中国大会,6?日在上v交大丑֊了一场。专门介lruby的,昨天在csdn的martin fowler的中文blog上,也脓Z完整的演讲全文。?a >Ruby是一个非常好的开发工?/a>》,?a >现场演示Ruby~程》,?a >l数Ruby语言优缺?/a>》。关于这ơ活动的一Blog按理我早p写了Q但是却一直没有写出来。有两个原因Q一个是那天老马在开讲之前,熊节是打在边上当翻译的Q谁知道交大的同学们牛啊Q纷UC,不必译Q都听得懂的Q我一个学俄语的hQ在那里抗议也没什么用Q大安一副听力很好的架势Q老马在上面叽里呱啦的讲着Q下面的同学们不时的W着……我呢,也只能随着大家的笑壎ͼ冲着老马I洞的笑着……;W二个原因呢Q是个原本打等CSDN的演讲的译出来Q我也好引用一下,谁知q一{,是半个月,我都已经换了一个工作了?

说实话,那天老马的演Ԍ我没听懂Q不q因Z在那里现?/span>codingQ所以我q是看懂了一些代码。Ruby的代码给人留下了深刻的印象,而且我不知道是不是Martin故意装作是一个初哥,反正看v来他对ruby的语法也不怎么熟悉Q不qruby厉害的地方就在于Q你q是个初哥Q边试边弄,也能把程序鼓捣出来?

原本的计划是介绍Ruby DSL的,不过旉明显的不够用Q关于DSL的部分反而讲得很,q好q两天armlinux-w译了一专讲Ruby DSL的文章过来:?a >用Ruby 创徏领域特定语言》。当时看到Martin演示的,用Ruby语言描述的配|文件时Q脑子里颇有些想法,也写了问题交上去问,不过老马也来不及一一回答Q后来想惻I提的那个问题Q也没有l过自己的深入思考与实践Q不提也|?

倒是我提的另外一个问题,颇有些h|当时正好交大的林h老师也在Q我以前对林老师的那句语录有所不满?/span>XP是草书,UP是正P先草书后正楷Q就会ؕ套》。在自己的Blog上也和林老师的门徒们吵过Ӟ如今Martin教主本h既然来了Q我{看客正应该把这仗挑h才是。于是我提了一个问题,让两位专安来评价一下这句话。可惜的是,后来他们两h的精彩交锋,我也没怎么听懂Q还是林老师q用中文阐述了一遍自q观点Q我是了解了一下他的逻辑?

原来我以为,林老师q样的说法,是出于在校教师“和E泥”的考虑。这下我才了解到Q原来林老师是真的这么认为的。而他q么一U说法的依据Q还是惯常的“中国国情论”。或者称之ؓ“补课论”。因为美国h是现有Y件工E,才有极限~程Q而我们现在的软g产业q落后h家几十年Q所以不把Y件工E这一课不上,是不行的。然后林老师q颇有些“攻d”的询问MartinQ当初你先写?/span>UMLQ后来又写了XPQ?span style="FONT-FAMILY: 宋体">不也是这样一个心路历E吗Q老马如何回答Q我也没有听懂,但是在我看来Q林老师h了三个概念,一个是国家U的软g产业的发展水qI一个是企业U的软g开发的理水^Q一个是开发h员的技术与理论水^。这三个不同的水q他搅在一P用于支撑自己的说法,实在?/span>?/span>所以,会后我又q上去问林老师Q我提出了三个概忉|؜淆了云云Q没惛_林老师相当和蔼可亲的对我说Q“嗯Q你说的没错”,然后又说到关于大学的软g教育的问题,我在说很多刚毕业的学生,对于软g开发的理解Q往往停留于知识点的积累上Q而没有去思考,我打把q些知识点,l合hq用Q以辑ֈ什么目的。很多学生,只是说我知道什么什么,而不会说Q我会做什么什么。林老师又和蔼可亲的Ҏ_“嗯Q你说的没错。我一直跟学生们说Q学校和企业是完全不同的Q真正的知识Q只能在企业里才能学到。”然后我又说Q其实Y件学院应该多推荐学生M业实习,q有是多鼓励学生参?/span>Open Source的项目呀。林老师q是和颜悦色的对我说Q“是啊,不过现在的企业,要他们肯接收学生实习Q不Ҏ的。在国Q每q暑期都会有大量的实习生招聘Q这其实是企业在做慈善呀。再说现在的大学老师Q对Open Source的了解,也很的呀。”然后,我就跟林老师告辞了。作Z个老师Q他l我留下了很好的印象Q但是,我更加悲观的发现Q要通过学校教育Q提高Y件开发h员的素质Q好隑֕Q?

会后大家又找了一家小饭店FB了一下,CSDN的霍泰稳也来了,我还l他们提了一个徏议,以后CSDN最好能够搞一个系列的zdQ不断的把世界各地的软g大师们请C国来QE回演Ԍ收取门票Q整理成每年基本的《Y件大师在中国》这样书出版Q还有视频光盘也可以卖钱Q各位大师的中文Blog也都建在CSDNQ应该是一桩双赢的好事啊,q他们是不是打做了?

(待箋)



]]>
对代码有感情Q对质量有追?/title><link>http://www.tkk7.com/zbw25/archive/2006/06/18/53540.html</link><dc:creator>M、思考、生z?/dc:creator><author>M、思考、生z?/author><pubDate>Sat, 17 Jun 2006 18:23:00 GMT</pubDate><guid>http://www.tkk7.com/zbw25/archive/2006/06/18/53540.html</guid><wfw:comment>http://www.tkk7.com/zbw25/comments/53540.html</wfw:comment><comments>http://www.tkk7.com/zbw25/archive/2006/06/18/53540.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.tkk7.com/zbw25/comments/commentRss/53540.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zbw25/services/trackbacks/53540.html</trackback:ping><description><![CDATA[ <div>最q一直在讨论招h的事情,如何判断一个h的水qI怎么h是没有bugQ等{等{。也看到一些ƈ不怎么有趣的反Ҏ见,比如Q?/div> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <div> <strong>不要出来搞笑</strong>_</div> <div> <font color="#0000ff">没有bug的程序????????? <br />靠,站着说话不腰疹{那个公司可以做出没有bug的Y件来Q?<br />当然Q没有写q程序的Z出bug!! <br />估计q位同志不会写代码,是个理论专家?<br />q是不要q么狂的好?<br />我估摸按你的标准Q你是肯定不会被别h录用的!</font> </div> </blockquote> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <div> <strong>123</strong>_</div> <div> <font color="#0000ff">你是~程的吗Q?<br />无“BUG”搞W吧?<br />试是不能查出所有BUG?<br />而且不是所有测试都能穷丄 <br />只能是测试覆盖率辑ֈ一个标?<br />BUG出现的概率达到标?<br />才算产品 <br />“ZERO-BUG”做梦去?/font> </div> </blockquote> <div>说实话,q两个名字我看都不是用户名,而且很可能是同一个hQ就是所谓的troller。我说的没有bugQ是交给我的demo没有bugQ这L要求很高吗?我还没有出算法题Q要求应聘者的法效率呢?仅仅要求一个正实现简单功能的E序Q很q分吗?</div> <div> </div> <div>在JavaEyeq看到另外一帖子?a ><font color="#003300">大伙能进来讨Z“蟩槽”的问题</font></a>》,有一个小伙子Q对自己的代码有感情Q对人有感情Q对公司有感情,所以当公司遇到困难的时候,一旉舍不得走。这h常的事情Q居焉遭到不少人的冷嘲热讽Q和各种“善意”的劝诫?/div> <div> </div> <div>我就觉得非常奇怪,一个程序员Q如果对自己写的代码没有感情Q怎么可能写出漂亮的代码来Q同L道理Q如果一个程序员Q对自己的工作质量没有追求,又怎么可能成ؓ高水q的E序员?一个前来应聘的人,Z得到offer而写的demoQ就q种情况下,在寄Z码之间都不认认真真的查检查,q样_心大意的家伙,我怎么敢招Q?/div> <div> </div> <div>总而言之一句话Q?font color="#ff0000" size="4"><strong>对代码有感情Q对质量有追?/strong></font>”,q是成ؓ好程序员的基本前提?/div> <img src ="http://www.tkk7.com/zbw25/aggbug/53540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zbw25/" target="_blank">M、思考、生z?/a> 2006-06-18 02:23 <a href="http://www.tkk7.com/zbw25/archive/2006/06/18/53540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何写出没有bug的程序?http://www.tkk7.com/zbw25/archive/2006/06/11/51937.htmlM、思考、生z?/dc:creator>M、思考、生z?/author>Sun, 11 Jun 2006 02:34:00 GMThttp://www.tkk7.com/zbw25/archive/2006/06/11/51937.htmlhttp://www.tkk7.com/zbw25/comments/51937.htmlhttp://www.tkk7.com/zbw25/archive/2006/06/11/51937.html#Feedback10http://www.tkk7.com/zbw25/comments/commentRss/51937.htmlhttp://www.tkk7.com/zbw25/services/trackbacks/51937.html  我写了一blog叫做?a >招h不难》,很多朋友很赞同,也有的朋友不同意我的意见Q他们很怀疑:“有bug的一律不要?没有BUG的代码是不存在的...blabla?/div>
 
  正好今天又看C{贴的W话Q叫做?a >【{】从一个笑话看软g开发管?/font>》,大意是,E序员交Z自以为没有bug的代码,然后一切都变得来糟p,而程序员L会交以ؓ没有bug的代码?/div>
 
  我们今天来谈谈Q一个程序员Q什么时候可以交q代码Qƈ且可以自豪的对别Q“我的代码里面,没有bugQ”?/div>
 
  先说传统的做法,一个负责的E序员,应该在交Z码之前,自己跑好多次自己的代码,左看右看Q上看下看。直C出去的时候,没有一个h能够发现其中的问题。这L能力一般只有天才才能具备,我以?a >遇到q一?/font>。但是,如果我企图以q样的标准来招h的话Q那是在发疯,怎么q敢说“招Z䏀?
 
  说说可行的办法吧。一个程序员如果_的谦虚,时时惌明自己可能犯错,卛_犯错Q或者已l犯错。那么他׃量写出_多的TestCaseQ以便打消自q疑虑。直到所有的试用例全部通过Q屏q上昄出美丽的l色长条Q他才能信Q自q代码没有bug?/div>
 
  所以,我的判断标准Q也很简单。如果寄l我的代码,没有附带试用例Q我pp行他的程序,随意的ؕ找,扑ֈ一个我认ؓ是bug的,那就是有bug了。如果寄l我的代码,附带了够的试用例Q我只要Run一ơ,看到l条Q这一兛_是q了。~~~很简单吧?/div>
 
  也许有h会说Q那如果他的试用例很简单呢Q岂不是不能说明什么问题?怎么不能说明问题呢?首先可以说明Q这是一个会写测试用例的E序员!其次Q我会看看他的测试用例的代码Q大概覆盖了多少的功能特性。当Ӟq是更进一步的能力判断。但是至,他的代码已经达成了他自己的设计了呀?/div>
 
  所以:“有bug的一律不要”,意味着Q你最好能够自p明自己没有bugQ否则,我如果找C个bugQ你没戏了?/div>

]]>招h不难http://www.tkk7.com/zbw25/archive/2006/05/30/49027.htmlM、思考、生z?/dc:creator>M、思考、生z?/author>Tue, 30 May 2006 08:11:00 GMThttp://www.tkk7.com/zbw25/archive/2006/05/30/49027.htmlhttp://www.tkk7.com/zbw25/comments/49027.htmlhttp://www.tkk7.com/zbw25/archive/2006/05/30/49027.html#Feedback36http://www.tkk7.com/zbw25/comments/commentRss/49027.htmlhttp://www.tkk7.com/zbw25/services/trackbacks/49027.html  孟老师最q有点烦Q?a >面试了一个刚毕业大学?/font>Q结果发现那家伙一问三不知。随后的跟帖也是常见的感叹:
  “现在的大学生过于Qw?br />  “真不明白本U都在学什么?br />  q有一位台湑֐胞说Q“本來還以為只有在台灣有這種情ŞQ原來兩岸的情都相同。?/div>
 
  因此Q打写q篇blogQ介l一下我是怎么招h的。其实,招hq不难?/div>
 
  1、写招聘q告
  2、收历,初步了解背景情况Q然后让加我的MSN
  3、在MSN里,问一个问题:以下几种技术,你哪一U最熟悉Q哪一U最不熟?br />  4、你q最不熟悉的那种技术,做一个demol我Q没有时间限Ӟ要求如下Q?br />    Q首先是demo的质量,一定不能有Mbug
    Q其ơ是代码的质量,要干净Q明白,好懂?br />    Q要有创?br />    Q在功能创意与时间进度之_自行q
  5、拿C码之后,先看看能不能正常q行Q看看有没有bug?br />  6、在Google里搜索代码的关键D落Q看看有没有抄袭Q或者了解一下借鉴的程?br />  7、看他的代码Q是不是_q净Q够合理,_朴素
  8、如果一个h能够在很短的旉里,自行快速学习一U新的技术,q交够质量的代码。这L员工Q我准备要了。至于面试,无非是谈谈工资的高低意向|了?/div>
 
  q样的招人办法,要点在于Q?br />  1、我不关心他的学历,工作l验Q年龄和技术背景,因ؓ招到一个出色的员工Q他会持l的自我学习Q不断的q步?br />  2、有bug的一律不?br />  3、代码最能够说明问题Q其他一切判断都要在我看q他的代码之后。一个hQ不要玩弄聪明,不要炫耀技巧,写老老实实,q干净净的代码,合理的脓切的变量命名、方法命名、类命名Q合理而不多不的c间关系。这L代码Q就是漂亮的代码。能写出q样的代码的人,有_好的思维和品性?br />  4、快速学习的能力要比q去的工作经验更加重要,因ؓ那么多工作经验,也要有助于完成今后的工作Q才能体现出价倹{?br />  5、不抄袭Q有创意Q这L人才很难得?br />  6、有计划的实现功能,能够在功能和旉q度之间合理x。这是有大局观的人才?/div>
 
  当然Q这h人的基础是,你自q代码水^要够高。很多公司根本就没有q样的水qI只能靠笔试来判断人家的水q?/div>
 
  我工作过的公司,曄有一个小伙,他的代码Q羃q不是靠TabQ而是“按下空格键QQ代码随意后退”,他的代码Q弯弯曲Ԍ隄x。前两天Q他跟我说“我W试得了90多分Q当场拿C4.5K的Offer。”可见,W试是毫无意义的试手段?/div>
 
btwQ还有问题,q样招h效率不是很高Q也比较累,紧急招人的情况不适用。当Ӟ紧急招人的目Q通常肯定是搞不好的?/div>

]]>软g开发文档的持箋集成http://www.tkk7.com/zbw25/archive/2006/05/12/45835.htmlM、思考、生z?/dc:creator>M、思考、生z?/author>Fri, 12 May 2006 06:23:00 GMThttp://www.tkk7.com/zbw25/archive/2006/05/12/45835.htmlhttp://www.tkk7.com/zbw25/comments/45835.htmlhttp://www.tkk7.com/zbw25/archive/2006/05/12/45835.html#Feedback3http://www.tkk7.com/zbw25/comments/commentRss/45835.htmlhttp://www.tkk7.com/zbw25/services/trackbacks/45835.html  大多数程序员Q都极度痛恨写文档。Coding是愉快的Q而Write是痛苦的。有一部分原因Q其实是要归咎于E序员自w,以我的经验,很多E序员往往会“艰于表䏀,其是用“文字、图表、PPT、Word”之cȝOffice Document来表达。当Ӟq有一部分原因Q是׃很多目开发实践中Q文档的前后矛盾、Ş式主义、反复修攏V歧义重重,常常让程序员们抓狂?/div>
 
  UML是一个比较好的工P但是Q仅仅靠UMLQ是无法项目的知识描述清楚的。也有不项目组在引入了UML之后发现Q文档的工作量不但没有减,而是更多了。随着目的进展,需要维护的设计文档数量Q也更多了。也因此造成了更多的前后矛盾QŞ式主义,反复修改?/div>
 
  Ҏ的痛苦,q不在于一开始写一份文档,而在于所有写下的文档Q都必须跟随目的进展而随之变化。当我们写出来的文档多Q需要被持箋l护的文档也p多,需要反复检查文档间的可能存在的矛盾也就多Q所有扔出去的石_最后都会落回到自己头上?/div>
 
  于是Q还有不项目组Q将文档工作与代码工作截然分开Q文档就写一ơ,用来应付上面的管理层Q而代码自自的l开发。对于小型项目来_q其实是一个不错的权宜之计。但是一旦项目越来越庞大、复杂。所有的隐性的知识Q都仅仅存在于程序员的脑子里Q所有成文的东西Q都可能是错的,而真实的情况Q却隐藏在代码之中。如果代码质量再p糕一些,后来l护的朋友,遭遇火坑了?/div>
 
  文档Q写q是不写Q这是一个问题!
 
  q记得测试驱动开发吗Qؓ自己的每一个方法,每一个类Q都写出单元试来。不但如此,更加d的做法是Q在写代码之前,先写试用例。这h能保证不会忘记写试用例。更大的好处在于Q这h助于思考、有助于获得更加完善的设计,有助于写出更加高质量的代码,有助于安全的重构Q有助于自动化的持箋集成实践。MQ是好得不能再好的一开发实c?/div>
 
  q一实践之所以可行,在于他繁杂的集中的测试工作,分解为日常的Q必M断进行的工作。当你每天都在写试用例Q当你的每一个测试用例,都能够与代码完全对应Ӟ压力反而减MQ工作量也更了Q更重要的,一些优良的习惯也因此被L了?/div>
 
  在两q前Q我要开始一个全新的P2P|络电视目Ӟ也在考虑关于文档的问题。当时我发现了Open Source的WikiPedia。这是一个PHP的WIKIQ最大的应用是维基百U全书。因此,q个目的质量就l对值得信赖。我将它拿q来Q作为我们项目文档管理的工具?/div>
 
  用Wiki来管理项目文档,Z以下一些考虑Q?/div>

文档是项目的知识Q这些知识必集中管理、容易获取、h人可以编辑?

目在生长,代码在增加,文档也必能够跟随项目自然生长,划分设计阶段和开发阶D,是不可取的?

Wiki不是传统的项目文档,而是一个应交流需要,可能随时增删改的知识库。项目组的成员,遇到问题Q就应该首先查看WikiQ如果这是Wiki中没有,那么他应该找问。而那个知道答案的人,如果他不惛_今后不断的回{同一问题Q就应该把这个答案写入WikiQ这是Wiki条目增长的自然动力?

传统文档最大的问题在于费Q而Wiki通过持箋修改Q按需提供的方式,保证了所有写下的文字Q一定有过一个h需要读它?/font>

 
  在Wikipedia的基上,我又做了一些增强,以更好的辅助目的管理?/div>

Include功能Q增加include标签Q可以在一个条目中Q引入其他条目的全文Q而不是仅仅增加一个link?

文档的层ơ结构,当项目的文档条目逐渐增加Q分门别cȝ条目Q更加便于查找,也可以有效的避免条目重名的问题?

一个ClickQ就能够创徏C个条目,用于填写当天的工作安排?

  相应的管理制度,也必d立v来?/div>

每日15分钟文档制度Q基于“填写当日工作”的功能Q我规定每个目l成员,每天要花三个5分钟来写文档Q早上的5分钟Q填写当日工作计划。中午的5分钟填写上午的工作情况,下班前的5分钟Q填写下午的工作情况。这P每天的文档工作相当轻松,但是文档能够保证持箋的跟随项目成长下厅R更q一步的Q这L制度Q对于项目的q度控制Q也很有帮助?

User Case条目驱动Q所有分解出ȝUser CaseQ在分配到责Mh之后Q该责Q人的W一工作,是在Wiki中写下对于这个User Case的理解。随后项目进展,也应该持l的l护q个条目?

同时q行Bug的管理,Bug也作为Wiki中的条目Q以便于和其他条目项目引用?

每次Check In CVSӞ必须写注释。这是更加细节的文档Q然后我q做了一个小E序Q能够自动的从CVSTrac中读出当天Check In代码的注释。供每个人在写当天文档的时候引用?

  总而言之,我对于项目文档的看法Qƈ不是非此卛_的极端主义者。在我看来,好的目文档理政策Q应该有助于集中团队知识和智慧,同时不要让程序员痛苦和反感。这h叫做有效的项目管理。仿造Martin Fowler的著名文献《持l集成》,我给q篇Blog赯样一个名字《Y件开发文档的持箋集成》,希望能够引发更多的、更深入的思考?/div>

]]>拿什么来驱动你啊Q我的项目?http://www.tkk7.com/zbw25/archive/2006/04/26/43156.htmlM、思考、生z?/dc:creator>M、思考、生z?/author>Tue, 25 Apr 2006 16:32:00 GMThttp://www.tkk7.com/zbw25/archive/2006/04/26/43156.htmlhttp://www.tkk7.com/zbw25/comments/43156.htmlhttp://www.tkk7.com/zbw25/archive/2006/04/26/43156.html#Feedback31http://www.tkk7.com/zbw25/comments/commentRss/43156.htmlhttp://www.tkk7.com/zbw25/services/trackbacks/43156.html  我新到这家公司,开始了一?font color="#ff0000">M之旅
Q我们的目开发周期是3个月Qh员大概有3?个不一定。而以我的l验Q我们大概要做的Q是一??个hq的非常复杂的创新型目。新加盟的技术ȝQ是一个崇?font color="#ff0000">文档交流的“老干部”,因此Q我们花了一个月的时_在写各种各样的设计文档。真正能够用于开发的旉Q是2个月?/div>
 
  我们q个组的另外一位组员,也是一位经验丰富的目l理Q他崇尚的,?font color="#ff0000">文档UML化描q?/font>。因此,我现在除了写文档Q还要用Rational Rosed多好多的图~~~
 
  在他们两位来q个目l之前,我其实已l写Z一份基本完整的User Case列表Q而且和另外一位组员已l进入测试驱动的、结对编E阶D了。。?/div>
 
 
  大家可能已经看出来了Q这其中的开发模式,直就是؜׃堪。到底是文档驱动QUML驱动Q用例驱动?q是试驱动呢?
 
  问题q不止这些,我们的大老板比较喜欢和我们一赯计,甚至会和我们争论具体的某个算法。开发文档没有统一的管理,汇报机制没有明确的定义,目需求随旉可能变动Q就q到底我们这个小l会有几个hQ都q是一个未知数Q这LM之组Q不知各位有什么好的徏议?

 背景资料介绍完毕Q抱怨结束,下面讨论正题Q?/font>

  文档驱动、测试驱动、用例驱动、模型驱动、特征驱动。。。。他们都要解决的是什么问题?

  要回{这个问题,q真不容易。我们得问一个更加重要的问题Q真正驱动项目的Q究竟是什么呢Q我惻I应该是需求吧Q?/p>

 

  那么Q这些?font color="#0000ff">文档”、?font color="#0000ff">试”、?font color="#0000ff">用例”、?font color="#0000ff">模型”、?font color="#0000ff">特征”,I竟是什么呢Q对于需求的描述Q我们之所以不会直接用需求来驱动目开发,而是要借助工具Q来帮助我们描述需求,是因ؓ口语化的需求描q是非常模糊的,充满歧义的。所以,选择什么来驱动我们的项目,其实是要看Q以上这些工P哪一个能够更好、更准确的描q需求?

 

  文档其实是最隑և描q需求的一U方式,如果是纯文字的文档,更难。我们的技术ȝQ非常喜Ƣ读写文档,我最q也创下了一天写47|档的最新记录。但是,当我们开会的时候,我还是经帔R要提醒我们的技术ȝQ麻烦他再仔l看看文档第XX늚WXXD,以及配合着另一份文档的XX节Q来切的理解我的意思!如果没有我的解释Q他׃误解我的文档?/p>

 

  当然Q如果要写出不需要我来解释,他就能理解的文档Q那么文档的工作量,会极其惊hQ我以前写过一blogQ?span>Jacobson博士演讲观后?/font>》是我对UP的创始h的极度反感的集中体现。GHawkQ以及交大林老师的所谓“UP”的观点Q当然不可能获得我的赞同。在GHawk的最CblogQ?a href="/ghawk/archive/2006/04/25/43027.html">UP & XP之争Q意义何在?(l?》中QGHawk_“唯一的问题是Q“如何确保测试用例的质量”。显Ӟ我们不能把一把不直的子度量出来的结果作为可靠的参考依据。怎么解决呢?“结对编E”么Q嗯Q这是一个不错的方式Q那么最l该信赖谁呢Q是Pair中的Aq是B呢?或者,是Leader么?那么又是谁提出的要求呢?是老板么?q是客户Q政府?法规Q市场?……问题没有终l了。?/p>

 

  由此我可以推断,他对于XP的认识,基本上是停留在猜的阶段。对于这blog的观点,我就不逐一反驳了,我的猜测是,他经历过一ơ失败的XP试Q而究其原因,我猜是因ؓ他们那个所谓的XP Team中,没有一个hQ曾l实践过一ơ正规的XP开发?/p>

 

  再来看模型驱动,q中间有一个大问题Q因为需求是“问题域”的范畴Q而模型,则是“解{域”的范畴Q试N过解答域的_描述Q来实现对于需求的准确描述Q肯定不靠谱啊?/p>

 

  特征驱动Q我认ؓFDD其实是老方法的新名词,具体的实践,可能更加接近试、P代式的过E。了解不q,所以我也不打算多说?/p>

 

  用例驱动与测试驱动,其实我认是一个硬币的两面Q用例要快的翻译ؓ试用例Q而测试用例,正是Z更加准确的表q需求用例。这是我能够惛_的,驱动目开发的Q最好的ҎQ?/p>

]]>代码质量与文档质?/title><link>http://www.tkk7.com/zbw25/archive/2006/04/22/42544.html</link><dc:creator>M、思考、生z?/dc:creator><author>M、思考、生z?/author><pubDate>Sat, 22 Apr 2006 13:35:00 GMT</pubDate><guid>http://www.tkk7.com/zbw25/archive/2006/04/22/42544.html</guid><wfw:comment>http://www.tkk7.com/zbw25/comments/42544.html</wfw:comment><comments>http://www.tkk7.com/zbw25/archive/2006/04/22/42544.html#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://www.tkk7.com/zbw25/comments/commentRss/42544.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zbw25/services/trackbacks/42544.html</trackback:ping><description><![CDATA[ <div>  几段在脑子里盘旋了很久的话:</div> <div> </div> <div>  带一个项目,要保证项目的质量Q当然要靠Team Leader的水q뀂那么,什么才是最重要的项目质量呢Q当然是代码质量Q一个Y仉目,最重要的品当然是代码Q?/div> <div> </div> <div>  如果q个Leader看不懂项目的代码Q他只能通过要求文档的质量,来间接的控制代码的质量。一个能够看得懂代码的LeaderQ他p够直接控制代码质量。而能够直接控制代码质量的LeaderQ对于文档的要求Q会合理很多?/div> <div> </div> <div>  直接控制与间接控Ӟ哪一个更加有效,是不a而喻的。当Ӟ那些没有代码阅读能力的LeaderQ他们会更加文档的重要性,甚至舍本逐末Q认为文档质量才是项目质量的体现。进而变态地q求文档完美Q以至于费了程序员写代码的旉。这LLeaderQ根本就不可能管好项目的?/div> <div> </div> <div>  公司往往会出于恐慌,向员工要求很多详的文档Q主要是Z防止员工职带来的损失。而问题在于,公司的主要努力,应该用于留住员工Q而不是用于加强“善后能力”。更不是Z增强善后能力Q搞得员工越发想dq家公司?/div> <div> </div> <div>btw:</div> <div> </div> <div>补记一D交锋对话:</div> <div>?a href="/zbw25/archive/2006/01/14/28019.aspx"><font color="#003300">软g开发项目中的成本比?/font></a>》是我以前写的一blogQ有一个GHawk有这么一D늕aQ?/div> <div> </div> <div> <font color="#0000ff">UP和Agile都是工程q程实践的ȝQ林德嘪先生说过“UP是正PXP是草书。先学好了UPQ才能学好XPQ先学XP再学UP׃乱套。?<br />Agile的是“代码是真正有h值的东西。”这同样也是实践的结果。二位对于过E有不同的看法ƈ不能说明孰是孰非Q这只是在不同的实践内容和阶D上的ȝ。在q程的选用问题上,只有不断地实跉|是前q的方向。?/font> </div> <div> </div> <div>另外<a href="/ghawk/archive/2006/03/01/33025.html"><font color="#003300">q有一blog</font></a>Q专门讨句话?/div> <div> </div> <div>我的回答是:</div> <div> </div> <div> <font color="#0000ff">林d彰的说法Q是一个在校教师,典型的和E泥的说法Q我不同意?/font> </div> <div> </div> <div>没想C天有一个朋友WANG回了一帖:</div> <div> </div> <div> <font color="#0000ff">老林是在校教师?你应该去看一下h家在国打拼的经验~~  </font> </div> <div> </div> <div>我的回复是:</div> <div> <font color="#0000ff">他在国打拼怎么了?q有好多土生土长的美国hQ也不鸟那什么UP呢? <br />我ؓ什么要听一个v龟来上课呢? <br />q年_龟q不够多吗?<br /><br /></font> <font color="#000000">另外对GHawk多说一句话Q让l员快速磨合的最好办法,是结对编E,而不是大家埋头写文档?/font> </div> <img src ="http://www.tkk7.com/zbw25/aggbug/42544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zbw25/" target="_blank">M、思考、生z?/a> 2006-04-22 21:35 <a href="http://www.tkk7.com/zbw25/archive/2006/04/22/42544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP应该是老板的最爱,而不是程序员的首?/title><link>http://www.tkk7.com/zbw25/archive/2006/04/18/41552.html</link><dc:creator>M、思考、生z?/dc:creator><author>M、思考、生z?/author><pubDate>Mon, 17 Apr 2006 22:44:00 GMT</pubDate><guid>http://www.tkk7.com/zbw25/archive/2006/04/18/41552.html</guid><wfw:comment>http://www.tkk7.com/zbw25/comments/41552.html</wfw:comment><comments>http://www.tkk7.com/zbw25/archive/2006/04/18/41552.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.tkk7.com/zbw25/comments/commentRss/41552.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/zbw25/services/trackbacks/41552.html</trackback:ping><description><![CDATA[ <span id="BlogViewId"> <div>  我们现在q个公司的大老板Q^时在三楼办公。但是,每天都会有几ơ,他会在我们的办公室里走来走去——“进行着聊胜于无的监督工作”?/div> <div> </div> <div>  我想Q他大概没有听说q“XP”、“结对编E”这L名词?/div> <div> </div> <div>  4?5日,周六Q我参加了BEA上vUser Group的一ơ活动。北京来的CharlsQ做了一ơ非常精彩的演讲。名字叫做《一个Xper的心路历E》。全场笑C断,Charls的感染力征服了每一个h?br /></div> <div>  演讲最后提出的一个观ҎQ“成Z个XperQ就是成Z个合格的E序员”。要勇于暴露自己的不I要善于沟通,要谦虚,要有计划Q要……做Cq些Q我们才是“刚刚够格”?/div> <div> </div> <div>  我基本上已经被说服了……在Charls演讲l束的时候,我只想问一个小问题。因Z_在项目组里,如果有h遇到问题Q不要自己偷h? 的Google搞定Q而是应该马上“D手”,看看组里有没有够马上告诉你{案。这才是“勇于暴露自q不”。而我q想从另外一个角度问一下?/div> <div> </div> <div>  Q以下对话是一个大概的回忆Q?/div> <div> </div> <div>  “我一直以来的工作方式是这LQ遇到问题的时候,首先Google一下,q样我不但可以找到当前这个问题的{案Q还能够了解很多周边的知识,触类旁通。如果直接问人的话,问题解决Q我也就不再深入了。这h不是对于个h能力成长不太有利呀。?/div> <div>  CharlsQ“项目进度在那里Q当然是马上解决问题最好。?/div> <div>  我:“那么我们是不是可以q么理解QXP对于目开发的目标很有效,而对于程序员个h能力的成长目标,不是很有效??/div> <div>  CharlsQ“我一直这么说QXP更加高的剥削方式……?/div> <div> </div> <div>  时Q我豁然开朗。XP的好处,从老板的角度来看,应该更多Q?/div> <div> </div> <div>  l对~程——最有效的相互监督机?br />  l对~程——最有效的内部培训机?br />  试驱动开发——最有效的质量保证体p?br />  User StoryQ客L场办公——最低成本的需求收集、分析机?br />  每日集成——有效降低集成、测试成?br />  …?</div> <div>  从程序员的角度来_q些“与我何qy呢Q?/div> <div> <br />  所以,一个追求利润最大化的老板Q就应该选择XPQ而一个聪明的老板Q不但要q用XPQ还要保?时工作Ӟ甚至l员?0%? On Beach旉(来源于Gigix对于ThroughWorks的介l?。这h能保持员工的可持l编E能力。如果我是老板的话Q我׃q么qԌ<br />  那天讨论的话题中Q还有一些XP没能够很好回{的问题Q?br />  比如文档。在我以前的开发实践中Q我们都建立了一个WikiQƈ且强制程序员每h每天Wiki几次Q以分散写文档的压力?br />  比如对于人员的高要求的疑问。我的理解是QXP对h员提Z很高的要求,但是同时也提供了最有效的h员培训机Ӟl对~程Q,所以,对于入职人员的要求,q不需要很高,更多的是考察一个h的沟通能力、学习能力,而不是开发的能力?/div> </span> <img src ="http://www.tkk7.com/zbw25/aggbug/41552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/zbw25/" target="_blank">M、思考、生z?/a> 2006-04-18 06:44 <a href="http://www.tkk7.com/zbw25/archive/2006/04/18/41552.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://youkabaitiao.com" target="_blank">ŷͬgvվۿ</a>| <a href="http://szyujiaxing.com" target="_blank">ѹۿƵ</a>| <a href="http://hbqueena.com" target="_blank">ëƬ18ŮëƬ96</a>| <a href="http://38miao.com" target="_blank">Ƶѹۿ</a>| <a href="http://dyk7.com" target="_blank">һëƬѹۿ</a>| <a href="http://gttest5.com" target="_blank">A߹ۿ</a>| <a href="http://vankiz.com" target="_blank">99߹ۿƵ</a>| <a href="http://mt569.com" target="_blank">ҹҹþ</a>| <a href="http://ghdc5.com" target="_blank">뾫ƷAVӰ</a>| <a href="http://avqvod.com" target="_blank">Ůʮ·Ůbbw</a>| <a href="http://xamxx.com" target="_blank">ҹ߹ۿ</a>| <a href="http://gepuw.com" target="_blank">ۺƵ</a>| <a href="http://worldbiao.com" target="_blank">Ƶ</a>| <a href="http://mangaou.com" target="_blank">þþþƷѹĻ</a>| <a href="http://zg8k.com" target="_blank">ƷպAV</a>| <a href="http://shulan88.com" target="_blank">þòþüӰԺ</a>| <a href="http://13813855.com" target="_blank">þ޾Ʒgv</a>| <a href="http://zhidianzh.com" target="_blank">ëƬavպav</a>| <a href="http://jlzjjy.com" target="_blank">һ</a>| <a href="http://www4438xx2.com" target="_blank">޳ѵӰ</a>| <a href="http://vvbbn.com" target="_blank">ƷۺһƵ</a>| <a href="http://fholaer.com" target="_blank">߲ŹƵ</a>| <a href="http://cijishiye.com" target="_blank">þһ</a>| <a href="http://cqtjqcc.com" target="_blank">ĻƵ</a>| <a href="http://yinyinai155.com" target="_blank">AVһӰ</a>| <a href="http://53reniao.com" target="_blank">޾ƷۺϾþһ</a>| <a href="http://zisewang.com" target="_blank">˾69ƷƵ</a>| <a href="http://www779rr.com" target="_blank">һ߹ۿƵ</a>| <a href="http://wwwhaole10.com" target="_blank">www.91</a>| <a href="http://ksyanhui.com" target="_blank">9277ֻƵۿ</a>| <a href="http://038037.com" target="_blank">Ҹ24p</a>| <a href="http://ddhlj.com" target="_blank">Ļ߹ۿ</a>| <a href="http://234an.com" target="_blank">99ee6ȾþѾƷ6</a>| <a href="http://vv848.com" target="_blank">AVר߹ۿ</a>| <a href="http://txtmp3.com" target="_blank">͵͵͵ɫ</a>| <a href="http://53reniao.com" target="_blank">ֱѹۿ</a>| <a href="http://zz4466.com" target="_blank">ƷƵ</a>| <a href="http://xx2015.com" target="_blank">޹av</a>| <a href="http://18jko.com" target="_blank">ۺϾþϵ</a>| <a href="http://maomaots.com" target="_blank">ѻɫëƬƵ</a>| <a href="http://nblfkj.com" target="_blank">þùƷ2020m3u8</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>