东成西就

路漫漫兮 其修远兮 吾将上下而求索!

LightweightCTI开发实录(1) 缘由

一、缘由

1.1、初始需求

  我所处的单位是一家拥有十万客户以上的大中型供水企业,每个月都会形成数以万计的客户收费资料。客户则需要在规定的缴费期间通过某种途径将其当前发生的费用缴交给水司,其中大部分客户能够按期缴纳费用,而部分客户则会由于种种原因无法按时缴费,也有少许客户存在恶意欠费的情况。因而公司希望能够对其欠费的客户主动通过电话语音技术进行费用的催缴。

在催缴时应该可以让业务人员设定相应的规则。

1、  如对于普通客户金额大于30.00元且欠费时间超过30天就需要进行催缴;

2、  对于企业客户则要在当月让其缴清所有费用,需要进行费用提醒等;

3、  在呼出时可以指定什么时候进行催缴;

4、  另外一个隐性的需要是要求客户可以通过电话语音系统查询相关资料。

以此作为开篇,在接下来的篇幅中我们将一起进入到软件的设计与开发中,同时我将力求展现一个从提出需求到最终软件完成的全景式影像,通过它来展现软件设计的魅力所在。由于本人也是初接触语音技术相关的应用开发,因专业技术及领域知识的限制所以文中难免出现让专业人员觉得很幼稚可笑的观点,所以请大家能够在笑过之后不吝指正:)当然我们并不是要从开始就拥有一套完善的解决方案,而在不断的迭代中逐渐向着正确的方向靠拢,最终形成可用的应用软件。在这里你将看到我是如何犯下错误,又是怎样去克服它们的。最关键是你将拥有一份和我一样的软件开发体验!

1.2、目的与进度

本文所展现的所有细节将以LightweightCTI为基础,它是我目前正在开发的一套适合于本公司进行电话催缴与语音查询的系统。同时,我也将把其演化成适合大部分有同样需求的中小企业通用的呼叫业务处理软件。上文中我已经提到本人也刚接触此类应用的开发,所以也想借此来为自己学习历程进行记录,另外一方面,希望通过本文为有同样需要的朋友提供一份参考。如果在文中不小心引用了您或您所见过的相关内容,请您在立即通知本人,我将在第一时间内撤除相关章节,并为此向您致歉。

正如本文的标题一样,我希望将LightweightCTI开发的点点滴滴都能够记录下来,所以此文的写作进度将保持与软件的开发进度基本一致。需要申明的一点是由于公司业务需要,我已经开发出一个简单的外呼业务处理程序,但是它将只是作为对LightweightCTI的一种技术验证,而不会演化成为以后的某个版本,因此,在项目的第一次迭代中我们将丢弃目前正在运行的这个小程序。而之所以要开发这个版本,完全是个人的一点点小聪明而矣:)我不想因为详细而繁复的设计影响了工作的正常开展。

1.3LightweghtCTI项目范围

LightweightCTI主要的成果是开发完成一套适合本公司使用的语音业务软件,由于公司所处的行业使然,致使大部分的业务流程都十分固定。因此,要完成如1.1所示的业务需求的语音软件从实现的角度来说应该是很简单的。实践也证明只开发满足于固定业务的语音程序在目前的硬件、软件条件下是相当容易的,本人从了解语音方面的东西到最终交付可用的第一个外呼程序实际上只用了两周多一些时间。但我并不满足于现在的状况,希望设计出一套更具有弹性的应用系统。

由于是内部项目,所以老板并不会在此方面投入较多的资源,比如可能会因为第一个程序已经可以使用,而无法申请到第二块语音卡,其它方面的资源相应的也只能够自己寻找或采用变通的途径来达到目的。但是可喜的是我既是部分需求的提出者也是需求的实现者,这两种角色使我能够对项目的蓝图有更为清晰的认识,使得资源的匮乏已经不再那么重要。而我也有信心完成LightweightCTI的开发工作,我认为这是一次难得的机会。

1.3.1、项目的范围

1.1节的业务需求可以大概的了解到我们所要实现的范围,软件的关键目标是实现根据业务人员指定的任务进行费用催缴工作。在完成催缴工作的时候由业务人员生成不同的任务,比如上面所列举的“对于普通客户金额大于30.00元且欠费时间超过30天就需要进行催缴”,不同的客户类型及欠费金额将分配不同的催缴策略。而在完成催缴的同时需要记录下相关的信息,如在哪个时刻对哪些客户进行了催缴工作,催缴的结果又是怎样的?这都是软件所需要完成的工作。另外一点是要对客户的电话呼入进行简单的处理,如查询其费用历史、发票资料等。所有这些需求看似十分简单也没有什么,特别是业务人员或企业领导更是如此,他们认为软件所要实现的工作很少,可以很快的完成任务(软件开发任务)。殊不知这其中又隐藏了多少隐性的需求呢?在后面的内容中我将一层层的剥开它,使得我们可以真正的面对软件的复杂性的一面。

资源的限制使得我们的开发小组最多就2个人,我作为系统的分析人员及软件的主要构造者,同事我另外一位同事将和我一道对需求进行细化,并为我提供相关的支持与协调工作。公司及其它业务部门将成为软件需求的提出者与最终的利害承担者。

在整个软件的设计与开发过程中我将坚持一个原则,充分分析轻量设计及快速开发。或许这与XP的开发模式不谋而合吧,这也正是我将在项目整个过程中所贯彻的。另外一点,我也将坚持到12点钟就休息的习惯,好像有点跑题:)今天就到这里吧。

posted on 2006-05-12 08:11  东成西就  阅读(1630)  评论(7编辑  收藏  举报

导航