1.5 项目协同
每个星期五下午,需要有一个Status Meeting。在此会议上,根据项目进度来review我们每个人手上的工作,看工作是否按照计划在走,是否有人延后了,是否影响其他人的工作了。
在此会议上每个人都要报告自己的进度,同时还要报告上个星期做了什么,正在做什么,以及下个星期打算做什么、风险有那些、需要那些人帮助自己?
通过Status Meeting,会让你觉得有人在监督你,无形之中迫使你不断地督促自己不要使任务延后,如果有延后的迹象也要尽早发现,即时赶上。
1.6 项目计划变更
若某些经过努力不能赶上,那也没有办法,只能修改原先的进度表,因为那是我们的估计与现实发生了偏差,我们必须使我们的进度表符合实际情况。
当然这种情况应当尽力避免,尤其在项目后期遇到新的需求,不管怎样,都应重新规划进度,而不是仍旧依照原先的进度去执行,因为老的进度已不能反映现实的情况,要与时俱进,不被条条框框锁住。
要注意许多项目发生最后的20%的工作量会占据整个项目的80%甚至更多,项目一直拖延,因此,在项目计划制定时,需要全面考虑,留有一定余地。
2. 开发文档
在项目进度安排中我们已经把写文档的时间也规划进去了,这里虽然是写文档,其实是设计程序,整理一下思路与架构,磨刀不误砍柴工,这样在实际写代码时会流畅很多,节省时间,因此可以说真正有思想性的东西都在写文档这段时间内完成了。
当然我们这里的文档格式不像ISO那样规定了条条框框,文档格式相对自由,基本上能随意发挥,但对于几个主要点一般来说是需要说明的。要求写的文档能让他人比较容易地看明白,能把问题讲清楚,能反映你的设计思想。
5
文档的数量也不多,开发文档有三类: 1、 Function Spec
需要写明的是本模块完成的任务,解决什么问题,有什么作用,为什么要这些功能,此外我们还会添加进适用范围,有什么不足,注意点是什么,还有哪些地方在以后可以进行改进。 Function Spec中不涉及到任何非常详细的算法。
文档不光给开发人员看,还让项目其他成员以及后来的新人能根据此文档来了解此模块的大致功能。
同时也会给文档编写者看,他们会根据这些Function Spec整理出一份用户手册、产品介绍PPT、培训教案,告诉用户此版本中新增了哪些功能,各功能模块有什么作用,如何使用等信息。
在我们的开发过程中Function Spec是很重要的文档,此文档完成后会抽出一段时间同相关人员一起review这个文档,让测试人员了解设计者的意图,同时熟悉新的功能模块,为接下来的测试作准备。如果其中有误解或不明之处,大家会提出来探讨并由开发者修正。 2、 Design Document。
主要描述实现此模块所涉及到的主要算法、数据结构、类的层次结构及调用关系。这个文档的阅读者主要是开发人员,包括任何想了解详细实现代码的人,帮助人们理解代码。
在某些功能模块比较简单的程序中,此文档所描述的信息会比较少甚至不写。
此文档不像Function Spec,要在开始写代码前就编写完成,它可以随着代码编写的进行而增加,但基本上遵循文档先行原则,也就是要增加新的代码或修改代码前若有涉及到文档部分的应先修改文档,然后再修改代码。
3、 需求和BUG登记
依据Function Spec和Design Document,在系统中按编制计划列出需求并细化。然后,依据次序编写代码,实现Function Spec。
一般,每天需要先将需求细化到10分钟~2小时,安排好工作次序。
6
每天最后一次提交可运行的代码后,应认真整理第二天要完成的需求与BUG。
每一次保存项目时,需要关联已处理好的需求和BUG。
7
3. 编写代码
我们用C#语言进行开发,直接采用Visual Studio开发工具。关于代码风格,我们用VS中自动的代码格式编排,类与类之间间隔2行,方法与方法之间间隔2行。
写代码时不必提供详细的注释及说明,以最快的速度编码。不在注释及说明上花费时间。程序员的时间是宝贵的,因为主要的算法、调用已在需求BUG中描述了。每次保存项目时,只要关联上需求BUG就行了。
利用JSMSoft,可以将它们的说明放入锚点,就能知道这个类或函数的功能以及主要算法的实现原理。而不用将说明放入代码中。
代码说明,一般有测试人员和新员工编写。程序员不写注释,但需要写前期规划,需求和BUG的细化工作由程序员负责。
4. 代码管理
我们采用自己开发的JSM Soft进行版本控制,其中存放了此产品的所有源代码、库文件、文档及release时的安装程序,各个部分存放在不同的目录中。
每天早上要求开发人员从JSM Soft中下载最新的源代码,然后进行编译并开始一天的工作。
在下班之前,理论上要求员工check in所有当天修改的代码,在check in之前要保证编译是能通过的,并能运行的。
5. 测试
按B/S和C/S项目,测试分两种:每日自动化测试,和项目提交测试。
5.1 每日自动化测试(B/S)
8

