« 经验与探索,J2EE,项目,开发,团队合作,编程思想系列博文起航序« »团队项目合作探索系列二:开发模式 »
团队项目合作探索系列一:项目与编码

昨天写的序[经验与探索,J2EE,项目,开发,团队合作,编程思想系列博文起航序] ,今天有两位朋友指出文章的标题不太好,所以从今天起,系列文章标题改成了团队项目合作探索系列,英文名称为teamwork.

在我学生时代,我就没能分清项目与编码,那时认为,项目,就是编码,一个项目的大部分任务就是编码.而事实上,编码只是一个项目中的一部分,最小的那一部分.正规的项目就像一个刑事案件,总有一个过程,不可能直接就是结果.

我们项目确立之前,就应该是一个长期的立项过程,但是,作为技术开发来说,我们不讨论这个,我们从立项之后说起.从这一刻开始,一个项目基本上都是要经过这样的套路:需求调研==>需求分析==>需求文档==>概要分析==>概要设计==>概要设计文档==>功能模块划分==>分工==>代码开发==>开发过程中的单元测试==>开发结束,综合测试==>试运行==>正式交付==>维护.

但是实际过程中,我们往往不会严格遵循这种套路,而且,上面写的这个套路,也不是书本中以及网络上技术文章中提及的,而是我此刻想起的,本身也不是什么规范.

我们在开发过程中,其实,或大或小,都会淡化除编码之外的工作.因为,编码,让我们这些技术人员感到快乐和成就,但是,其它的东西,我想没有几个人会把这些当成一种高兴的事.

但是,不管如何,大家都会有这样一个大致的过程,也许我们前期只会随便写写需求与概要,并不是很规范,但是,我并不反对,因为,这些规范及流程也是为了更好的组织项目的开发,但是如果项目不够大,遵循这样的过程反而是一种负担.

简单点,我们归纳成这样的流程:需求及概要及分工==>项目编码开发及单元测试==>综合测试及试运行==>交付及维护

作为团队开发,第一个过程是很重要的,没有一个详细的文档(需求,概要,分工),团队合作会很艰难,除非有一个很强的英雄领导.

文档应该是活泼的,我认为只要包括了重点就行,不用太多言语.比如,它应该说明我们这个系统要做什么,把这个内容详细一点,就是需求了,然后,我们开发者认为这个系统应该做成什么样子(技术上,功能上,模块上),这就是概要,最后,我们有什么资源,我们如何分工及最大化利用已有的资源,这就是分工与合作.这个过程,如果做得够好,够详细,对后面的编码与团队合作很有帮助,所以,如果你有时间,还好还是在这个阶段上下点功能.

编码,是实现一个项目的基石,项目的好坏,直接的影响就是这个.我们一个学生刚刚进入项目中时,第一个要掌握的就是编码能力,但是,作为一个有经验的工程师,这就不再是他的重点了,他的重点更多的在于业务,以及技术框架上,及控制代码规范和质量,编码能力,只是他吃饭的工具,就像吃饭用筷子一样平常,如果他连这都不行了,那还能吃这碗饭吗?

编码,不仅仅是编码,我们要善于在日常的编码中进行总结与归纳,以及最终给自己做一系列的封装类.一个好的封装类(自己的),胜过千千万万行代码经验.

按我的经验及想法,总结出自己在项目开发中的各类代码,封装起来,作为一个util类库.另外在使用其它类库前,封装一个基类,这个基类去继承别人(或者开源)的类库,这样,便于在项目中统一控制这些类.将来如果需要更换别人的类库,你也许只要对你的这个基类进行少量的修改就可以了,而不必对每个使用了别人类库的地方都去修改.

对于经常重复的代码,应该适当的进行提取,封装,来提高代码质量及代码的复用性,在eclipse中还可以做成模板来使用.

而对于一些核心的,各项目可能都会拥有的模块或者功能,就应该在合适的时机提取出来,加以修改,配合适当的配置文件,做成一个独立的组件JAR包,以便在其它项目中使用,使用时,只需要修改相应的配置文件就可以进行强大的功能控制.

但是,有一个问题,以上讲到的是做为一个程序员尽量去做的事情,但是,在团队合作中,如果每一个人都按照自己的封装去做,那团队还如何合作得了呢.

所以,我们还应该继续探索团队合作.

 


Tags: 经验与探索  J2EE  项目  开发  团队合作  编程思想  teamwork  

原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.cn/

本文链接地址:http://www.busfly.cn/post/teamwork-01-Project-coding.html

如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~

     
相关文章:
  • 引用此留言  2.巴士飞扬  
  • johnny
    觉得技术上可以说是开发者认为要怎么做怎么实现某个模块或功能,但是模块和功能本身上,应该是按照需求来决定的吧.

    自己企业用的软件,有些功能就是开发者觉得需要就加上了,其实实际用的当中并不是这样,最后还是把那些累赘的功能,都去除了.


    说得很不错,需求分析是很重要的,但是功能模块的划分并不是需求分析的范围,而应该是概要设计的范围,当然,概要设计是以需求分析为基础的,需求分析做得不够准确,就会出现问题,正如你所说的,有些功能,开发者加上去了,却最后发现不是客户需要的.

    造成这个现象的原因有很多,需求分析不够准确首当其冲.另外,还有一个比较重要的因素,客户如果不能认可开发者自行添加的功能,很大一部分原因是因为他们不清楚,不了解这些添加的功能.也就是说,程序员没能很好的向客户推销自己的成果造成的问题.我认为,大多数情况下,客户们都不是很清楚自己的需求,而作为专业的程序员能在这方面做得更好,他们有能力为客户推荐一个解决方案,但是结果却是让客户不能接受的,原因就在于没有好好的对客户进行相应的推荐或者说培训.

    像微软,IBM等在推广产品时,几乎都会同时发步培训课程,这是同一道理
    johnny 于 2008-11-4 16:41:38 回复
    这到是,很多用户自己也不知道自己的需求。

    对客户培训是很重要的一环。把一个新概念教给相对低级的客户,是软件价值的体现了。

    我觉得这个也看客户公司和开发者所处的相对地位吧。

    开发者要比客户公司还要有行业经验。
  • [删除]2008-11-4 13:13:29 回复该留言
  • 引用此留言  1.johnny  
  • 觉得技术上可以说是开发者认为要怎么做怎么实现某个模块或功能,但是模块和功能本身上,应该是按照需求来决定的吧.

    自己企业用的软件,有些功能就是开发者觉得需要就加上了,其实实际用的当中并不是这样,最后还是把那些累赘的功能,都去除了.
  • [删除]2008-11-4 11:52:20 回复该留言




◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
网站分类
分类最近文章
最近发表
最新评论及回复
最近留言
热文排行
随机推荐文章
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.