J2EE架构师第一章 Project Development Team and Project Life Cycle

第一章:项目开发团队和项目生命周期

本章是成功构造第一个项目的基础,涉及从开始到发布的整个过程。首先我们定义了技术架构师是干什么,总结了技术架构师跟团队其他成员的工作关系。接着了解了一些可供选择的开发方法。作为一个大量讨论的话题,构造成功项目的明确方法还没有出现,所以许多公司都采取了综合方案。


项目开发团队:角色和职责

所有的j2ee开发团队都需要拥有各种技术的人去担挡这个团队中的许多角色。在大多数技术角色集中,为了保证j2ee项目成功,下列是必须的:
技术架构师
项目管理者
业务分析员
界面设计者
展现层开发者
业务逻辑开发者
数据建模者
数据库管理员
数据移植专家
基础设施专家
测试专家

尽管本书主要是关于技术架构师这个角色的,但本章也定义j2ee开发团队中其它主要参与者的角色和职责,描述了技术架构师关于这些角色的责任。

一些组织对这些角色有不同的称呼。例如,基础设施专家可能被称为系统管理员,测试专家可能被称为测试员,有些组织也可能有测试团队管理者与单个测试员的区别。不管你是用那套角色集,由他们全部组成的一个开发团队能极大提高成功创建j2ee项目的机会。


再深入一点,团队中的一个人担任多个角色也是有可能的;对于足够大的项目,一个角色由多个人共同担任也是有可能的。一些组织组合了技术架构师和项目管理者。一些组织中一个高级开发人员会同时兼任数据库管理员或基础设施专家。一些组织中同样的开发人员会既从事展现层的工作也做业务层的工作。我不是在令人厌烦的推荐团队的组织形式,只不过是在交流那套技术角色是必须的,不管他们是如何组织起来的。

技术架构师

技术架构师确定项目要采用的技术。    在许多组织中,一些技术选择是由企业层面所决定的。例如,许多组织会在企业层面决定硬件和操作系统的选择和一些软件的选择(例如,j2ee容器提供商).一般来说,开发语言的选择,如java,是一个企业层面的决定.

然而,大多数应用都有一些企业层面没有明确规定的技术要求.对于技术选择,究竟是在企业层面决定,还是由单个的应用决定,我做了一个区分.例如,是否决定用java语言做服务端的程序开发应该是在企业层面做的,但是决定用那种xml解析器应该留给单个的应用架构师去做.在许多组织中,这些做企业层面技术选择的相对j2ee开发团队是分开的.

技术架构师一般负责确定一个项目要使用的第三方开发包或工具.例如,技术架构师决定需要使用 基于模板的生成引擎,选择了Apach的Velocity.

技术架构师推荐项目要使用的开发方法和框架.  典型地,架构师要做一些建议给项目管理者.例如,一个很常见是建议是把业务分析以用例图的形式文档化,以原型作为补充.另一个常见的建议是把设计根据对象模型文档化.一些组织会在企业层面上决定开发方法.


技术架构师提供应用的全部设计和结构.    每个开发人员都会把自己的那套独特的假想的看法,习惯和喜欢带到项目中.揉合上面这些有时会在很大范围上造成团队的分歧,技术架构师就要确保每个开发人员的工作是可替代的.

我把技术架构师比作一个演奏乐队的指挥家.所有的音乐家对于如何演奏一个给定的曲目都有不同的说明.指挥家就是要提供这个说明,所有的音乐家都要使用它,按它演奏.


技术架构师确保项目被充分定义.         项目分析必须是足够详细和一致的,能作为构造应用的基础.典型地,技术架构师会和项目管理者/业务分析人员一道确定这个项目.


技术架构师确保应用设计被充分文档化.     把应用设计文档化是在开发人员之间建立有效沟通的关键一步.创建文档的过程会强迫架构师把问题彻底想清楚.这样,最终的文档能够使我们在管理上如增加或变更开发人员不会过多占用架构师的时间.对于开发人员来说,在技术架构师一段时间内不在这个项目的情况下,文档能使他们继续下去;当设计跟他们自己的出现矛盾的情况下,继续工作.文档也能帮助隔离这个项目不受个人变化的影响.

我看到过许多没有文档化的项目.结果就是增加一个开发人员都是一个主要的日常工作,因为架构师不得不向新加入者口头传输设计.不得不口头交流设计抵消了新增开发人员的一些好处.

技术架构师建立编码指南.    因为每个开发人员都有不同的编码喜好,编码标准必须明确清晰以使每个代码块能方便组装起来.技术架构师有责任对于像下面这样的话题建立项目手续和指南,这些话题在本书的后续章节会有深入的描述:
异常处理
日志
测试
线程

技术架构师确认项目管理者的任务执行情况.           这个角色对于j2ee项目尤其重要,因为相对其它类型的系统项目,他们面临着更大范围的技术.出于实际的需要,技术架构师也应该帮助项目管理者做项目计划和评估.


技术架构师当开发人员遇到困难的任务时,要做指导者.    典型地,架构师比开发人员都富有经验.当开发人员遇到一个使他们慢下来的技术难题时,经常是架构师帮助他们找到解决方法.对许多项目来说,架构师不只是实现者,而更是一个指导者.


技术架构师强制遵守编码指南.   作为编码指南的制定者,当指南没有被遵守时,技术架构师最应该去确认,从逻辑上来说去强制他们.典型地,项目管理者是主管强制任务的,但是没有技术经历去确认是否遵守.

代码检视是一个很好的强制机制.如果其它的团队成员检查代码,对于单个的开发人员来说对照团队编码指南是很难的.

对于开发团队中的所有成员来说,代码检视也是一个很好的学习工具.技术架构师发现设计中的漏洞,所有参与者可以从团队中其它成员的身上学习技巧和诀窍.典型地,团队中最有经验的成员,技术架构师经常推动代码检视.为了发挥最大用处,代码检视应该在随意/没有人身攻击的氛围下进行.


技术架构师帮助项目管理者做项目成本评估和管理收益.    虽然这通常应该是项目管理者的责任,但大多数项目管理者很少有j2ee技术的经历,可能不会意识到必须要做的每件事.


技术架构师帮助做管理开发人员职位的人员决定.   虽然人员决定经常被作为一个管理功能,技术架构师也是一个评估技术能力好的职位.人员决定中的错误可能给项目时间段带来大量的破坏. 

 

                                          to be continued

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值