去年5月份,公司项目较少,我就组织了一个用于公司内部办公管理的项目(以下称OA)。第一个目的是为了让公司里面一些技术较差的人员得到真正编程的锻炼;第二个目的是为了使用空闲的人员为公司开发一个产品,在内
2017-08-07 09:48
1086 查看
去年5月份,公司项目较少,我就组织了一个用于公司内部办公管理的项目(以下称OA)。第一个目的是为了让公司里面一些技术较差的人员得到真正编程的锻炼;第二个目的是为了使用空闲的人员为公司开发一个产品,在内部推行科学管理,以后也可以考虑销售。
结果一直到今年4月份,这个项目才算上线,开发进度一拖再拖,代码质量很差。回过头来考虑原因,有以下几个:
1)程序员技术能力弱
2)对JSF技术不熟悉
3)JSF框架有Bug,并且可用tag较少,不足以应付项目,还需要额外开发自定义tag
4)人员变动频繁
5)按照<<Software Engineering>>最新版的建议和日立公司开发流程结合指定的开发流程不合理
a)设计阶段连web界面的每个控件(tag)的表现形式都描述的清清楚楚,花费了大量的人力
b)开发流程如下
use-case设计-》画面设计-》系统建模-》数据库设计-》编码-》代码评审-》
单体测试式样书编写-》单体测试
集合测试式样书编写-》集合测试
这个开发流程看上去很完美,其实由于国内项目进度要求都很高,其实不能支付这样高昂的开发成本,并且如果项目管理不当,很多文档写了,却没有人遵守。
6)管理人员对代码审查把关较弱
7)缺乏一个合格的项目经理,我因为兼顾公司很多事情,项目经理只是挂名而已,唯一把好关的就是数据库设计是自己亲自做的
8)对OA的复杂业务(特别是考勤业务)缺乏经验,设计人员也是边设计边改。
以上说的是问题,下面也说说说收获:
1)程序员得到了实战的机会,原来我公司的能力弱的程序员一直没有机会编程,只是做一些测试工作,这次让不少程序员得到了较大提高
2)对JSF基础知识的掌握,通过实战和编写文档等方式教育,培养了一个了解JSF技术的团队
3)OA是公司内部第一个多人开发的大型Web系统,从这个过程中发现国内项目普遍不能承受<<Software Engineering>>和日本开发流程中的“完美”过程管理,因此对后来的OA开发流程进行了简化:
use-case设计(包含Review)->美工画面设计
->数据库设计
->程序员编写基础画面->整合美工的画面->编码->代码评审(特别加强)->程序员交叉测试(按照use-case要求)
4)代码评审的工作如何更加有效呢
要求程序员先编写调用代码(有点类似测试驱动开发的方法,这个时候很多类和方法其实不存在,所以编译不会通过),技术管理人员评审调用代码,没有问题后程序员再逐一实现各个类和方法,最后技术管理人员再作一次代码评审。为了保证质量,降低成本,代码评审工作是重中之重。
5)使用了NetBeans6.5+UBuntu8.10的开发环境,一个获得了较好的开发速度(Linux性能好),而且避免了windows的盗版问题,Eclipse配置比较麻烦,NetBeans更好上手。
6)找到了ICEFaces Framework进行后续开发,ICEFaces能够提供web 2.0的一切特性,并且只要编写纯Java代码,降低了程序员的负担,JSF所有的基础知识都能够使用。
因此,我认为现在OA的Alpha3开发出来的产品一定比之前的更快、更好,而且功能强大。不过还要继续实践下去。
后续1(2009-7-19):
由于金融风暴的到来,公司出现了严重的赤字,很多事情不能继续进行,其中也包括OA项目。在我暂时离开公司的这段时间,我的技术之火并没有因此熄灭。我亲自开发和研究ICEFaces技术。
首先,我使用基于woodstock可视化jsf项目的icefaces1.8.1,其中发现了icefaces1.8.1也有不少的bug(比如ice:tree使用bind属性时可能导致一些问题),不过好在我的技术底子比较厚,总能找到办法绕过去。在发现sun不再继续支持woodstock项目后,icefaces.org也放弃了对该项目的支持,因此,我们已经不能在netbeans6.7当中找到visual icefaces1.8.1的身影了。开始这对我是一个打击,因为我的英语网站已经写了一段时间了,4000行java代码已经完成了。
不过很快我发现了jsf的今后方向facelets已经能和icefaces很好的结合起来开发,我花了一周的时间将原有代码移植到新的框架中来,很快我就发现很多的优点:
1)facelets带来了更快的性能
2)facelets提供了准确的报错信息
3)xhtml比jsp要求严格,更能早发现错误
4)facelets提供的模板特性能够极大得提升网页开发的效率
原文网址:http://blog.csdn.net/csfreebird/article/details/4154325
结果一直到今年4月份,这个项目才算上线,开发进度一拖再拖,代码质量很差。回过头来考虑原因,有以下几个:
1)程序员技术能力弱
2)对JSF技术不熟悉
3)JSF框架有Bug,并且可用tag较少,不足以应付项目,还需要额外开发自定义tag
4)人员变动频繁
5)按照<<Software Engineering>>最新版的建议和日立公司开发流程结合指定的开发流程不合理
a)设计阶段连web界面的每个控件(tag)的表现形式都描述的清清楚楚,花费了大量的人力
b)开发流程如下
use-case设计-》画面设计-》系统建模-》数据库设计-》编码-》代码评审-》
单体测试式样书编写-》单体测试
集合测试式样书编写-》集合测试
这个开发流程看上去很完美,其实由于国内项目进度要求都很高,其实不能支付这样高昂的开发成本,并且如果项目管理不当,很多文档写了,却没有人遵守。
6)管理人员对代码审查把关较弱
7)缺乏一个合格的项目经理,我因为兼顾公司很多事情,项目经理只是挂名而已,唯一把好关的就是数据库设计是自己亲自做的
8)对OA的复杂业务(特别是考勤业务)缺乏经验,设计人员也是边设计边改。
以上说的是问题,下面也说说说收获:
1)程序员得到了实战的机会,原来我公司的能力弱的程序员一直没有机会编程,只是做一些测试工作,这次让不少程序员得到了较大提高
2)对JSF基础知识的掌握,通过实战和编写文档等方式教育,培养了一个了解JSF技术的团队
3)OA是公司内部第一个多人开发的大型Web系统,从这个过程中发现国内项目普遍不能承受<<Software Engineering>>和日本开发流程中的“完美”过程管理,因此对后来的OA开发流程进行了简化:
use-case设计(包含Review)->美工画面设计
->数据库设计
->程序员编写基础画面->整合美工的画面->编码->代码评审(特别加强)->程序员交叉测试(按照use-case要求)
4)代码评审的工作如何更加有效呢
要求程序员先编写调用代码(有点类似测试驱动开发的方法,这个时候很多类和方法其实不存在,所以编译不会通过),技术管理人员评审调用代码,没有问题后程序员再逐一实现各个类和方法,最后技术管理人员再作一次代码评审。为了保证质量,降低成本,代码评审工作是重中之重。
5)使用了NetBeans6.5+UBuntu8.10的开发环境,一个获得了较好的开发速度(Linux性能好),而且避免了windows的盗版问题,Eclipse配置比较麻烦,NetBeans更好上手。
6)找到了ICEFaces Framework进行后续开发,ICEFaces能够提供web 2.0的一切特性,并且只要编写纯Java代码,降低了程序员的负担,JSF所有的基础知识都能够使用。
因此,我认为现在OA的Alpha3开发出来的产品一定比之前的更快、更好,而且功能强大。不过还要继续实践下去。
后续1(2009-7-19):
由于金融风暴的到来,公司出现了严重的赤字,很多事情不能继续进行,其中也包括OA项目。在我暂时离开公司的这段时间,我的技术之火并没有因此熄灭。我亲自开发和研究ICEFaces技术。
首先,我使用基于woodstock可视化jsf项目的icefaces1.8.1,其中发现了icefaces1.8.1也有不少的bug(比如ice:tree使用bind属性时可能导致一些问题),不过好在我的技术底子比较厚,总能找到办法绕过去。在发现sun不再继续支持woodstock项目后,icefaces.org也放弃了对该项目的支持,因此,我们已经不能在netbeans6.7当中找到visual icefaces1.8.1的身影了。开始这对我是一个打击,因为我的英语网站已经写了一段时间了,4000行java代码已经完成了。
不过很快我发现了jsf的今后方向facelets已经能和icefaces很好的结合起来开发,我花了一周的时间将原有代码移植到新的框架中来,很快我就发现很多的优点:
1)facelets带来了更快的性能
2)facelets提供了准确的报错信息
3)xhtml比jsp要求严格,更能早发现错误
4)facelets提供的模板特性能够极大得提升网页开发的效率
原文网址:http://blog.csdn.net/csfreebird/article/details/4154325
相关文章推荐
- 在浙江杭州快速开发公司内部办公自动化OA系统的经验总结(有成熟的后台配置工具、开发平台、程序员朋友圈还真不错,做软件项目还得靠积累才稳妥)
- 使用mvvm框架avalon开发公司内部运营管理系统的一些心得
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目
- 一个实际的Lisp项目开发心得 - albert_lee的产品技术空间 - 博客频道 - CSDN.NET
- 本人在一个项目开发中所使用的框架和技术
- 组织一个软件开发公司内部培训课程
- .net同一个解决方案下面多个web项目。目的为了较大项目分解模块,各自编译开发!
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之四---组织机构管理源码分享 推荐
- 由于Python本身自带的界面库功能并不强大,我们使用Python+wxPython作为界面开发平台,在公司新的项目中进行界面开发。开发过程使用Eclipse+PyDev 作为集成开发环境。产品发布时使用Py2exe进行打包。如今,在我的团队中,Pytho
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- [项目管理]工程与产品开发的差异——一个老项目的经典问题
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- 开发者是如何提升技能水平的 发表于1小时前| 770次阅读| 来源SquareSpace| 1 条评论| 作者Denis Gobo 开源程序员博客代码编程经验分享 摘要:作为一个技术开发人员,不断的学
- 使用JavaEE开发的一个内部图书管理系统(1)
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目
- 对公司技术人员招聘和管理的一些看法
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之四---组织机构管理源码分享
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目