外包项目的几点杂谈
2013-10-08 12:08
211 查看
工作中经常会接触到外包的项目,并且需要维护。总体感觉是外包的项目代码质量很差,这是由于外包项目的成本决定的,参与项目开发的人员都是一些新手。总结来看,一个外包项目是否成功,在于后期的维护、扩展成本,而保证项目设计与代码质量的前提就是一定要有一个项目监理人员,负责审核项目的设计与代码质量。这个项目监理人员也可以外包,但一定要找有经验的架构师担任。
从最近的一个项目来谈,某电子商务公司,在前期没有技术团队,其订单系统等的管理是外包实现的,从使用情况看,除了操作界面比较难看之外,该有的功能都有了,在验收测试中也很难发现什么问题。但随着系统的使用,不断需要维护增加功能,问题就越来越明显了:
1.
出现串单现象:是由于使用的Struts1框架,但没有遵守FormBean的reset规范,后期维护的代码越来越多,问题也越来越多。
此问题是典型的项目设计问题,并且没有很好的文档说明
2.
数据库设计问题:日期类型都使用的字符串保存
此问题是典型的新手写代码问题,日期类型保存成字符串,无法保证第个程序员的保存格式(yyyy-MM-dd HH:mm:ss),同时严重影响了数据查询的效率
3.
数据库主键、外键设计问题
主键混乱,使用UUID,自增长类型等不统一,也增加了复杂性
外键设计混乱,比如订单的关联,只使用了唯一的订单号,而没有引入外键关联
4.
Java代码中的类型问题:与金额相关的类型使用了double, float, int等,这也是典型的新手写代码问题,在Java代码中涉及金额的对象类型应该使用BigDecimal处理
5.
代码中的异常处理不完整
6.
代码中的日志输出没有使用Log框架
直接使用exception.printStackTrace(), system.out等输出,不利于日志的控制与查找
7.
代码中的事务管理混乱
8. JSP代码中到处都是<%%>Java Code
9. 系统的权限管理简单
只有简单的菜单显示的控制,没有对访问资源的权限管理(URL)
10.
Java/Hibernate对象的创建不合理,比如外键的关联对象,集合对象等
11. 对象与数据的概念逻辑混乱:
比如父ID为空时,新手的设计是给父ID一个默认值(0, -1等),而实际就应该用空值NULL
以上只是最基本的问题,但是一个外包项目如果这几方面都处理的很好,足以是一个合格的外包项目了。
从最近的一个项目来谈,某电子商务公司,在前期没有技术团队,其订单系统等的管理是外包实现的,从使用情况看,除了操作界面比较难看之外,该有的功能都有了,在验收测试中也很难发现什么问题。但随着系统的使用,不断需要维护增加功能,问题就越来越明显了:
1.
出现串单现象:是由于使用的Struts1框架,但没有遵守FormBean的reset规范,后期维护的代码越来越多,问题也越来越多。
此问题是典型的项目设计问题,并且没有很好的文档说明
2.
数据库设计问题:日期类型都使用的字符串保存
此问题是典型的新手写代码问题,日期类型保存成字符串,无法保证第个程序员的保存格式(yyyy-MM-dd HH:mm:ss),同时严重影响了数据查询的效率
3.
数据库主键、外键设计问题
主键混乱,使用UUID,自增长类型等不统一,也增加了复杂性
外键设计混乱,比如订单的关联,只使用了唯一的订单号,而没有引入外键关联
4.
Java代码中的类型问题:与金额相关的类型使用了double, float, int等,这也是典型的新手写代码问题,在Java代码中涉及金额的对象类型应该使用BigDecimal处理
5.
代码中的异常处理不完整
6.
代码中的日志输出没有使用Log框架
直接使用exception.printStackTrace(), system.out等输出,不利于日志的控制与查找
7.
代码中的事务管理混乱
8. JSP代码中到处都是<%%>Java Code
9. 系统的权限管理简单
只有简单的菜单显示的控制,没有对访问资源的权限管理(URL)
10.
Java/Hibernate对象的创建不合理,比如外键的关联对象,集合对象等
11. 对象与数据的概念逻辑混乱:
比如父ID为空时,新手的设计是给父ID一个默认值(0, -1等),而实际就应该用空值NULL
以上只是最基本的问题,但是一个外包项目如果这几方面都处理的很好,足以是一个合格的外包项目了。
相关文章推荐
- 关于软件外包项目管理的几点体会(本文版权归吴兵本人所有,谢绝转载!谢谢!)
- 杂谈:外包项目会遇到的问题记录
- 如何做好外包项目验收?我总结的几点建议
- 成为项目顾问的标准——客户满意度——CSDN外包实践(58)
- 软件开发项目风险管理的几点体会
- 接项目外包,协同OA项目 app开发简单需求
- 外包项目的内外部管理
- (转)国外软件外包项目网站(适用软件兼职)
- 敏捷外包工程系列之一:序言(敏捷外包工程,敏捷开发,CMMI,软件外包,政府项目,银行项目,电信项目)
- 有效控制项目进度的几点技巧
- 什么样的客户适合将项目进行外包
- 项目管理杂谈
- 中科燕园GIS外包项目案例之三---智慧应急一张图
- 外包项目中的Leader
- 项目外包经验
- 项目外包的双方
- java快速开发平台 二次开发 外包项目利器
- 承接 中大型 管理软件 项目产品 研发外包合作
- 有软件外包项目如何顺利接单
- 杂谈:项目管理的是与非[转贴]