转眼间,自己从事IT已经两年了。期间亲身经历了一个MIS系统的沉沉浮浮,感受到了国有企业管理存在的诸多问题。让我体会最深的是:一个技术人员光靠提高技术知识还不行,因为管理比技术带给项目的影响更深。所以当一个公司管理存在一定问题时,技术人员总是感到力不从心。21世纪的中国,需要的是人才,尤其是管理人才。
虽然我只是一个项目的开发成员,在企业管理上没有任何经验。但我却一直在观察和思考,所以这里我想对两方面进行总结,一是企业管理,二是项目开发。
我们公司以前的业务主要面向网络架构与系统维护,在软件开发上还没有稳定的开发环境、没有成熟的开发流程、没有丰富的开发经验,人才匮乏,基础薄弱,这就是我们的现状。作为一个企业,做项目赢利是生存之道,但为了长远的发展,我觉得公司应该着力于建立开发环境,开发流程,开发规范,然后在实际的项目中检验完善,并把开发经验整理成文档。
1、完善开发环境
由于我们公司在LINUX的研究上已经有了一定的基础,因此可以建立起两套开发环境,一是LINUX+APACHE+MYSQL+PHP(LAMP),二是LINUX+TOMCAT+MYSQL+JAVA(LTMJ)。PHP以快速开发见长,它有丰富的函数库,有易于替换页面的模板技术,很适合中小型WEB项目的应用,所以建议普通的网站采用LAMP。JAVA博大精深,有功能强大的中间件支持,有开源免费的框架结构,另外支持的企业也很多,资源丰富。因此大型项目建议采用LTMJ,其中的TOMCAT根据实际需要可以被其他应用服务器替换。公司应该明确这样的发展方向,有针对性地建立并完善开发环境,提高开发团队的开发能力。JAVA虽然已经是企业级系统开发的行业标准,但它对公司的积累,开发人员的素质要求也更高,所以我认为公司一方面要加大力度对该技术的研究,另一方面不要被潮流所左右,要对每一个项目进行客观分析,我们只选择最适合的,不选择最流行的,争取项目利润的最大化。LINUX研发应该有更高的要求,而不仅仅是停留在使用的层次上,因为它本身就是一个大的编译环境,开发环境,所以应该让有编程经验的人加入,那样才会提高研发成果。
2、培养企业形象,扩大企业知名度
公司应该从***计算机中心的角色中转变出来,培养自己的企业形象。我们不但要提高工程部的服务质量,也要保证软件部的产品质量。我们所开发的产品除了要满足功能需求外,还要注意细节的完善。比如用户界面、人机交互已经不在是软件的奢侈品,而是必需品。为客户考虑得更多,会潜在地为我们带来更多的客户。公司应该确立项目和产品齐头并进的方针,有项目时做项目,没项目时做产品,既多了一个利润增长点,也可以锻炼队伍,还可以扩大企业知名度。我们公司作为一个软件公司,竟然没有自己的门户网站,也没有一套象样的管理系统。其实,我们完全可以以此为契机,完善公司的开发流程。比如企业网站,先根据功能进行抽象,比如:新闻发布,网站调查,用户留言,活动社区等,然后建立各个模块的代码库。如果把企业网站比作是一台机器的话,各个功能模块就是零部件,当我们用开发的零部件组装成一台完整的机器后,我们公司的门户网站也就建起来了。更重要的,我们已经具有了快速开发企业网站的能力,无非就是各种功能模块的选择与装配。甚至,我们还可以做一个装配的软件,这就是我想象中的能够制造软件的软件。当然,能够做出这样一个软件难度肯定更大,但我觉得对于一个企业来说这是值得去尝试的,而且,企业网站的功能相对比较简单,技术上也是可以实现的。对于公司的管理系统,我认为可以尝试开发一套适合中小型企业的OA系统。这两套系统,只是我的一个初步设想,考虑肯定还不够完善,还需要做充分的市场调研和详细的系统分析。
3、完善规范和建立资源库
标准和规范对于软件开发的重要性不用多说了。制定标准和规范也应该是一件很慎重的事,尤其是开发规范应该由有丰富开发经验的人来制定,否则效果只会适得其反,降低开发效率。开发规范跟语言有关,我们公司主要使用两种开发语言JAVA和PHP,由于面向对象编程已经完善和成熟起来,而JAVA无疑在OO编程占统治地位,因此我建议PHP开发规范向JAVA靠拢,这也符合我们公司现状:开发人员较少,难免会出现交叉开发,既一个人扮演多重角色,参加多个项目,使用多个语言。这样,在语言变换的时候就不会出现不适应的情况。至于资源库,根据我们公司特点,应该包括软件库(开发软件),图片库(网页素材),代码库(通用代码),资料库(开发资料),备份库(软件文档备份)。应该建立起一套系统来进行安全和类别管理,并有专人维护,也可以把这套系统纳入企业管理系统之中。规范和资源是随着项目的开发不断完善和增加的,对于企业来讲,这就是一笔财富。
4、人才的培养务专不务全
IT技术日新月异,要求开发人员需要不断地学习新的知识,新的技术。但人的精力毕竟是有限的,谁也无法掌握所有的技术。因此公司应该把个人爱好和公司需要结合起来,有目的、有方向地培养人才。我们不需要样样都会,样样都只知皮毛的人,而需要需求专家、数据库专家、语言专家、界面专家等专业人才,这样组合起来的团队才能各尽其才,各展所长,这样组合起来的团队才是技术上有深度的团队,这样开发出来的产品才会是高质量的产品。当然作为我们开发人员自己,平时要注意拓展自己的知识面。软件开发,绝不仅仅就是计算机的事,需要的是个人修为。公司应该制定长期和短期的学习培训计划,定期进行技术总结和交流。比如一周花两个小时进行技术总结和交流;一个月开发团队要学会哪一个框架;半年应该学会某一门语言。同时还要鼓励技术创新,奖励肯在技术上进行钻研的员工。
5、制度的完善
作为一名员工,应该培养自己好的职业习惯和高尚的职业道德。但作为一个企业,却绝对不要指望员工能有多高的思想觉悟,自觉圆满完成各项工作,而应该不断完善规章制度及其监督制度,引导和监督员工的工作行为。合理的制度是不会让员工反感的,相反,这可以帮助他们戒除恶习养成好的工作习惯从而变的更优秀,惩罚恶例奖励优秀从而让大家获取更大的利益。其实这和依法治国的原理是一样的,法律只对有违法行为的人才有约束作用。所以请恕我直言:当一个公司工作效率不高,风气存在问题,在抱怨员工素质不高的时候,管理人员请首先从自身找问题。软件开发,是一个特殊的职业,很难度量员工的工作量。因此,这就为公司管理提出了更高的要求,如何才能有效刺激员工的工作积极性,保证团队的开发士气。合理的薪酬制度是一把有力的武器,它可以惩莠促良,提高公司的向心力和向前力。我们应该承认每个人的能力是不一样的,所以就应该接受薪酬的差距。软件公司普遍都使用基本工资加项目提成的办法,对于不在项目团队的员工,比如维护或做产品,则加适当的奖金补足。项目提成,要采用风险制,即项目完成的质量高,成本控制的好,时间使用的少提成越高,如果项目失败了,则没提成,这样可以提高项目成员对项目的责任感。
其实软件开发人员是一个比较特殊的群体,我们虽然很在乎薪酬(生存需要),但我们更看中做事,看中创造性活动的带来的成就感。企业只有为员工提供施展才华的舞台,让他能够感受到编程带来的快乐,能够为员工谋得更高的工资,让他能感受到工作的优越感,员工才能以自己的聪明才智为企业创造更大的利润,才能让一个企业真正走向良性循环,做到员工和企业双赢的结果。
我来公司后就一直开发**项目,这个项目难点不在于技术层面上,而是我们公司和**这种非正常的客户关系上。这个项目先后有三个项目经理接手,多次改弦更辙,时间长达三年,浪费了大量人力物力财力,这都是很不正常的。这个项目很重要,**把它看着企业信息化的标志,因此我们公司把它列为工作重中之重。但作为一个企业,应该对每一个项目实施好时间控制、成本控制、质量控制,这个项目绝对不能无限期拖下去。不管公司怎么定位,在我心目中,这个项目都是一个失败的项目,因此在我心中才留下了很深刻的印象,关于软件开发的一些模糊的概念也逐渐清晰起来。
1、需求尽量完善
在合同签定前,应该尽量细化需求,在项目开始后,要尽量限制客户的需求。如果需求不能控制,那么你项目离失败也就不远了。
2、项目计划尽量考虑周全
做一个草率的计划只会让该计划不断被修改,结果只会拖延项目的进度,提高项目的成本,这样的计划只是一个形式,没有实际意义。
3、系统需要架构
大型系统尤其重要,如果我们要盖大厦,肯定要考虑地质、气候等条件,然后才能确定挖地多深,钢精型号。不可能因为我们只有盖过公寓楼的经验,就以为无数个公寓楼叠起来就是大厦,结果可想而知。软件是一个变化的事物,用户的需求随时会变,没有一个良好的结构你将会发现维护工作步履为艰,代价更高。
4、 数据库设计
数据库不是业务数据的简单罗列,它应该是整个系统的完整抽象,实体关系图除了实体外还应该包括他们之间的关系。
5、项目延后怎么办
盲目加人只会延长工期。如果加入新人,代码质量还不能得到保证。这个时候,你要么注入加班费刺激一下,要么砍功能。
6、做事原则:先主后次,先易后难
不要在不重要的功能上浪费太多的时间。浪费了时间就可能就会延误项目,最终你可能会发现,你费尽心思做的功能可能就是要砍掉的功能。
7、保证规范的执行
没有规范就不能保证代码质量,项目也就失去了可维护性。最糟的情况是,系统BUG呈不收敛状态。
8、测试驱动开发
没有好的测试就没有好的产品。没有及早的测试就只会让缺陷在系统测试阶段更难发现,因此单元测试是必需的。
9、尽量减少修改
系统是设计出来的,而不是改出来的。无休止的修改只是在不断地否定自己,每个人都会厌烦这样的事。
10、重视用户界面
还是那句话,人机交互不是软件的奢侈品,而是必需品。
这就是我想在2004年年底写的工作总结。在上次全体职工大会上听了韩总的讲话,让我感受到了新一届领导班子力图开拓发展的思想。软件开发是一个技术型比较强的行业,高手和新手工作效率和质量往往有数量级的差距。公司应该逐渐建立一个技术过硬专家团,协助领导的决策,指导项目的开发。当然作为开发人员,更应该收起浮躁的心,踏踏实实地做技术研究。
posted on 2005-10-24 20:07
瘦猴 阅读(342)
评论(0) 编辑 收藏