代码改变世界

《当程序员的那些狗日日子》(四十)繁杂的需求

2011-08-22 01:38  java ee spring  阅读(189)  评论(0编辑  收藏  举报

按公司的习惯叫法,研发部的人全都被称为“X工”。X自然就是各人的姓,所以我也第一次成了“X工”了。立经理一般也被称为“立工”,但听上去倒像是“立功”。在我的姓后加一个“工”字的叫法,可以说是我最不喜欢的称呼。“工”是什么?别跟我说这是工程师的意思,在我看来就是工人、打工的意思,被称为“X工”,那就将意味着一辈子都在当工人,在给人打工,永无翻身之日。我喜欢的称呼自然就是按广东人的习惯叫法直接叫我的名字,比我小的人可以客气地称我一声“超哥”,但也完全可以直呼我的名字。在公司还有一个习惯叫法,那就是“阿X”。X自然也是各人的姓,所以我除了被称为“X工”外,有时还被称为“阿X”。这个叫法更让我郁闷,你可以按普通话的习惯叫法叫小什么老什么的,比如“小张”、“老张”、“小李”、“老李”,但是把姓张的人叫“阿张”,把姓李的人叫“阿李”,听着不让人觉得郁闷吗?什么叫企业文化?对员工的称呼就可以从一个侧面体现了一个公司的企业文化。

公司录播系统的自动化功能,是应大中小学教学中要录制课堂教学实况的需求而开发的,所以公司的其中一部分客户就是大中小学校,而且应该是以大学学校为主。听说敖总早年就是华师(华南师范大学)毕业的,毕业后留校任职过一段时间,后来自己出来进入企业职场,并在一家比较大的也是搞硬件的公司当高级管理人员长达十年左右,后来就自己出来单干了,即创立了此时的这家科技公司。所以敖总跟华师渊源很深,华师也是公司的其中一个客户。

宗交给我的那套网站程序,网站的功能虽然都很直观,但我将那些功能查看一遍后,仍一头雾水,不知网站要实现的实际业务情况,那些相关资料我也看了后,仍不能理出头绪来,这跟面试时立经理所说起的系统的功能还是很不一样。于是我想向宗了解进一步的情况,但宗说因为他不参与这个系统的开发,具体的情况之前他也没有详细了解过,所以他也不是很清楚。

不过有一天,敖总告诉我,他约了华师的一位老师过来公司,那位老师将跟我讨论系统开发上的事情。果然接着有一天那位老师到来公司了,敖总先在那个客厅接待他。只见这位老师年龄大概与我相仿,并无特别与众不同的地方,如果将其放在大小企业的职场中来看并不起眼,其唯一最明显的地方就是长得很高,但却不是上下身很均匀的高度,而是显得双腿偏长,上下身高度看上去有那么一点不协调,不过并不难看,而是显得有点“Q”,有点卡通人物老夫子的感觉。虽然这位老师外表平平无奇,但敖总却对其客客气气的,大有将其奉为座上宾的感觉。那个客厅,原来就是敖总专门用来接待他的客户和客人的。

这位老师姓祝,所以就被称为祝老师。祝老师是华师其中一个学院的老师,他所在的学院正是负责他们学校教学中录制课堂教学实况背后的系列工作的,所以祝老师对这方面的情况比较了解。学校教学中为什么要录制课堂教学实况?听说是教育部新上任的部长大人推行新举措,要高等学校评选所谓的“精品课程”,所以就要求高等学校教学中录制课堂教学实况,将录制下来的视频及其他相关课件作为评选的对象,被选上的视频和课件就作为精品课程的优质教学资源,供各院校共享。

除了精品课程的原因外,教学中要录制课堂教学实况大概还有两个原因,一是为了将录制下来的视频供校内师生共享,二是为了通过录制下来的视频对教师课堂教学的情况作监督,以促进教学质量的提高。所以录播系统就不只限于在大学学校使用,中小学学校也同样在使用。

简单打过招呼后,祝老师、我、敖总,还有宗,一共四人,就在那个小会议室里,开始讨论系统开发上的事情了。讨论的内容自然不是系统要采用什么技术来开发的问题,而是系统要实现的实际业务情况。其实就是祝老师在讲解他们学校精品课程教学中要在系统上实现的整个流程,包括教室的预约,预约的审批,教师在课前课后上传相关课件,上课时录制课堂教学实况,录制下来的视频和其他相关课件可供学生和其他教师在线观看、浏览或下载,学生和其他教师可对视频和相关课件进行评论,学生和其他教师可对视频进行“打点”操作,教师可设置视频和相关课件的访问权限,视频可按录制时间的先后顺序和访问量的高低顺序罗列出来,等等。此外还包括教室数据的创建、教室与录播主机的关联、课程数据的创建、课程与教师的关联、上课时间数据的创建、用户数据的创建、学生数据的导入等环节和功能。

所谓的“打点”,即是视频在播放的过程中,观看的人可以对当前画面即时进行简短的评论,以后其他观看的人就可以通过该简短评论使视频直接跳到相应的画面,从该画面开始播放。教师的每一次上课都被视为一个“教学单元”,所以所录制下来的视频和其他相关课件都将与该教学单元相关联,以作为该教学单元的资源。

教室的预约操作中,祝老师要求在选择某个教室后,要将该教室可预约的上课时间都罗列出来供选择,已被预约过的上课时间则不再列出来。上课时间就是学校规定的正常的上课时间,包括上下课时间点。祝老师还要求预约后在审批前仍可对预约进行修改,即重新选择新的上课时间等。这个功能从表面上看好像很简单,而且虽然还没到真正的开发阶段,但我稍作思考后就觉得此功能背后的程序逻辑很复杂,需要一定难度的程序算法才能实现。但是即使程序逻辑很复杂,程序算法难度很大,我都没有拒绝的理由,程序员的天职就是用或简单或复杂的程序去实现各种各样的功能。

祝老师还说,各种课件中,有DOC、PPT、XLS、PDF等格式的文件,还有教师以前所保存的一些视频文件,这些文件希望在上传到系统后,DOC、PPT、XLS、PDF等格式的文件可以自动转换成SWF格式的文件,视频文件可以自动转换成FLV格式的文件,这样在系统上就可以以统一的方式方便地浏览或观看这些文件。

视频文件转换成FLV格式,好处自不用多说了,FLV是当前视频文件的主流格式,只要网页支持播放Flash动画,FLV格式的视频就可以播放,所以可以实现跨平台,而且FLV文件体积小,加载速度快,视频质量好,等等。DOC、PPT、XLS、PDF等格式的文件转换成SWF格式的文件,也有同样的好处,只要网页支持播放Flash动画,就可以实现在线浏览这些格式的文件,而且还可以实现版权保护。但是毫无疑问各种文件格式转换的功能也并不简单,而且我心里的第一感觉就是,凭我的技术水平,未必能实现得了这样的功能。但是在这个时候我并不能当面就说我做不了这样的功能。

祝老师所说到的这些实际业务情况,是我过后整理出来的表述,但他在讲解时并没有说得那么清晰,而是说得很表面化和有点泛泛而谈,听上去就是一大堆繁杂的需求。那些功能从表面上看都似乎很简单,但按照我在程序开发上所积累的一点经验来判断,很多功能的程序逻辑都并不简单,而且有些已似乎超出了我的技术范围和水平。

教师在上课时录制课堂教学实况,开始录制时需要启动录播主机上的“启动录制”操作,下课时停止录制,则相应地需要启动录播主机上的“停止录制”操作,所以我要做的这套系统(姑且称其为教学视频资源管理系统,简称视频管理系统)就要提供这样的功能,让教师可以在这套系统上就能实现这样的操作,而不用再从录播主机的软件程序上去进行这样的操作。要实现这样的功能,就要通过录播主机软件程序所提供的程序接口来实现。

视频录制下来后,还需要将视频文件及相关信息从录播主机上下载到视频管理系统所在的服务器上,然后再对这些视频文件进行相应的处理。所以宗就提出,还需要做一个独立的文件传输程序来实现这些操作。当然这个文件传输程序也作为视频管理系统中的一部分了。

敖总似乎对当中的技术细节很关心,不时过问一些情况,完全不像一些公司的老总,对技术细节基本不会过问,而只关心能否实现要做的功能,何时能实现,系统何时能开发完成等。这可以说是敖总对视频管理系统的开发很上心,也可以说是敖总对视频管理系统的开发不放心,不放心下面的人能否按照实际的情况来将系统做好。下面的人在这个时候自然指的就是我。

宗倒是没多说什么,除了说到文件传输程序的情况外,就只是在敖总向他问起如何从视频管理系统上实现启动录制和停止录制的操作时,以及如何将录制下来的视频文件从录播主机上下载到视频管理系统上时,宗才跟他解释了有关情况,包括视频管理系统所在的服务器与录播主机的关系。

经祝老师这样讲解后,视频管理系统跟我面试时立经理所说起的系统的功能几乎完全不一样了,立经理所说到的只是对录播主机上所录制下来的视频文件进行管理而已,并不涉及精品课程教学中的实际业务情况和各种文件格式转换的问题等。于是我问宗和敖总,面试时所说到的系统还做不做,敖总说,那个先不用管,就照着祝老师所说的去做,有关系统开发上的实际业务需求以后我就多跟祝老师沟通,祝老师对精品课程教学方面的情况很了解,他可以给我提供很多有用的信息。既然敖总这么说了,表面上我当然不会有什么异议。

讨论完后,敖总亲自开车送祝老师回学校。

很显然这样的系统跟我在邮购公司时所接手的兑换系统有很大的不同,跟我以前在其他公司所做过的网站系统也有很大的不同,从祝老师所说到的情况来看,这套系统并不是那么简单,所以等待着我的,也并不是那么轻松的工作。

祝老师回去后,就将他所讲解到的内容整理后做了个DOC文档发过来给我,接着不久他还再到我们公司来当面跟我解释一番。然后我就根据他之前所讲解到的内容和这个文档来做需求分析了。

这个文档写的也是大而概的东西,虽不能说毫无价值,但对于我做需求分析也没有很直接的帮助,所有的内容都需要我再次思考和整理后才能变成有用的东西。

所以,面对着这些繁杂的需求,我也开始了做不同寻常的需求分析的过程。