锁定老帖子 主题:重用管理和技术研究在软件公司的重要性
精华帖 (0) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-30
我想听听大家所在公司的情况,就是你们公司有专门研究技术的人员和部门吗?这些人不参与项目的开发,而是开发技术框架,为开发人员提供技术支持和培训,对公司的技术资源进行积累,形成公司技术资源库。如果不设立专门的人员,而是在项目中积累,就没有统一性 ,开发人员在项目中受进度等项目指标的影响,他们的目的是完成项目,和形成技术积累目标是不一致的。 我认为软件公司提高开发效率,是应该要有一个这样的组织或部门来进行这样的工作,但实际上很多公司不够重视,结果因为技术支持不够,公司平台和框架不完善,开发效率非常低,以往技术资源的重用也不理想。公司领导对这块不是很重视,认为技术是次要的,项目是主要的。不把技术研究,通用技术平台建设以及资源库当作公司重要的任务来看待。直接的结果是,技术人员参差不齐,工作成果依赖实际技术人员的水平和学习能力,没有公司级的技术支撑。 我认为,在软件公司中,一个人的工作能力体现为四个方面: 第一 知识。拥有了知识,才有了解决问题的前提,知识面广,解决问题的思路就更宽阔。 第二 工具。熟练运用工具才能提高工作效率。用的好可能比用的不好工作效率高几倍以上。 第三 技能。比如精通Spring框架,技能直接体现在工作的效率上,是一个综合的体现。 第四 制品。这里就是指工作成果,程序员的制品就是写出高质量的代码,需求分析人员就是写出一篇完善的需求分析文档。 对于现在的企业应用,特别是开发Java应用,经常需要借用多个成熟的框架来完成,学习成本可以说非常的高。对于一个能够胜任工作的员工,应该有统一的获取这些知识,技能的途径。单纯通过自学积累是很难获得的,而且学习效率也非常低。 对于一个软件企业,如果想长期发展,我认为下面这些东西都是必须的: 1. 技术平台。公司统一的技术平台,为开发项目和产品提供支持。 2. 资源库。 积累特性领域模型和业务知识。 3. 研究中心。负责技术平台的开发,资源库的建设和维护。应该做为一个单独的组织。 同时负责组织和实施新技术的研究,并转化为公司积累。另外就是组织培训, 培训工具和开发技能,提高开发人员效率 目前我们公司的实际情况是,所有人都在参与在项目中,没有人负责技术研究和积累工作,技术框架也不够完善,也没有时间完善。我是技术总监,但人员都在项目中,所有这些事情不是我一个人能完成的,况且我自己也有一些琐碎的管理工作,根本没有精力实施上述计划。 请大家发表一下看法,不知道我问题有没有描述清楚。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-30
说的好,我们公司好像也缺乏这样专门的人
|
|
返回顶楼 | |
发表时间:2008-01-30
重要性是不言而喻的,怎么做呢?能说说你的计划吗?
|
|
返回顶楼 | |
发表时间:2008-01-30
楼主说的很像是责任分担
自己不想承担这样的责任 认为新建一个部门就可以 把这样的问题产生出来的矛盾转嫁给别人了。 PS:那个部门的人也是人不是神。也是由程序员里找到的人。你要是作不到的事,让别人来作别人也很为难的。 |
|
返回顶楼 | |
发表时间:2008-01-30
抛出异常的爱 写道 楼主说的很像是责任分担
自己不想承担这样的责任 认为新建一个部门就可以 把这样的问题产生出来的矛盾转嫁给别人了。 PS:那个部门的人也是人不是神。也是由程序员里找到的人。你要是作不到的事,让别人来作别人也很为难的。 我不是不想承担这些责任,其实我有完整的想法,而且基本都写成方案了。也成立了项目组做技术平台,但是这个项目组除了我之外,都是兼任的。公司明确说了,以项目为主,结果我这个项目组的人大部分都在做项目。做技术平台的人相当于临时工,不好控制,而且他们都有部门经理,人不归我管。成立这样的部门,我是想当这个部门负责人,我的部门任务就是服务于开发部门,从组织架构上讲,职责也是清楚的。分工越来越细,越来越明确是整个社会发展的趋势。 软件重用收益是长期的,但是公司领导基本以短期利益为重。 国外,像moto,sony等大公司早在10几年前就已经考虑基于组件的重用了,我们国内目前公司都停留在比较低层次的重用。 比如重用源代码(外包模式里的代码copy),重用类库(API),重用技术框架(比如Struts+Spring+Hibernate)。现在大部分公司是重用类库,一小部分公司能够利用开源框架为基础,构建自己企业的开发框架。有的做的完善,有的做的不完善,但大部分还是停留在技术框架的重用,这种框架是可以解决一些问题。但对更大粒度的重用,比如业务组件的重用,据我了解,一般公司都没有。比如你给一个客户开了了一个系统,假设含有100个模块。 推广到另外的客户时,发现其中50个模块能用,40个模块需要修改,10个模块不能重用。如果没有一个技术平台做支撑,可能的做法就是在svn中建一个分支,在整个代码树上做修改。如果推广100个客户,维护的工作量是不可想象的。所以才有了基于组件的开发,大公司可以在产品线范围进行抽象,封装组件,提高重用性。Eclipse的插件体系结构是个很好的参照,我们公司有两个技术体系,一个是dotnet,一个是java。在dotnet上,开发客户端应用,我参考Eclipse的插件体系结构,网上资料不少,但都是demo这个层次的,这块我已经开发出一个雏形,采用组件+服务的理念构建的,参考OSGi规范。框架级的重用是带有局限性的,比如基于两种技术框架构建的应用,很难在业务逻辑层次进行整合。Java这块算是比较好的,客户端应用有好多实现OSGi规范的框架,有Eclipse RCP。B/S架构有JSR-168,268标准的Portal架构,这个可以达到业务组件的重用,但这些平台普遍较慢。我们公司用开源Liferay Portal,做了几个项目,客户普遍觉得慢,不过这个Portal架构我还是看好发展前景的,各个大公司IBM,BEA,SUN,Oracle都有产品。现在有OSGi在Server端的实现,我没仔细了解过。当然,即使有了技术平台,对业务领域的深入分析还是非常重要的,可以说比以前更重要了。如果你采用插件体系结构来开发,插件划分的不好,一样重用性很差,但这个技术平台是两个层次的关系,技术平台是基础,深入分析是保障。组件的重用我认为可以分这样几个层次,比如基础组件(权限,工作流,日志等)和特定领域业务组件(比如OA里的新闻发布, 消息管理,工作日志等等) |
|
返回顶楼 | |
发表时间:2008-01-30
能不能提高工作效率?
能的话,可以与老板谈 必要资源有多少? 如果不能拿到人员组格权,不用想了作了也不爽。 如何交流? 你公司原来的组织结构可不可能在不用强力行政手段就可以作到 底层的交流。 如果我就不会去作。 因为如果没有先例的新事务是很难成功的。 我会找个以前的闲置的部门来作新部门的壳子 借壳上市。 |
|
返回顶楼 | |
发表时间:2008-01-31
软件重用收益是长期的,但是公司领导基本以短期利益为重。
国外,像moto,sony等大公司早在10几年前就已经考虑基于组件的重用了,我们国内目前公司都停留在比较低层次的重用。 不同公司 侧重点不同,你举例都不是以开发项目,外包为主的这些公司,有没有这种公司的很好的实例,你再谈你的思路是否能成功。 |
|
返回顶楼 | |
发表时间:2008-01-31
这个在一般做项目的公司是不容易的。
中国公司大多没有核心技术,这个还是现状,所以对于技术不会有很大的动力和兴趣。 这个跟专有技术的较高整体成本有关,比如人员跳槽之类的因素。 |
|
返回顶楼 | |
发表时间:2008-01-31
ztka 写道 软件重用收益是长期的,但是公司领导基本以短期利益为重。
国外,像moto,sony等大公司早在10几年前就已经考虑基于组件的重用了,我们国内目前公司都停留在比较低层次的重用。 不同公司 侧重点不同,你举例都不是以开发项目,外包为主的这些公司,有没有这种公司的很好的实例,你再谈你的思路是否能成功。 1.长期做定制开发项目,收益率很低的。我们是做一个行业的,虽然不能都产品化,但还是有些东西可以产品化的。 2.我感觉有没有好的实例不重要,只要探讨这种思路可行,就可以去实践。况且有我这种想法而且去实践的,应该不少的吧。 |
|
返回顶楼 | |
发表时间:2008-01-31
Lucas Lee 写道 这个在一般做项目的公司是不容易的。
中国公司大多没有核心技术,这个还是现状,所以对于技术不会有很大的动力和兴趣。 这个跟专有技术的较高整体成本有关,比如人员跳槽之类的因素。 其实项目多,不用什么技术含量也都能完成,赚的钱的不少。但我感觉这只是权宜之计,不能长久这么干下去。 做这个并不一定很厉害的技术人员,只要肯学习有兴趣就行,要长期坚持做下去。可是,一般厉害的开发人员, 领导都不太肯放,都是在做多个项目的技术支持。 |
|
返回顶楼 | |