Chapter 1: Project Development Team and Project Life Cycle
第一章:项目开发团队以及项目的生命周期
All J2EE development teams need people with a wide variety of skills to fill numerous roles within the team. Among the many skill sets needed to make a J2EE project successful are:
Technical architect (技术架构师)
Project manager (项目经理)
Business analyst (业务分析师)
Layout designer (布局设计师)
Presentation-tier developer (表现层开发员)
Business logic developer (业务逻辑开发员)
Data modeler (数据建模师)
Database administrator (DBA)
Data migration specialist (数据移植专家)
Infrastructure specialist (基础设施专家)
Testing specialist (测试专家)
Technical architect (技术架构师):
1.架构师决定项目将要使用的技术。
2.架构师提出方法学和项目框架的建议。
3.架构师提供完整的设计和应用程序架构。
4.架构师确保项目被完全分析清晰。
5.架构师确保项目有足够的文档。
6.架构师应该建立代码规范。
7.架构师决定项目经理所要执得的任务
8.架构师帮助开发人员完成困难任务。
9.架构师强行迫使成员遵守编码规范。
10. 架构师辅助项目经理在评估项目花费和管理项目收益。
11. 架构师辅助管理对于人员的决定与评估。
项目经理的责任是计划和协调项目组有成员的工作任务。项目经理必须与最终用户(end-user)交流项目进度,还有,项目经理获取项目成员需要的资源和材料。
业务分析师的职责是:与end user去定义应用的需求,一些详细的需求对于设计和构建应用。因为end user和开发者经常使用不同的术语( terminology),业务分析师的责任是转换end user 和开发者之间交流的语言。经常的业务分析师有经验在企业的 end user 方面和 信息技术方面。
对于项目的进展,业务分析师的重要角色将会降低,但是并不能消失。开发人员对于在编码和测试活动阶段,提出的附件问题,业务分析师需要在业务方面给予回答。
技术架构师的责任是确保,应用需求的定义的足够充分。并且是没有理由期望100%分析完全和正确,毕竟,分析是一些个人主观的延伸。然而,这个分析需要确保,足够的程序和设计完成。
对于一些应用,特别是那些公用的,需要专业的制图方式或者布局设计。大多数的技术架构者们,放到他们自己的设备,能执行Web页面功能,但是那些页面典型是难看的,并且也难已使用的。图像设计是非常的艺术对于普通场景。通常的,这个布局工程师主要工作是与业务分析师(BA)和其它有代表性的业务方面的设计,但是这个(布局设计师)LD也工作和表现层(presentation-tier)开发者去创建一个设计原型(prototype)。
技术架构师的职责是,确保这个布局从技术角度是可行的。我看见一些Web页面设计,使用文字效果通过文字处理程序,但是并不支持Html,例如,一个设计使用文字旋转90度,这时架构师应该及早的发现,并且纠正这类问题。
对于Presentation-Tier Developer(展示层开发员)的责任是:编写HTML, Javascript, applet/Swing , JSPs 、 servlets 代码,一般情况,任何直接的调用处理用户接口与展示,都需要展示层开发者开发。一般的合作是与布局设计师,表示层开发者构建原型,并且开发工作版本,并且对于技术架构师,PT开发定义结构和设计前端字体导航。
技术架构师的职责是:确保设计模式能被保护和延伸,导航的问题经常是复杂的,并且是很容易产生十分难以维护代码,技术架构师的主要职责是,鉴别和正确处理维护问题,使其技术可以很好的维护。
业务逻辑开发的职责是,需要代码对于应用不可见,包括企业bean,Web services, RMI services, CORBA services,business objects, and data access objects,一些人指出这些不可见部分作为应用的服务放组件,业务逻辑的开发,经常是一个java专家,这些人是与架构师的关系紧密,并且被架构师支持其性能调整是必须的。
技术架构师提供指导业务逻辑开发者,这是常见的问题,对于服务端组件,对于一个应用的复杂组件部分,技术架构师经常扮演一个指导者对于业务开发。
数据建模人员,使用从业务分析的信息,去验证、定义并且分类所有的数据,将应用存储到数据库中,数据建模的时候经常经常陷入到将应去的数据,转换成ER图中,DBA(database administrators )使用ER图处理一个物理数据库设计,然而通常情况,数据库建模人员经常是与DBA的角色合并。
架构师的责任是确保,数据模型的足够理想可用的,并且和业务分析 (business analysis),并且没有理由要求数据模型100%完全,如果的数据模型是完整并且符合第3范式,对于将来改变数据库模型就会变得容易。
一些应用, 例如一些数据仓库,非常依赖数据库迁移从其他的来源,数据迁移专家,写并且管理所有的脚本(script)和程序,需要去移植数据对于将来的介子.当一个应用有许多移植需求,这个角色也许是不能一定合并DBA的角色。
架构师定义数据移植需求给数据移植专家,工作与数据库移植专家,目的是解决任何技术问题与麻烦,也提升了架构师角色其他方面的技术
基础设施专家,提供了所有开发与测试和产品环境,并且非常好的部署方法,一个正规的开发基础、部署,节省了时间和提高效率,这个特殊的调用和管理包括,写部署脚本和支持其他的开发诊断问题,测试环境的搭建是唯一个挑战集合。
一个测试专家,通常有一个细心的人,并且确保应用产品的匹配,并且合理的释放bug,并且一个测试专家有个一个业务领域的行业知识。
技术架构师的工作和测试的人员,去验证任何基础需求,和必须的支持。项目经理和业务分析通常建立,测试计划的内容和测试方法,所以,这个架构的角色在 需要支持的,在测试过程。