外包、自己开发、购买通用软件,哪一个才是通往高校信息化的坦途?
先说一说高校信息化工作的特点:
我所在的部门(财务处)决定我们花起钱来总是显得有点小气,如果不需要考虑钱的问题,外包毫无疑问是最好的方案,但是学校不像银行、电信企业一样,投入是为了产出,高校在信息化方面的投入,经济产出很少,主要是提高工作效率、提高服务水平,学校是不可能一次性投入大量的资金来做这件事情的。这是第一个也是最重要的特点:没钱。
第二个特点是需求不停在变:国家在不停的改革,高校也一样,上级部门的文件不停的下,一个需求可能还没有上线就已经没有应用的必要了。换了一任校长、处长,业务会变,需求也会跟着变。中国的高校不像国外的高校,很多业务都已经稳定下来,我们的很多业务都在不停的摸索。
第三个特点是业务部门不会提需求:虽然这些年不停的在说教育高收费之类的话题,但是高校教职员工的收入差距是很大的,收入高的都是热门专业的教授,他们可以赚外快。高校的职工(注意:这里是职工,不包括教师)在学校地位低、收入也低,当然这个是相对的,对比内地、下岗工人、打工仔、农民来说,绝对不能说低,但是与同等文化水平、工龄的同学朋友,我们总是落于下风的。特别明显的是计算机方面的人才,高校根本无法与软件企业竞争,工资差距基本上是一倍(虽然收入少,但是有假放、加班少也有一定的吸引力)。所以这也普遍导致业务部门的计算机应用水平有限,无法提出合理的业务需求。
有了上面这些特点,我们再来看那条路好走:
没钱,外包就很难找到高水品的厂家,厂家不好,后续的风险就很大。软件企业的老板是要赚钱的,他不会来搞慈善、支持教育事业,外包的费用支出对高校来说是个无底洞,业务部门提不出需求,做出来的东西无法应用,要改,掏钱,需求变更快,掏钱,等你上了“贼船”,想下来就难了,到时候价钱就不是“协商”了。问题是有时候我愿意掏钱,企业还不干,企业的开发人员是万金油,我这边业务再急,也要企业有足够的团队能够投入进来。要是碰到组织不好的企业,可能他们前面人写的代码后面的新人根本就读不懂,更是无法满足业务变更的需求。
还有一种模式是“合作开发”,学校提供需求,公司进行开发,形成通用软件后共同推广,也有一些成功的案例,但是随着“数字化校园”的发展,以及高校管理模式差异大、信息化需求变更快的特点,推广起来其实很难,公司亏本的居多。这样的合作就很难持续下去。如果能够解决好个性化的问题,相信这种模式还是有一定前途的。
再来看购买通用软件,行业内还真有几个做通用软件的,但是也有一些问题,首先是离的远,维护跟不上,其次是对你的个性化业务需求反应慢,甚至不予理睬(我就碰到了这样的厂家,我们的业务需求他们说“没必要,别的学校都没有提出来”;我们想做个专用的版本,愿意给钱,他们说公司不准备做专用版本,要用就用通用版)。换一个厂家,恐怕也有类似的问题,我们这个行业的公司都是一些小公司,如果这个公司不是很有实力,自身的管理就有问题,换谁都不管用。而我们对公司的依赖太深就会导致业务发展受限。而且在中国这个市场上,很大程度都是依靠部门领导和企业领导的人际关系来维持合作,这里面的风险就更大了。
自己开发,这里要首先排除到委托自己学校老师开发这个途径,一般学校的老师如果进行开发,也就是找一帮自己的学生来开发,老师日常教学、工作时间已经安排的很紧了,而且很多老师并没有企业开发的经验,所有的都是理论知识,虽然是一个团队,最后做出来的东西很大比例接近于个人开发,只有自己才懂。而且还要依赖于学生的水平,换一帮学生,这个项目也就废了。毕竟,开发对于老师来说只是一个短期行为,教学才是他的主要工作。
还有一些学校,财大气粗的,就养一个“计算中心”,由计算中心来负责全校各类信息系统的开发、整合工作。这样的方案应该是比较好的:资金投入不算少,但是要小于外包,代码都在自己手里面,人员稳定,基本上没有对外依赖,只要编制充足,响应速度也很快。
更多的情况是部门有一两个搞计算机的,自己进行一些小程序的开发,以前我就是干这种事情的,这个就不分析了。
我现在走的路子也属于自己开发,通过老师组织一个学生的团队,依靠自己从书上、网络上、实践中积累的知识,力求把项目做成可以发展的项目,规范化、提高可阅读性。这样做的好处包括:依靠学生开发来降低开发成本,为学生提供“勤工助学”岗位,让学生可以早些接触企业开发模式,提高就业竞争力。但是缺点也很明显:一来我很累,要不停对学生这个不稳定的团队进行技术培训,二来项目对我的依赖性太强,如果我换了岗位怎么办?不管怎么说吧,这个尝试还是要继续下去,看看能否摸索出一条道路。
以上是我的困惑,领导说我这样做很辛苦,不如外包,但是我在这上面一点经验都没有,真的不知道怎么办,能力有限,希望大家多多指教。
posted @
2007-08-22 13:47 肖斯沃勒 阅读(450) |
评论 (12) |
编辑
组织学生进行开发,最主要的困难就是学生的时间不稳定,特别是本科生,本来课程的安排就比较紧,而且社会活动也会多一些,再加上各种各样的竞赛,一周能拿出16个小时已经很难得了。
每个工作日按8个小时计算,可以包含周末、晚上的时间。例如:周末从早做到晚上,作够12小时,算是1.5个工作日。
根据软件开发工作的要求,最好开发人员能够稳定下来,否则,代码的不停变迁会导致每次重新投入进来时阅读代码的时间就占用很多时间。因此要求开发团队成员至少要愿意每周投入16个小时的时间进行代码编写等工作。
所以下一阶段的一些工作思路基本如下:
一、项目组应该根据学生的技术特点、时间进行细分,主要分为
(一)系统分析组:使用UML工具分析系统模型,包括:用例文本、用例图、顺序图、使用Visual Studio 2005的类图的功能,生成静态模型,要包括详细的摘要、备注、甚至是方法重要注意的重点。到一定阶段之后,设计表示层原形。并且将分析的结果形成标准的书面文档,让每一个参与的人都知道该迭代期要做哪些工作。需要掌握UML建模知识、UML建模工具(例如Visio)、Visual Studio 2005、C#等,具备较完整的计算机知识。要求时间比较充裕,每周可以有3个以上的工作日,主要以本部门职工和基本上没有课程的大四学生组成。
(二)代码组:根据系统分析组的模型、文档,构建BLL和DAL的代码,并完成单元测试。需要掌握C#编码、VSTS单元测试、Enterprise Library应用知识、Sql Server操作和SQL、存储过程等知识。要求至少保证每周3个工作日。
(三)表示层组:根据用例文档、表示层原形和代码组的工作,完成表示层的代码编写和界面设计工作。需要掌握:C#、ASP.net、css、HTML等知识。要求至少保证每周2个工作日,并能根据任务管理来进行规划。
(四)技术研发组:根据系统分析组提出的需求,进行技术研发,编制学习资料、教程,方便开发人员快速使用相关技术、外来组件等。
二、要制作一系列的培训课程,以视频、文档的形式,加快团队成员的学习速度,让新加入的成员可以很快就进入状态,现在想到的知识点基本如下:
(一)面向对象和UML基础知识:我们建立的模型要让开发人员看的懂
(二)VS2005代码编写基础:怎么使用VS2005这个IDE编写、单元测试、调试代码
(三)代码规范:包括代码的规范、组织,要求代码必须通过代码分析才行。
(四)团队开发基础:怎么使用TFS进行源代码管理、成员之间的合作
(五)财会基础:因为编写的是财务会计软件,所以需要成员具备一定的财务会计知识
posted @
2007-08-22 12:34 肖斯沃勒 阅读(64) |
评论 (1) |
编辑
我是一个高校财务处负责会计电算化技术的工作人员。最近两个月,通过我们处的信息技术总监蔡老师,网罗到学校里面一班大一、大二的同学,还从其他学校找来一个外援FengMK2,一起来做一个项目。项目暂定名“薪酬辅助核算系统”,通过Google翻译了一个名字:Supplementary Pay Accounting System,于是便简称SPAS。
具体的项目需求就不多说了,开发已经开始两个月了,基本上也从需求分析、设计走向了第一阶段的编码。这两个月正好是暑假,我和同学们做的都很辛苦,进度也很慢。主要原因是经验不足,队伍里面没有一个做过团队开发,所以只好从书上、网上寻找资料,自己摸索。
因为团队成员主要是学生的缘故,所以稳定性差了一些,毕竟还是希望暑假、周末可以休息一下的,所以并没有强迫团队成员天天出现,比较依赖成员的自觉性。经过两个月下来,比较稳定的从设计到代码一路走来的成员主要有三名,还有几个成员断断续续参与了一些工作。在这个这两个月我也没有追求进度,希望可以借此机会形成几名技术中坚,熟悉整个开发过程,以点带面,一次扩大团队,降低稳定性对团队工作的影响。不过,这个过程的确比较辛苦,有些技术、需求讲过了,新人进来又要讲一遍,光靠文档无法解决问题,另一方面,文档的组织也是一个问题,文档组织的不好,新人根本就不知到从那里下手,要让新人读得懂、读的明白真的很难。这些是下一阶段需要继续探索的内容。
考虑到微软的开发技术的易学易用、学习资源丰富、以及我相对了解微软的技术,所以最后选择了微软的开发体系而没有选择高校教学中常用的Java技术。
因为一直以来我在工作时候编写的一些小程序都是单打独斗,并没有做过团队开发,去年参加了VSTS的培训,给我壮了一下胆,决定使用VSTS,特别是使用TFS来进行源代码的管理。但是在使用过程中也发现了很多问题,以后会逐步把问题拿出来跟大家探讨。
需求分析和建模采用UML,开发过程采用UP做指导思想,这里面也碰到了一些问题。因为微软总是喜欢自成体系,在VSTS、visio中对UML支持有限,所以在分析过程中反反复复为UML建模的工具的选择出现了几次反复,这些以后再另文详述。
总而言之,通过实践,总结出不少经验,例如如何在VSTS中进行团队开发,如何进行单元测试等等,没有实践真的不知道会有这么多问题在等着我们。因此,我将在下一步逐步贴出过程中碰到的问题和我们的解决方案,这些解决方案可能并不是完美的,希望一方面可以对阅读我们博客的朋友有所帮助,另一方面也可以抛砖引玉,得到朋友们的指点。
posted @
2007-08-18 15:01 肖斯沃勒 阅读(83) |
评论 (2) |
编辑
在ASP.net 2.0里面提供的CreateUserWizard控件,如果设置AutoGeneratePassword为True,则系统会自动生成密码发到注册用户的邮箱。
问题就是,系统自动生成的密码太复杂了,导致我的软件的用户无所适从,当然,用户的计算机应用水平也不是很高~有些阿姨对电脑知识掌握的实在不能满足我们的期望。
例如系统生成的密码:
P[N{_B:0x^
aV=}c|+@jU(你可以看到,如果自动生成的密码中间出现@,outlook还会自动转变为邮件链接)
结果屡屡不断有电话打来说用这个密码登录不进去,请问大家有什么办法解决么?我的意思是说能让密码简单一些,例如全是数字或者小写字母,我对系统的安全性要求的确没有那么高~!
posted @
2007-05-16 18:09 肖斯沃勒 阅读(230) |
评论 (5) |
编辑