??xml version="1.0" encoding="utf-8" standalone="yes"?>今天是日本的休息日,我在值班Q顺便接着q行目反省。今天说说敏捷开发吧?/h4>
在项目之初,曾想到在目里面导入敏捷开发的一些好的实践,但是仔细分析了一下,目l的成员大多在经验上q不是很丰富Q硬要上敏捷的话Q会得不偿失。考虑来考虑去,q是一点点来。先?#8220;看得?#8221;做v。所?#8220;看得?#8221;是让Q何需要管理的东西Q要让大安看得见,cM于丰田的看板理Q反q来_M看不见的东西都是无法理的。这个现在在日本是一个很行的管理理c特点就是简单实用?/h4>
我们的实践如?/h4>
1Q让每天的工作内容看得见。每天早上来Q大家围在白板前开一个短会。根据日E表把各自今天要完成的内容写在白板上Q按人名分类Q按优先U排序。每一Q务前面标志一个叉Q表C没完成。会开完后使用白板自带得打印机打印出来Q用石_在一个大安能看到的位置?br />
q样做的好处是Q各自的每天的Q务明,信息׃nQ每个h今天需要看什么谁都知道,同时也有利于Leader的管理?/h4>
2Q频J沟通。对照白板的内容Q对每个人的工作我会每天询问两次。中午一ơ,下午4点一ơ。中午那ơ主要询问有没有什么问题,对于完成qg工作的一些想法的交换Q下?点主要就是询问进度了。这两次的目的是不同的,中午的那ơ,主要是通过x交换Q我们一h保证我们做的是正的事情同时采用了正的Ҏ。下午那ơ,是ؓ了调配各自的d量,让工作已l完成的l员d助工作还没有完成或者有问题的组员。有的h可能会想Q别人的工作Z么让我去做。在目之初我就了,我们是一个团队,一个h的工作没完成Q等于我们大家的工作都没完成Q项目无Z么地方出了问题,都是我们大家的问题。还好,我的l员在这一点上执行的非常好?/h4>
3Q设计程序先x试。测试先行,估计好多人都在实践了Q不q说实话Q我个h觉得实践h不是那么单。所以就采取了一个折L做法。我要求l员设计E序之前Q不需要写试E序Q但是一定要先想如何试。大家一赯论或者Review一U技术方案的时候,负责审核的一斚w会强调,先考虑能不能测试,怎么试。我的想法是无法试的程序也是没有意义的,因ؓ谁也不知道它正确与否。知道怎么试了,E序写v来就快多了。这是我们的体会?/h4>
4Q制作工具不h。项目的前期Q我们就考虑到需要一U模仿用户下订单的工兗在研究完业务之后我们就做了q么一个工Pp了一些时_但是事实证明Q这个工具非常的有用Q无论是后来的功能上的测试还是负载测试,q个工具都vC很大的作用。所以,在项目前期,工作不是很忙得时候,做一些以后会用到的工h非常好的一个实c关键就看能不能不偷懒了?/h4>
5Q定期ȝ。定期我们会ȝ一些前期的工作Q采取Keep,Try,Problem分类的方式。同h写在白板上。Keep的内Ҏ需要l坚持的QTry是对一些问题的解决ҎQ需要下一阶段实行q证其效果的,Problem是存在的问题Q需要改q。定期ȝ的作用就是强行将我们从程序堆里面拽出来,重新审视我们的工作。我对组员的要求是不仅要会写E序Q更要会工作?/h4>
敏捷不是理论Q是各种各样的实c最重要的是Q这些实践都适用于自己?/h4>
本项目是一个金融项目,基本上要求一?天每?4时不停Q既要保证普通客L交易的顺利进行,也要保证寚w行交易的利q行。系l一天的负蝲q是比较均衡的,同时也是比较高的Q需要一直从银行接收外汇牌hQ同时要把这些h格经q加工发送给PC画面?/span>
目所采用的技术语a是这LQPC用的画面使用AJAX,手机画面使用PHP,q接部分使用JavaQRMIQ,q些都没太大问题。问题在核心业务处理部分。客L有一个VB做的处理pȝQ客Lx是核心业务部分不做重新开发经q简单接口修改之后直接用。我们讨得Java和VB之间的通信实现h虽然可能Q但是VB不适合做这U高负蝲pȝ的核心业务处理,不如用Java重新写,同时我们也预惛_了以后可能会发生内存Q线E处理等一pd问题。(非常不幸Q这个预惛_来成了现实)
但是Q经q项目负责h和客户在一赯Z后,军_使用客户的方案。理由很单,成本控制。在客户可以承受的成本限度内Q这个方案是唯一可行的?/span>
我们也曾l把提高pȝ可用性的期望攑֜服务器架构的加强上。可惜,成本军_一切。这L一个金融项目不采用集群来保证系l的可用性是我一直到现在都耿耿于怀的?/span>
之后出现的一些问题都让我很后悔当初没有坚持让客户再稍微付ZҎ本,即再增加一台服务器也会让项目有很大改观?/span>
qg事情l我的教训是一定要有勇气去跟客戯行项目上的讨论甚x争论。最重要的是要用客户所能理解的语言采用某U技术的利弊阐述清楚。同时要弄清楚客h兛_的是什么,自q视角首先和客L视角调整C_然后l箋延Q在相同的视角下l箋按照自己的想法去q行?br /> 描述的比较抽象,单说来就是一要站在客L虑问题Q二是要学会在客L利益和技术架构之间保持^衡?br />
使用
Google
的这个服务,
可以喜Ƣ的新闻|站的新闻都集中C个画面里面?/span>
可以从这里检?/span>
GMAIL
的邮情c?/span>
可以理自己?/span>
TODO.
可以昄日历和时间?/span>
q有好多Q自p没有一个一个试?/span>
不过内容集中的太多,反而会昑־凌ؕQ所以,q是单点好?/span>
我用的是日文?/span>
Google
Q配|完个h门户功能后,打开搜烦引擎后,画面如下
往里面q加内容的画面如?/span>
来到日本Q我dƢ去日本的书店,因ؓM个国家的书店看看Q就会大致了解这个国家的国民的素质和文化?/span>
工作的需要,最l常去计机书籍区域看看Q除了看看有没有自己需要的书之外,更多的是了解日本?/span>
IT
技术的现状和发展趋ѝ?/span>
q次主要客观的以介绍书籍ZQ以后会谈谈我对日本
IT
业的认识?/span>
我想分ؓ两个部分来讲Q书c和杂志?/span>
先说说书c。日本的计算Zc特点如?/span>
1Q?font face="Times New Roman">
Ҏ技术的反应比较敏捷?/span>
感触最q是我刚来日本的时候,那个时候,国内q没有一?/span>
Struts
的书c,大家看的都是电子文档。而来到日本一看,书架上摆?/span>
不下
10
U有?/span>
Struts
的书c。现在也是一P
Spring,Hibernate
Q?/span>
Ruby
{书c的出版Q日本都比国内要早一些?/span>
2Q?font face="Times New Roman">
单易懂?/span>
q是日本的计机书籍l我的最主要的印象,也是我喜Ƣ读日本计算Zc的主要原因。我总认为,如果真的掌握了一U技术或者知识,你就会用最单易懂的语言和方式让别h也明白。在国内念大学的时候,曄在学校的图书馆看C本日本h写的介绍机器ZQ当时丰富的囄和简单得说明Q就深深地吸引了我。日本的计算Zc作者基本上都是各个大公司的资深技术h员,他们写的书,单易懂,很少有书c是长篇大论的,基本上每本书里面都有大量的图表和例子Q让Z看就懂,而且作ؓ技术h员,他们知道读者最需要哪斚w的知识,在哪斚w会容易迷惑,会犯错误Q这些都在书c里面作为重Ҏ所体现。同Ӟ通过_的彩色排版印P让读者读h更舒服。最q买了一本介l?/span>
HTML,CSS
?/span>
javaScript
的书Q它通过面颜色的差别就能让你轻杄道一?/span>
Tag
都被哪些览器支持?/span>
3Q?font face="Times New Roman">
外文书籍,译q来的书c质量高?/span>
普通的日本的书店里面基本看不到cM于国内的影印版的
IT
书籍Q这里面很大的原因我x日本人的p水^比较低,他们直接读英文的书籍比较费劲Q另一个原因就是他们日本h自己写的书,已经_他们获取自己需要的知识了。外文的书籍Q只能在大型的书店里面找刎ͼ而且都是原版Q比普通的日本书要贵很多。日本也有很多翻译过来的书籍Q但是与国内比较Q普遍水q高,我注意到Q译者也都是一些大公司的资深技术h员,像日?/span>
IBM
的资深架构师{等。我高兴的是Q最q国内书c的译水^也显著提高,前一阵回国,C一?/span>
JavaEye
译的那本众所周知的经典,读v来还是感觉很好的Q另?/span>
Ajax In Action
译的也不错。都是明白技术的人翻译的Q感觉就是不一栗?/span>
4Q?font face="Times New Roman">
购书方式单便捗?/span>
在日本买书,除了书店之外Q就是通过购书|站Q主要的是日本的亚马逊,基本上今天网上订购后Q后天就能收CQ付ƾ方式多U多P有货Cƾ,有信用卡l算{等。这些都跟日本的个h信用理和物的发达分不开的?/span>
5Q?font face="Times New Roman">
涉及的领域更q泛
日本?/span>
IT
书籍涉及的技术领域跟国内基本差不多,但是在领域知识和技术h员的教育斚wQ日本的书籍要丰富的多。在计算Zc里面,领域知识是一个很大的部分Q这部分书籍主要讲解的是作ؓ技术h员应该掌握的领域知识Q具体来说包括金融,会计Q物等{。而国内鲜有这斚w的书c,在日本,一个合格的
SE
必须是要具备相当的业务知识的Q业务知识的核心Q就是会计,好多日本的技术h员都有会计三U的资格证明。同Ӟ日本人的观念里面Q不懂业务就不会做出令客h意的软g的,q一点的认识上,国内和日本还是有一定的差别的。在技术h员的教育斚wQ有很多讲解一个技术h员应该如何工作,如何学习新技术,如何增强自己的沟通能力的书。(我写q的E序员能力的q蝲也是来自于这U书c,可惜那本书借给朋友了,q回来后以后会l写下去Q。我惛_果中国也多点q种书籍Q那么会Ҏ们的工作有不帮助?/span>
IT
杂志
分类齐全Q种cȝ多,内容实用?/span>
个h观点认ؓQ在中国适合技术h员读的杂志只?/span>
?/span>
E序?/span>
?/span>
一本杂志,在日本,不论是从事的哪一个技术领域d以找到属于自q那个领域的技术杂志。从~程语言上分Q有专门讲述
Java
?/span>
“JavaWorld?
有专门讲q?/span>
.Net
?/span>
”Windows?
从操作系l上分,?/span>
Linux
的杂志,
Mac OS
的杂志和
Window
的杂志,从技术领域上分,除了~程语言Q有专门讲述数据库技术的
”DB Magzine?
有专门讲q网l知识的
”NetWork?
从Y件开发流E上分,有专门讲q架构设计的
,
有专门讲q需求定义的Q有专门讲述试的。另外还有各U综合性比较强的杂志,?/span>
?
日经
Systems?/span>
。我现在正订阅它Q所以我想重点介l一下“日l?/span>
Systems
”。“日l?/span>
Systems
”里面每一期大U会有三个特集,涉及的有目理Q开发现场的问题解决{等Q同时还?/span>
10
左右的q蝲Q涉及开发现场问题的解决Q新知识的讲座(
SOA
{等Q,C品的试用和验证(例如Q?/span>
Hibernate
的不同操作的执行效率Q,领域知识的讲解(最q以会计知识ZQ,工作技巧(例如Q如何开会,使用
MindMap,
理旉Q等{,q有一部分内容是会议记录,一些重要的会议的有意义的发a会列出来。更可贵的是Q每一期L一些案例,所谓案例就是介l哪一个企业用什么技术构{了什么样的系l。ȝ来说Q日本的杂志的信息量很大Q从企业的管理层C面的~码人员QL一N合您?/span>
参加的都是工作中涉及外包开发的人员。大部分是日本hQ有三个中国人?/span>
讲师是在外包开发领域具有丰富经验的咨询N?/span>
学习研讨会的目的Q是知识׃nQ问题的提出和解军_{的研究。讲师讲评旉和课堂讨论各占一半,气氛比较热烈?/span>
q次研讨会的题目是“外包开发中的新的常识”,主要最q在外包开发中出现的一些新的变化进行了讲解和讨论。信息的来源是涉及外包工作的一些热心者的意见?/span>
本h参加的目的是q一步准地把握日本客户的想法和正在苦恼的问题和扩大关系?/span>
现将学习内容ȝ如下?/span>
1Q?font face="Times New Roman">
中方外包公司的变?/span>
1.1
合作伙伴关系q一步强化?/span>
1.2
技术实力和理水^有很大提?/span>
1.3
作ؓ桥梁和关键角色的
BSE
依然紧缺
2Q?font face="Times New Roman">
日本对中方外包公叔R择标准的变?/span>
2.1
很多日本公司希望选择一个固定的合作伙伴
2.2
Ҏ公司的h才水q行选择。(日语能力Q技术水qI品质意识{等Q?/span>
2.3
对以往的开发成l更加详l的q行调研?/span>
3
Q外包成功经验谈
3.1 Review
的认真实?/span>
3.2
开发流E的改善
3.3
建立长期的合作关pR?/span>
3.4
采用合乎实际的h才培ȝ{略。(减少员工的离职率Q?/span>
4
Q一些亟待探索的问题?/span>
4.1
维护的工作拿到中国来做。需要中方公司员工能很快的理解业务需求,q对q用理有所了解?/span>
4.2
?/span>
XP
{新的开发方式引入外包开发中?/span>
1Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
需求分析与提案?/span>
日本的公司十分重视信息系l在企业q作中的作用Q很多时候,他们解决企业经营中的各U问题的手段诉诸于引q良好的
IT
pȝ。所以,现在的日本企业开发一个系l,更多的要求开发商能对自己企业所面的问题进行分析,提出一个好的解x案。所以,需求定义的出发点不是将现有的业务简单的?/span>
IT
技术进行整合,而是使用
IT
技术来解决企业中的各种问题。开发商要能理解客户所面的问题,q能提出解决办法Q这U要求,是最q一D|期才提出来的Qƈ成ؓ一U趋ѝ?/span>
q个阶段比较重要的工作是分析客户的业务,q行业务建模Q理解ƈ发掘客户现在面的问题,提出改进的模型,以及q行时的理?/span>
好像q些工作应该是咨询顾问来做的Q但是,现在已经都成为对
SE
的要求了。(注意Q中国h?/span>
SE
的要求和日本人对
SE
的要求是不一LQ?/span>
提交的文档是需求定义式样书{?/span>
2Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
外部设计Q也叫基本设计)。所谓外部,是面向外部的用L设计Q不需要关心程序的具体实现?/span>
包括业务程的定义,架构的划分,数据库的设计Q?/span>
ER
囑֒数据字典{)Q画面的设计Q画面的布局和迁U)Q对外接口的设计{等?/span>
提交的文档是外部设计式样书等?/span>
3Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
内部设计Q也叫详l设计)。就是程序内部的设计了,Ҏ外部设计的成果物q行设计工作?/span>
Ҏ架构和数据库设计以及画面设计Q进行具体的功能划分Q物理数据库的设计,法的设计,输入输出的设计等{?/span>
提交的文档是内部设计式样书等?/span>
4Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
~码?/span>
良好的编码风格和注释都是必要的要求。对单元试的要求,各个公司不一P但是或多或少都做一些,只是E度不同而已?/span>
5Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
pȝ和综合测试?/span>
6Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
q行。这里面涉及到运行管理等跟客户业务密切相关的问题?/span>
面向对象的一些开发方法,也都可以在这些不同的阶段里面扑ֈ自己的位|。像用例的设计就可以归到外部设计阶段?/span>
ȝ来说Q日本企业很多还是以瀑布开发ؓ丅R这里面的原因有很多Q一个是比较好管理,一个是日本人都比较习惯了,Ҏ别的开发方式,很难习惯。但是,由此产生的弊端,也显而易见。所以,很多企业也重视v来P代开发,q不断尝试。同Ӟ日本一些比较著名的
IT
企业像日立,富士通,
NTT,NEC
{都U篏了一些自q开发流E,他们?/span>
CMM
到没有什么过多的q求Q很看到哪一个日本企业炫耀自己通过?/span>
CMM
多少U。他们认为,自己的管理流E和要求g?/span>
CMM
更好Q更严格?/span>
试啊测试,真的很有挑战啊!很多人都认ؓ试没什么,可是W寻思一下,试高手同时也是技术高手,因ؓ不可能做完所有的试Q更不要妄想Q所以他一定要明白pȝ会在什么地方出毛病Q哪里有风险Q哪里就是重炏V?/span>