网页开发/PTM培训
PTM_Training 项目是由蒙大拿大学教育学院的 Mdj 教授(以下简称“客户”)的工作订单启动的,由蒙大拿大学中央网络服务团队(以下简称“机构”)负责开发,团队负责人为 RobertB。[1]
开发团队由以下人员组成:
- SteveM(应用程序开发人员);
- AndrewL(应用程序开发人员);
- RonaldS(生产服务器的系统管理员);
- PattyZ(图形设计师);以及
- 学生团队(三到五名在 SteveM 和 RobertB 的监督下的本科生,根据需要协助项目)。
工作订单规定,项目将包含一个基于网络的“专业培训界面”,供教育学院(以及其他机构)使用,以协调和发展教师之间的专业发展机会。
所有项目工作都在大学校园设施内进行,使用机构拥有和维护的开发和生产服务器。客户同意向机构支付开发和维护费用,工作根据双方之间的书面谅解备忘录(以下简称“MOU”)进行。
项目阶段(由 RobertB、SteveM 和客户事先确定和同意)包含以下内容:
- 定义阶段
- 设计阶段
- 开发阶段
- 部署阶段
- 维护阶段
- 工作订单和 MOU 都没有包含详细的功能集规范或现有示例应用程序作为参考。
- 客户提出了一些相当新颖的想法,这些想法将阻止简单地重复使用现有代码资产。
- 客户打算将项目成果用于向其他学院和州政府机构的演示。这将给项目成果带来“令人印象深刻”和“功能性”的压力。
- 项目启动时间相对于学术日历,基本上保证了学生工人的员工流动。
- 学生团队中的一些成员在他们将要帮助的领域几乎没有或根本没有经验。
- 该机构拥有相当可观的生产资产组合和一支技能合理的员工队伍。这意味着应用程序开发人员在选择开发工具和操作系统方面具有一定的灵活性。
- 项目某些方面的创新性和知名度意味着,RobertB 在建立优先级和在紧急情况下请求额外资源方面给了开发团队一些自由。RobertB 还注意与客户建立合理的期望,因此客户也允许项目交付成果具有一定的灵活性。
- 由于项目的相对高知名度,它必须在缺乏完整定义的项目规范的情况下继续进行。“定义”阶段将不得不不时地重新审视。鉴于此,SteveM 选择使用项目“增量原型”策略来进行。
- SteveM 选择的技术主要基于以下考虑:可用的员工队伍的熟悉程度最高、易于使用、易于创建原型以及一旦定义和设计确定后,便于迁移到“生产”基础设施。
这些包括:
- Microsoft Access(设计阶段数据库,将迁移到 MSFT SQL Server 以用于生产阶段);
- Allaire(现在的 Macromedia)Cold Fusion Web 应用程序服务器;
SteveM 和 AndrewL 继续与客户合作,以获得所需功能的精确定义。
在与客户进行了几轮迭代咨询后,双方一致同意,以下功能是必需的:
- 与最新版本的微软 Windows 上使用的两个最受欢迎的浏览器兼容的 Web 应用程序;
- 能够通过网络登录的用户帐户;
- 通过网络以匿名方式访问有限的功能;
- 能够通过网络修改 Web 应用程序的各个方面并管理用户帐户的管理帐户;
- 一个“可换肤”的图形应用程序界面,也可以由管理帐户修改和管理;
- 支持用户活动审计、记录保存、统计和例行报告;
SteveM 得出结论,该应用程序本质上将包含一个混合的在线:1)产品目录;2)事件管理系统;3)课程管理系统(支持学分和“评分”);4)基于角色的身份验证系统;以及 5)讨论论坛。
在项目启动时,没有现有的产品或资源可以满足客户的期望,因此证明了内部开发优于现成购买。
SteveM 和 AndrewL 开始设计数据库架构。SteveM 开始着手 Web 应用程序的框架。为了进一步简化开发并增加成功交付的可能性,SteveM 选择使用 ColdFusion 的“FuseBox”应用程序框架进行编码。
在初始设计阶段的一半时间里,AndrewL 被调到另一个项目,因此他能够在 PTM_Training 上投入的时间大大减少。这要求 SteveM 承担设计方面的全部责任,也需要更多同时进行的技术文档,以便 AndrewL 在有时间帮助时,能够及时了解系统。
SteveM 主要与学生团队合作,进行开发的最初阶段。在本学期结束时,学生团队规模大幅缩减。
- 可用的学生开发人员几乎没有或根本没有计算机编程经验。
- SteveM 建立了例行代码审查会议,以跟踪学生开发人员的进度。这些代码审查包括让学生有机会重新分配时间,并在可行的情况下,自行选择更符合他们能力和偏好的任务。
- 对所有代码模块都进行了例行的单元测试,以确保不会出现数据完整性问题。这是必要的,因为项目的“实时”使用过早地开始了,并且数据库包含人们实际关心的数据,丢失这些数据是不可接受的。虽然这违反了最佳实践。但这在早期就被预测到了,因为项目定义阶段确定了项目的性质和范围。
项目的部署包括将代码库迁移到生产 Web 服务器机器,并将数据库内容和架构转移到 MSFT SQL Server 主机。部署并不困难,但是,在开发机器和生产服务器之间,在名称解析和资源分配方面存在一些“棘手”问题。这些问题很快就被追踪到,代码被重构以进行补偿。
维护被证明是整个系统开发中的一个持续性元素,但具有讽刺意味的是,在项目的第一个可交付成果部署以供使用并提供给客户后,它并没有成为一个重大问题。最终,客户对该项目进行了一次相对富有成效的演示,代码和资源后来被一家外部公司收购。SteveM 和客户是该系统的命名作者,并因购买的代码库获得了版税。在 SteveM 进行初步咨询和审查阶段后,所有进一步的维护和扩展代码库的工作都由外部公司管理,以便他们能够熟悉系统的基本要素。
- ↑ 但请注意,某些名称和具体信息已被更改以保护专有和特权信息。