云计算公司决定开始eiwatcher2.0项目。
eiwatcher项目是一个非即时的监察系统,针对工商行业的各项业务,包括OA,呼叫系统,工商局综合业务系统。由于这个系统需要综合其他各个 系统的资源,并且需要针对大数据量的数据进行处理计算,封装后再展示,同时提供提醒,预警等功能,并且在底层数据上大量依赖其他系统,比如需要兼容多个 OA,呼叫系统及综合业务系统,因此开发难度大,需求变化快。
eiwatcher1.0现在已经成功部署到某地工商局,并且开始全市推广,与市属地区及县区进行同步更新数据及监查,但存在大量问题:
上面的问题只是冰山一角,更多的问题是这个系统越来越大,越来越变成没有人知道具体需求与逻辑的东西,而目前的状态又不可能在系统运行过程中做大的 改动,因此为了应对商务上对兼容性的要求,对需求变化的要求以及项目整体的要求,决定开始eiwatcher2.0项目。
根据开发团队现状,eiwatcher2.0将使用JavaEE5平台,Oracle数据库和类似于scrum的软件过程进行开发,过程管理工具是 利用基于jtrac开发的ptms进行。
那么,这个项目如何开始呢?
在项目组人员就位之前,需要有下面几个工作要做。
(1)首先,建立基础代码库并导入基础代码。在这里我们的选择是Mercurial。
(2)然后,是建立ptms环境,建立一个新的ptms项目,把项目组成员加进来。这个项目仅需要包括摘要,细节,重要度,优先级,类型,状态。其 中类型需要defect,task,feature,状态仅需要 open->accept->pending->fixed->closed, 然后就是设置一个里程碑。一个里程碑按一周,就是分别为Milestone1,Milestone2等等。这里简单解释一下:
类型中的defect代表QA测试出来的Bug。当然,任何人都可以是QA。碰到问题就直接报defect,在哪一个milestone中碰到了问 题,就放在哪一个milestone中,比如现在正在开发第5个milestone,那么无论是发现的第几个milestone的bug都报在 milestone5中。 task就是任务,由pm与team leader负责添加。如果碰到了一个不在计划中的任务,那么也需要由team leader负责添加。feature是需求,创建feature的时候不需要管milestome,因为pm和ttl(team leader)在把features拆分成task的时候,来选定milestone.
状态中有五个状态,新添加的任务都处于open状态,然后开发人员在当前milestone中寻找自己愿意开发的部分,签约给自己,这就是 accept状态。如果开发过程中碰到问题需要等待,那可以继续开发别的任务,而把当前任务设置为pending状态,开发完成后就设置为fixed状 态,在设置为fixed状态后,要把任务发给QA,QA测试没问题后,再把issue发给这个签约的人员,同时设置状态为closed。如果QA在这里发 现了问题,那么报defect(bug),而不是在这个issue中留言。当开发人员修复了这个bug后,再走一次accept->fixed流 程, QA测试了当前issue及相关的bug都没有问题后,则可以设置为close状态。
milestone就是从项目初始化的第一天(周一)开始,每五个工作日算一个milestone。
如果当前milestone任务无法全部完成,那就修改为下一个milestone,但要保证开发人员签约的task都要处于fix状态(未必是 close状态),如果开发人员无法完成当前task,则可能需要加班,或者是的确因为特殊原因无法完成,则这时也应该是pending状态,而不应该是 在一个milestone结束后,还处于accept状态。
(3)再下面就是建立测试环境。这个测试环境,要求高一点,要尽量模拟运行环境,包括数据库版本,操作系统版本以及服务器版本。下面简单介绍一下:
需要在办公室局域网内部设置一个服务器,设置固定IP,然后安装一套Linux操作系统(因为eiwatcher2.0将针对Unix环境做开 发)。
首先,配置一个Oarcle数据库,需要由PM和TTL共同根据客户的情况决定使用的Oracle的版本,请不要在这里使用Oracle XE,因为Oracle XE并不适合模拟真实的环境。
然后,建立一个数据库,以多个schema的形式运行,请注意,请不要像eiwatcher1.0时期那样,启用oracle的多个实例,只需要建 立一个实例,然后建立多个schema即可。
建立Java运行环境,应用JDK1.6.0_18,Glassfish V2.1.1,Apache2.2.其中Glassfish V2.1.1需要以glassfish用户,glassfish用户组的身份运行,请不要使用root用户启用Glassfish V2.1.1.
然后建立Oracle的四个Schema,分别为1.综合业务系统模拟数据库(即把生产环境下的综合业务系统的数据建立在这个schema 中);2.原eiwathcer1.0数据库,当然也是当前运行环境的数据。3.空的eiwatcher2.0数据库,这里留空即可。为开发 eiwatcher2.0做准备。4.另一份eiwatcher1.0数据库,用于研究eiwatcher1.0数据库结构使用。
同时,Oracle需要提供Web界面方式的数据库操作工具,方便开发人员平时应用。
然后,在Glassfish V2.1.1上部署一套eiwatcher1.0的程序,用于方便开发人员研究相关需求
(4)建立ETL运行环境
在测试机上部署一套ETL运行环境,用于在综合业务系统模拟数据库中的数据,导入eiwatcher1.0的数据库,也同时用于未来测试导入 eiwatcher2.0的数据库(不需要设置自动导入,但需要提供方便的手工导入方式)
(4)程序开发人员开发环境
JDK1.6.0_18, Netbeans 6.7.1, Thunderbird(强制要求),Mercurial客户端,GTalk, Firefox(firebug)浏览器,ant 1.7.1(配置好path)
(5)美工人员开发环境
需要美工测试多浏览器下的CSS/JS开发
(6)QA人员的开发环境
需要QA测试多浏览器下的运行效果
以上即为需要在项目开始之前的工作,相当于eiwatcher2.0项目的准备工作。其中,配置内部测试机环境的工作,可以延续到第一个里程碑中。
下一个相关的文章会描述如何开始项目组,如何开始第一个最混乱的里程碑。