它山之石可以攻玉!
//注:本BLOG中标注“原创”的文章为本人版权所有,未经许可不得擅自使用,如有引用请注明作者“谷雨霖”。msn: cabinhome@sohu.com
敏捷开发大家谈(三)--敏捷开发技术在电子商务软件中的应用(2)
上一篇 / 下一篇 2008-05-15 13:05:06 / 个人分类:项目管理
第四章 敏捷开发技术在电子商务软件的推广
@Al N(nP't0
u0b N7t9Yq E01. 电子商务软件实施的高风险性
[cCLN {hy[{0ITPUB个人空间\5n1|WE B!S"k
软件开发行业目前同时存在两种情况,它既是一个非常成功的又是具有很多问题的行业。ITPUB个人空间2w.L:p*L)H
v7e}@yI02. 在跨平台系统的移植上的应用
Am${H6]^;E$mM|0
]:}fXI:@QF0电子商务系统经常会出现跨平台的移植。重要的一点就是从功能角度讲,移植前后是否一致。一些敏捷开发中的最佳实践也是可以使用的,比如你可以把所有的需求以测试的方式提炼出来。很多项目都是使用这种方式而且非常成功。
3R i0y9s$u?$P0
VZE(Qx/k7u0而且使用这种叠盖式方式,也能够从项目进程的角度看移植进程有多快。
?h6U%v V6B.~.Q%r"[6Y0
6D k!^MvHV2]/v03. 在电子商务软件外包公司的应用ITPUB个人空间 \6n?dx3YhZx+?
&Ko?(q zF e0软件外包是非常普遍的。在实践中发现敏捷式开发对外包也是非常有效的方法。实践中敏捷式开发比一般的开发方式估算的方法更快,而且用的人要少一些。ITPUB个人空间9z7HQ+hE
#kU;xj,j_:J0 希望中国更多的软件公司可以采用敏捷开发技术,使我们的软件产业能够得到更加快速的提高和发展!(作者: 徐祎 就职于东方钢铁电子商务有限公司,职务为首席项目经理。目前就读上海交通大学MBA班 )ITPUB个人空间h;e!y_p_
$j6C'BV^-y3\T0
(D%y0M3}4P[.f0四、敏捷开发常用工具ITPUB个人空间(t^C8S7KTL$M@i9~
x-v}f y@0工欲擅其事,必先利其器,能利用工具是人与动物的最大区别。然而,大多数商业化工具价格不菲,已经加入WTO好几年了,再用盗版会给企业带来很大的不确定性,并且盗版用多了,往往会失去一种程序员的自豪感,丢掉一种文化。经过几个月的摸索,本着以下原则,偶选择了一些适合中小企业开发的工具,当作自己的工具箱:
%[e"I4g!MFG0(1)适用于中小型企业,中小型项目(<500万),功能适度ITPUB个人空间Nhc7pwaTZ
R:sYVS%mN.sH0(2)易用性好,具备必要的文档ITPUB个人空间9N u$P\ND`|
0mb#O~Z|+PD0(3)免费或低价ITPUB个人空间8pC@+~2TK5t A[9p
7Qv;c r#@2CO%n h0基于这些工具,慢慢形成了一套敏捷开发过程。
NuVI%zpm2V0
4b7bQP9Q3z&[w$p2J9g0(一)、工具简介ITPUB个人空间z_:W8pR;t+?Yd
ITPUB个人空间d$P$w"}#g"m$tz*Z
下面简单介绍这些工具,这些工具有些偶已经有相当的使用经验,有些正在使用,有些只是刚选定。除直接用于.net开发的工具中外,还包括一些开发相关的软件设计、项目管理工具。偶的主要开发经验是Web开发,桌面开发和原型开发,对Mobile开发不熟悉,也就没这方面的推荐了。
XC4tP7h0
}?\?)pU+Z01,运行平台
%RM5ZR#@I+SrER4K0ITPUB个人空间:e+jB-a+fIf
常用的也就.net framework 1.1, 2.0, 和mono了,都是免费的。从功能、性能及安装基础来讲,自然.net framework要优于mono了。mono是开源的,.net framework类库可以反编译,从透明的角度讲两者都差不多。如果你想在非windows平台上开发,或者想研究运行时的实现,可以研究mono,否则还是用.net framework吧。
m'N9V yA0
5W#bS:vz`:f02,服务器ITPUB个人空间W j2Q.R+O&MK m&W'u
ITPUB个人空间(Ynz:bGGS6rs
我用过的也就IIS5.0,IIS6.0,Apache加一个mod,还有mono的xsp,这也没啥好比较的,自然首选IIS6.0了。不过IIS虽然免费,但是至少得windows server版本才运行得爽,至少得花几千元。XP上的IIS很不爽,据说也能装全版IIS6.0,不过还是得折腾。开发用的话,用Apache加一个.net的mod,或者mono的xsp,还是挺好用的。Apache的缺点是对新版.net framework的支持较IIS6.0滞后。ITPUB个人空间vY3{ sVs\,SM1|:R
Y,a)f/jv0`i\^03,IDE
@0M)]_-M"F kdFN0ITPUB个人空间x9lw bU&j+U
tnnd,这个选择空间也很小。首选自然是VS 2003或2005,如果VS 2005速成版将来免费的话,偶就选定这个了,或者选价格并不算高的VS 2005 专业版。可恶速成版、专业版中没单元测试,在这里BS微软10000遍。坚决抵制VSTS版!ITPUB个人空间_,wF9r6_6v
ITPUB个人空间@(B W[6?0t
其它可选的有SharpDevelop和mono develop。对于不开发Web程序的初学者来说,用SharpDevelop其实也挺不错的,集成的Nant,NDoc,NUnit都是很有用的工具。SharpDevelop没断点调试功能,但熟用NUnit的话可以弥补这一不足。ITPUB个人空间|b |*uKMq
ITPUB个人空间J3uG a[$I+Q
如果对类库理解得比较深入的话,采用SharpDevelop,生产力其实也挺高的――即使是进行Web开发。SharpDevelop的缺点之一是暂时没重构功能,在下一个版本里会有。缺点之二是内存占用比较大,还有性能比VS低得多,大项目,大程序可能不爽。我测试过,用SharpDevelop打开一个大于3M的C#源文件(嘿嘿!是csgl还是tao的,忘了),挂了;用VS 2003打开大概要花几十秒。ITPUB个人空间T4KQ/H%yT
ITPUB个人空间:^ipFjvsI
btw,我个人认为其实就用记事本写中小型(<3000行)的C#程序,效率其实也挺高的,这时候会更加注意类的设计,思路会更清晰一些,当然,速度会慢一些。ITPUB个人空间:TlP:H-@'p
(k1\Wfgx04,类库和文档
;B3R4b!x,K0
T,vp:Z2C!t0类库是.net平台的资产。目前.net下成熟的类库比较少,和java比,最大的不足就是这里了。最常用的类库当然是.net framework了,其它各方面的类库在网上都能搜索到一些。类库的关键资产要素是dll和文档。看文档要看一手资料,第一手资料就是源代码或反编译过来的代码,然后就是各类的原始文档,一般是chm格式的。如果看源代码习惯的话,效率会很高,并且,建议用反编译工具看代码,不建议直接看源文件,原因其一是反编译工具提供了很多有用的附加功能,其二是反编译的代码比源文件更真实。常用的反编译工具是Reflector。ITPUB个人空间*d"CI cNm)ESx
@ x'Bvv"lr0.net下的文档是爽死了,比javadoc的pp多了。因此在写代码的时候应该注意,多写///注释,然后用Ndoc自动生成chm文档,多爽呀。
+G-b?8gOl Vm0
9C.Rz4M#p ^0很多开源项目提供源代码和少量的文档,但它的源代码中有大量的///注释,可用NDoc自动生成chm文档。即使没有///注释,采用NDoc生成文档也是很值的。
5Dh3[s#m b0e"G3u-V0
-gT9m [6m-{W!mSg}05,数据库
-X"P_o(kMT\,\0
Py px4p3Z0MS SQL Server Express版应该是免费的,但标准版和企业版价格还是不低的,还是用开源的好。对功能有要求就用PostgreSql,没要求就用MySql。偶现在是GIS项目用PostgreSql,一般项目用MySql。数据库管理用EMS MySQL Manager Lite和EMS PostgreSql Manager Lite,免费,好用,界面很豪华,性能还行。ITPUB个人空间RxmSZ'@7_9Q
I:srQ.|\BQ&F+}L{06,设计与建模
y H2y"L;{g$_0
e*z,W*d#z%O1S!|0偶选定的UML建模工具是JUDE,2M大,免费但不开源,比ArgoUML功能多、好用。比Visio 的UML功能不知道强大多少倍,比Together也好用。缺点就是只是建模工具,和代码不同步。另一个缺点就是不能自动生成文档。不过偶喜欢这样的工具,强大,体积小,灵活,方便。并且偶觉得它在设计时用就行了,具体的类的文档用NDoc生成。JUDE是基于java的,得安装java虚拟机。好像它跨平台也不怎么样,我在linux下没运行成功过。ITPUB个人空间#rP[,_At'~2Qu
ITPUB个人空间I$fz4v M
开源或免费的数据库建模工具试过很多,感觉都不成熟不好用,最后选择了一个商业软件――CASE Studio 2,价格100-300美元,功能很实用,支持很多数据库,生成的文档也很pp。
1~.JxH3W S+w@5}0ITPUB个人空间:B.OV-NL t_Gr
7,敏捷开发工具ITPUB个人空间6GJ9^:Wp-Y
ITPUB个人空间G+m|d&m VSnA
NUnit――单元测试。
gnL!Ku1M{v a0
@Al N(nP't0
u0b N7t9Yq E01. 电子商务软件实施的高风险性
[cCLN {hy[{0ITPUB个人空间\5n1|WE B!S"k
软件开发行业目前同时存在两种情况,它既是一个非常成功的又是具有很多问题的行业。ITPUB个人空间2w.L:p*L)H
v7e}@yI02. 在跨平台系统的移植上的应用
Am${H6]^;E$mM|0
]:}fXI:@QF0电子商务系统经常会出现跨平台的移植。重要的一点就是从功能角度讲,移植前后是否一致。一些敏捷开发中的最佳实践也是可以使用的,比如你可以把所有的需求以测试的方式提炼出来。很多项目都是使用这种方式而且非常成功。
3R i0y9s$u?$P0
VZE(Qx/k7u0而且使用这种叠盖式方式,也能够从项目进程的角度看移植进程有多快。
?h6U%v V6B.~.Q%r"[6Y0
6D k!^MvHV2]/v03. 在电子商务软件外包公司的应用ITPUB个人空间 \6n?dx3YhZx+?
&Ko?(q zF e0软件外包是非常普遍的。在实践中发现敏捷式开发对外包也是非常有效的方法。实践中敏捷式开发比一般的开发方式估算的方法更快,而且用的人要少一些。ITPUB个人空间9z7HQ+hE
#kU;xj,j_:J0 希望中国更多的软件公司可以采用敏捷开发技术,使我们的软件产业能够得到更加快速的提高和发展!(作者: 徐祎 就职于东方钢铁电子商务有限公司,职务为首席项目经理。目前就读上海交通大学MBA班 )ITPUB个人空间h;e!y_p_
$j6C'BV^-y3\T0
(D%y0M3}4P[.f0四、敏捷开发常用工具ITPUB个人空间(t^C8S7KTL$M@i9~
x-v}f y@0工欲擅其事,必先利其器,能利用工具是人与动物的最大区别。然而,大多数商业化工具价格不菲,已经加入WTO好几年了,再用盗版会给企业带来很大的不确定性,并且盗版用多了,往往会失去一种程序员的自豪感,丢掉一种文化。经过几个月的摸索,本着以下原则,偶选择了一些适合中小企业开发的工具,当作自己的工具箱:
%[e"I4g!MFG0(1)适用于中小型企业,中小型项目(<500万),功能适度ITPUB个人空间Nhc7pwaTZ
R:sYVS%mN.sH0(2)易用性好,具备必要的文档ITPUB个人空间9N u$P\ND`|
0mb#O~Z|+PD0(3)免费或低价ITPUB个人空间8pC@+~2TK5t A[9p
7Qv;c r#@2CO%n h0基于这些工具,慢慢形成了一套敏捷开发过程。
NuVI%zpm2V0
4b7bQP9Q3z&[w$p2J9g0(一)、工具简介ITPUB个人空间z_:W8pR;t+?Yd
ITPUB个人空间d$P$w"}#g"m$tz*Z
下面简单介绍这些工具,这些工具有些偶已经有相当的使用经验,有些正在使用,有些只是刚选定。除直接用于.net开发的工具中外,还包括一些开发相关的软件设计、项目管理工具。偶的主要开发经验是Web开发,桌面开发和原型开发,对Mobile开发不熟悉,也就没这方面的推荐了。
XC4tP7h0
}?\?)pU+Z01,运行平台
%RM5ZR#@I+SrER4K0ITPUB个人空间:e+jB-a+fIf
常用的也就.net framework 1.1, 2.0, 和mono了,都是免费的。从功能、性能及安装基础来讲,自然.net framework要优于mono了。mono是开源的,.net framework类库可以反编译,从透明的角度讲两者都差不多。如果你想在非windows平台上开发,或者想研究运行时的实现,可以研究mono,否则还是用.net framework吧。
m'N9V yA0
5W#bS:vz`:f02,服务器ITPUB个人空间W j2Q.R+O&MK m&W'u
ITPUB个人空间(Ynz:bGGS6rs
我用过的也就IIS5.0,IIS6.0,Apache加一个mod,还有mono的xsp,这也没啥好比较的,自然首选IIS6.0了。不过IIS虽然免费,但是至少得windows server版本才运行得爽,至少得花几千元。XP上的IIS很不爽,据说也能装全版IIS6.0,不过还是得折腾。开发用的话,用Apache加一个.net的mod,或者mono的xsp,还是挺好用的。Apache的缺点是对新版.net framework的支持较IIS6.0滞后。ITPUB个人空间vY3{ sVs\,SM1|:R
Y,a)f/jv0`i\^03,IDE
@0M)]_-M"F kdFN0ITPUB个人空间x9lw bU&j+U
tnnd,这个选择空间也很小。首选自然是VS 2003或2005,如果VS 2005速成版将来免费的话,偶就选定这个了,或者选价格并不算高的VS 2005 专业版。可恶速成版、专业版中没单元测试,在这里BS微软10000遍。坚决抵制VSTS版!ITPUB个人空间_,wF9r6_6v
ITPUB个人空间@(B W[6?0t
其它可选的有SharpDevelop和mono develop。对于不开发Web程序的初学者来说,用SharpDevelop其实也挺不错的,集成的Nant,NDoc,NUnit都是很有用的工具。SharpDevelop没断点调试功能,但熟用NUnit的话可以弥补这一不足。ITPUB个人空间|b |*uKMq
ITPUB个人空间J3uG a[$I+Q
如果对类库理解得比较深入的话,采用SharpDevelop,生产力其实也挺高的――即使是进行Web开发。SharpDevelop的缺点之一是暂时没重构功能,在下一个版本里会有。缺点之二是内存占用比较大,还有性能比VS低得多,大项目,大程序可能不爽。我测试过,用SharpDevelop打开一个大于3M的C#源文件(嘿嘿!是csgl还是tao的,忘了),挂了;用VS 2003打开大概要花几十秒。ITPUB个人空间T4KQ/H%yT
ITPUB个人空间:^ipFjvsI
btw,我个人认为其实就用记事本写中小型(<3000行)的C#程序,效率其实也挺高的,这时候会更加注意类的设计,思路会更清晰一些,当然,速度会慢一些。ITPUB个人空间:TlP:H-@'p
(k1\Wfgx04,类库和文档
;B3R4b!x,K0
T,vp:Z2C!t0类库是.net平台的资产。目前.net下成熟的类库比较少,和java比,最大的不足就是这里了。最常用的类库当然是.net framework了,其它各方面的类库在网上都能搜索到一些。类库的关键资产要素是dll和文档。看文档要看一手资料,第一手资料就是源代码或反编译过来的代码,然后就是各类的原始文档,一般是chm格式的。如果看源代码习惯的话,效率会很高,并且,建议用反编译工具看代码,不建议直接看源文件,原因其一是反编译工具提供了很多有用的附加功能,其二是反编译的代码比源文件更真实。常用的反编译工具是Reflector。ITPUB个人空间*d"CI cNm)ESx
@ x'Bvv"lr0.net下的文档是爽死了,比javadoc的pp多了。因此在写代码的时候应该注意,多写///注释,然后用Ndoc自动生成chm文档,多爽呀。
+G-b?8gOl Vm0
9C.Rz4M#p ^0很多开源项目提供源代码和少量的文档,但它的源代码中有大量的///注释,可用NDoc自动生成chm文档。即使没有///注释,采用NDoc生成文档也是很值的。
5Dh3[s#m b0e"G3u-V0
-gT9m [6m-{W!mSg}05,数据库
-X"P_o(kMT\,\0
Py px4p3Z0MS SQL Server Express版应该是免费的,但标准版和企业版价格还是不低的,还是用开源的好。对功能有要求就用PostgreSql,没要求就用MySql。偶现在是GIS项目用PostgreSql,一般项目用MySql。数据库管理用EMS MySQL Manager Lite和EMS PostgreSql Manager Lite,免费,好用,界面很豪华,性能还行。ITPUB个人空间RxmSZ'@7_9Q
I:srQ.|\BQ&F+}L{06,设计与建模
y H2y"L;{g$_0
e*z,W*d#z%O1S!|0偶选定的UML建模工具是JUDE,2M大,免费但不开源,比ArgoUML功能多、好用。比Visio 的UML功能不知道强大多少倍,比Together也好用。缺点就是只是建模工具,和代码不同步。另一个缺点就是不能自动生成文档。不过偶喜欢这样的工具,强大,体积小,灵活,方便。并且偶觉得它在设计时用就行了,具体的类的文档用NDoc生成。JUDE是基于java的,得安装java虚拟机。好像它跨平台也不怎么样,我在linux下没运行成功过。ITPUB个人空间#rP[,_At'~2Qu
ITPUB个人空间I$fz4v M
开源或免费的数据库建模工具试过很多,感觉都不成熟不好用,最后选择了一个商业软件――CASE Studio 2,价格100-300美元,功能很实用,支持很多数据库,生成的文档也很pp。
1~.JxH3W S+w@5}0ITPUB个人空间:B.OV-NL t_Gr
7,敏捷开发工具ITPUB个人空间6GJ9^:Wp-Y
ITPUB个人空间G+m|d&m VSnA
NUnit――单元测试。
gnL!Ku1M{v a0