ï»?!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 长春富尔¿U‘技有限公司 软äšg开发的关键是äh才:保持好的心æ€?/TITLE> <META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK rel=stylesheet type=text/css href="css1.css"> <META name=GENERATOR content="MSHTML 8.00.7600.16821"><meta http-equiv="Cache-Control" content="no-transform" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> </head> <BODY leftMargin=0 topMargin=0 bgColor=#ffffff text=#000000 marginheight="0" marginwidth="0"> <div style="position:fixed;left:-9000px;top:-9000px;"></div> <TABLE border=0 cellSpacing=0 cellPadding=0 width=979 align=center> <TBODY> <TR> <TD width=979><IFRAME height=117 marginHeight=0 src="ct01/iframe01.htm" frameBorder=0 width=979 marginWidth=0 scrolling=no></IFRAME></TD></TR> <TR> <TD> <TABLE border=0 cellSpacing=0 cellPadding=0 width=979> <TBODY> <TR> <TD height=70 vAlign=top background=menu_t4.jpg> <TABLE border=0 width=476 height=24> <TBODY> <TR> <TD width=16> </TD> <TD width=450><FONT color=#ffffff>首页 > 软äšg开发的关键是äh才:保持好的心æ€?/FONT></TD></TR></TBODY></TABLE></TD></TR> <TR> <TD height=5></TD></TR> <TR> <TD height=50> <TABLE border=0 cellSpacing=0 cellPadding=0 width=979> <TBODY> <TR> <TD vAlign=top width=763> <BR><DIV align=center><FONT size=3><B>软äšg开发的关键是äh才:保持好的心æ€?</B></FONT></DIV> <BR>    ½Ž¡ç†å¥½èÊY件开发团队本íw«æ˜¯ä¸€ä»‰™žå¸¸æœ‰æŒ‘战的事情。由于文化上存在差异、语­a€ä¸Šå­˜åœ¨éšœ¼„ï¼Œæ²Ÿé€šæ–¹å¼ä¹Ÿä¼šæœ‰æ‰€ä¸åŒåQŒç®¡ç†è€…会面äÍ着™å¹ç›®å¤±æŽ§çš„危险。这里分享了当今最成功的项目管理技巧,来帮助分布式软äšg开发团队保驾护航,成功½Ž¡ç†å¥½é¡¹ç›®ã€?BR> <BR><DIV <FONT size=2><B>    æŠ€å·§ä¸€åQšä¸è¦åå•¬èŠ±é’±ï¼Œäººæ‰æ˜¯å…³é”?/B></FONT></DIV> <BR>    åˆ†å¸ƒå¼å¼€å‘面临着许多挑战åQŒåƈ不见得成本会低多ž®‘。但如果你能搞定的话åQŒä¸½Ž¡å“ªé‡Œï¼Œåªè¦èƒ½æŒ–掘到一些顶ž®–äh才,那么优势ž®±æ— ä¸Žäëu比了。毕竟,我们没办法保证每一个优¿U€çš„èÊY件公司开发者都能出现在办公åŒ?0英里内,但如果你能汇聚不同地方的开发äh员,有效的管理他们,那么你的人才储备池就ä»ÖM½ æ¥å·®é£äº†ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§äºŒåQ?工欲善其事必先利其器</B></FONT></DIV> <BR>    é¦–先最重要的事情是要确保你的工å…äh”¯æŒåˆ†å¸ƒå¼å¼€å‘,而且要鼓励大家来使用它。确保全球范围内都有权限讉K—®åˆ°æ¯ä¸€ä»½æ–‡æ¡£ã€æºä»£ç æ–‡äšg、以及有相应的处理操作。这个说èµäh¥å®ÒŽ˜“åQŒåšèµäh¥éš¾ã€‚要实现利用˜q™äº›å·¥å…·æ¥è¿œ½E‹åŠžå…¬ï¼Œä½ ä¸€å®šä¼šè¢«è¿™¿Uéš¾åº¦å¤§åƒä¸€æƒŠã€‚在安™‡Œå·¥ä½œåQŒæµ‹è¯•å·¥å…·å’Œ‹¹ç¨‹ã€æ£€æŸ¥ä»£ç ã€éƒ¨¾|²ç­‰½{‰ã€‚有äº?集成工具可以用来探测一些连¾l­ç”Ÿæˆçš„错误åQŒå¦‚果你团队的每位èÊY件开发äh员此旉™ƒ½åœ¨åŠžå…¬ï¼Œé‚£å°±æœ€å¥½äº†ã€‚但最为关键是在不同时区的软äšg开发äh员具体的工作旉™—´åQŒæ²¡æœ‰äh 愿意看到有äh会åšg˜qŸæ£€æŸ¥é”™è¯¯ä»£ç ã€‚这里强力推荐Jenkins åQˆaka HudsonåQ‰ã€CruiseControlåQ?以及Bamboo˜q™ä¸‰‹Æ‘Ö¼€å‘å·¥å…øP¼Œå®ƒä»¬å¯èƒ½ä¼šæ˜¯ä½ çš„救星ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§ä¸‰åQšä¿æŒå¼€æºçš„心æ€?/B></FONT></DIV> <BR>    æ–°å¾ä¸€ä¸ªé¡¹ç›®æˆ–者子™å¹ç›®ã€‚ä¼ ¾lŸçš„™å¹ç›®å¾ˆéš¾æ‹†åˆ†æˆå­™å¹ç›®æ¥é€‚应分布式开发。但是新™å¹ç›®ä¼šæä¾›ä¸€äº›æœºä¼šï¼Œè®©ä½ å……分利用一些工å…øP¼Œ˜q™äº›å·¥å…·åº”用åˆîCº†åˆ†å¸ƒå¼æ–¹æ³•ã€‚比如,在低版本¾pȝ»ŸåQŒæ¯”如CVS¾~ºå°‘一个分布式版本控制模型åQŒè€Œåˆ†å¸ƒå¼ç‰ˆæœ¬æŽ§åˆ¶¾pȝ»ŸGitHubã€?Mercurial以及LaunchpadåQŒå®ƒä»¬å¯ä»¥å‘ˆçŽîC¸€ä¸ªåˆ†å¸ƒå¼çŽ¯å¢ƒã€‚我们致力于提供一个开源的合作水åã^åQŒå³ä½¿ä½ çš„项目不会开源,但我们需要保持一ä¸?开源的心态,鼓励更多的äh来参与,我们˜q˜é¼“励大家开发更多的模块åQŒæä¾›æ›´å¤šçš„åŸÞZºŽAPI的方法,˜q™ä¼šè®©èÊY件开发äh员驾è½Õd°±ç†Ÿï¼Œæ²¡å¿…要全面了解系¾lŸçš„¾l†èŠ‚åQŒå°±å¯ä»¥å¼€å‘一个项目ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§å››åQšä¿æŒä¿¡æ¯çš„透明åŒ?/B></FONT></DIV> <BR>    å¯¹äºŽåˆ†å¸ƒå¼å¼€å‘环境,前期的需求收集和验证臛_…³é‡è¦ã€‚否则,时区上的差异、语­a€ä¸Šçš„差别、功能上的不同会造成分布式项目在˜qè¡Œ˜q‡ç¨‹ä¸­çš„风险åQŒå¼›»é¢„ 期的规划。书面上的沟通常å¸æ€¼šæ¯”口头上的表辑֏–得更好的效果。在团队中确定合适的人选,能够提供定期的书面项目更斎ͼŒæ ‡ç¤º™å¹ç›®çš„进展和问题。当ç„Óž¼Œ˜q™é‡Œæˆ?们觉得更新频率比å…Ïx³¨æ•°é‡æ›´é‡è¦ã€‚记住,要想帮助大家适应分布式开发,ž®Þp¦ä¿æŒ™å¹ç›®çš„透明化,而即使要保持ž®å¹…度的公开åQŒéƒ½éœ€è¦èŠ±å¾ˆå¤šçš„精力ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§äº”åQšåˆé€‚的数量是最好的</B></FONT></DIV> <BR>    â€œLagom är bäst”是瑞典的常用表辑ּåQŒæ„æ€æ˜¯â€œåˆé€‚的数量是最好的。”我们会把这个术语用在MySQL上,来确保模块化。每个项目或者团队都有不同的需求,而一 个项目越­‘‹å‘于模块化åQŒé‚£ä¹ˆå°±­‘Šå®¹æ˜“组¾l‡å›¢é˜Ÿã€‚在¾l„徏团队æ—Óž¼Œéœ€è¦è€ƒè™‘不同的技能和时区差异½{‰å› ç´ ã€‚如果说距离是一个挑战,那么时区ž®±æ˜¯æ€æ‰‹äº†ã€‚如果说团队中成员所处的地理位置在时åŒÞZ¸Šç›”Rš”4个多ž®æ—¶åQŒé‚£ä¹ˆè¦æƒ›_®‰æŽ’大家同时在¾U¿ï¼Œž®Þq›¸å½“麻烦。羃短开发与‹¹‹è¯•çš„整合周期,有利于及早发现问题。拖延的话,后箋 解决ž®×ƒ¼šå¾ˆæ£˜æ‰‹ã€‚那么整个周期到底要多短呢?“Lagom är bäst”(合适是最好的åQ‰ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§å…­åQ?选择最好的沟通工å…?/B></FONT></DIV> <BR>    åœ¨ZendeskåQŒæˆ‘们把Trelio和Pivotal Tracker当成Kanban面板åQŒæ¥ä¿ƒè¿›æ²Ÿé€šï¼Œæˆ‘们˜q˜ä¼šä½¿ç”¨åˆîC¸€¾pÕdˆ—的室内沟通渠道:IRC、Yammer、Flowdock˜q˜æœ‰Ryppleã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§ä¸ƒåQ?¾l„徏ž®è§„模的团队</B></FONT></DIV> <BR>    ž®½é‡¾l„徏ž®è§„模的团队åQŒè¿™æ ·ä½ å¯ä»¥æ¯å¤©èŠ?5分钟开会。小规模的团队有利于你培养è“v更好的团队意识和责ä“Q感。对于跨时区的团队而言åQŒè¦¼‹®ä¿å¤§å®¶èƒ½å¤Ÿç›æ€º’沟通:利用一些工å…äh¯”如Skype来聊天。作ä¸ÞZ¸€ä¸ªå›¢é˜Ÿçš„¾lç†åQŒè¦æä¾›ž®½å¯èƒ½å¤šçš„渠道来预团队成员保持联¾p»ï¼Œ˜q™æ ·ž®×ƒ¹Ÿå¯ä»¥æ¶ˆé™¤å¼€å‘者联¾pÖM¸åˆîC½ çš„风 险ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§å…«åQšæ²Ÿé€šã€æ²Ÿé€šã€å†æ²Ÿé€?/B></FONT></DIV> <BR>    è½¯äšg开发者往往会面对各¿Uå„æ ïLš„问题。比如最˜q‘的预算甌™¯·å¤‡æœ‰è¢«æ‰¹å‡†ï¼Œèµ„源没办法得到。遇到这¿Uæƒ…况,最好的解药ž®±æ˜¯è¦å‹¤äºŽæ²Ÿé€šã€‚作ä¸ÞZ¸€åç»ç†ï¼Œä½ åº”è¯?èŠ×ƒ¸€åŠçš„æ—‰™—´åœ¨æ²Ÿé€šä¸ŠåQŒæ— è®ºæ˜¯å›¢é˜Ÿæ²Ÿé€šï¼Œ˜q˜æ˜¯ä¸€å¯¹ä¸€çš„沟通。每天接触团队中不同的开发成员,把脉整个团队的动向,要提前意识到问题的存在。每两周可以花部 分时间来演示软äšgåQŒé¼“励开发äh员跟˜q›å·¥ä½œè¿›åº¦ï¼Œ¾~©çŸ­å¼€å‘、测试的整合周期。VNC之类的工具可以让软äšg开发äh员快速预览到你目前的工作动态ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§ä¹åQ?信息¾_„¡¡®</B></FONT></DIV> <BR>    ½Ž¡ç†è·¨æ—¶åŒºçš„最大挑战是沟通上的åšg˜qŸé€ æˆäº†è¯¯è§£ã€‚我们正在讨论那个BugåQŸå‘生了什么事情?什么模块?实时沟通可以羃短åšg˜qŸæ—¶é—ß_¼Œè§£å†³˜q™äº›é—®é¢˜ã€‚ä½  需要达到军事精¼‹®æ°´òq³çš„沟通。确保涵盖所有相关的信息åQŒåŒ…括Bug的序列号、JIRA旉™—´æˆ–者客户号½{‰ã€‚不要假设接受者能收到所有的必要信息åQŒå¦‚果不太放 心,可以打电话来实时解决˜q™ä¸ªé—®é¢˜ã€? <BR><BR><DIV <FONT size=2><B>    æŠ€å·§ååQ?æ¶ëŠ›–信息全面</B></FONT></DIV> <BR>    ä¸ç®¡å›¢é˜Ÿçš„成员是分散各地˜q˜æ˜¯æ±‡èšä¸€å ‚,最为关键的指标是要保持高度可见åQŒä¸½Ž¡æ˜¯é€šè¿‡å¤§å±òq•çš„昄¡¤ºå™¨è¿˜æ˜¯é€šè¿‡Web讉K—®ã€‚包括Bug的数量、部¾|²çŠ¶æ€ã€æœåŠ¡å™¨çš„负载、查询性能½{‰ï¼Œåªè¦å¯¹å¼€å‘者有用的信息ã€? <BR>    æ€ÖM¹‹åQŒæ— è®ø™ín处何圎ͼŒä½œäؓ一个分布式团队的领å¯ÆD€…,希望˜q™åä¸ªæŠ€å·§èƒ½ä¸ºæ‚¨ä¿é©¾æŠ¤èˆªåQŒè®©æ‚¨åœ¨™å¹ç›®½Ž¡ç†ä¸Šå¦‚鱼得水ã€? <BR><BR> </TD> <TD vAlign=top width=210><IMG src="r03a.jpg" width=207 height=492> </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR> <TR> <TD><IFRAME height=57 marginHeight=0 src="ct01/iframe02.htm" frameBorder=0 width=979 marginWidth=0 scrolling=no></IFRAME></TD></TR></TBODY></TABLE> <a href="http://www.vf81va.com/">³¬Åö97ÈËÈËÄ£ÈËÈËˬÈËÈ˺°_Å·ÃÀ97¾Ã¾ÃÈËÈËÄ£ÈËÈËˬÈËÈ˺°_¹ú²ú³¬ÅöÈËÈËÄ£ÈËÈËˬÈËÈ˺°</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></HTML>