找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 17651|回复: 58

[经验] 标题待定,请修改

[复制链接]
发表于 2005-6-22 15:45:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
程序员:一个协同OA产品的诞生 <BR><BR>&nbsp; 文/闫辉<></P>最近,Intel公司的创始人之一摩尔先生发表观点,指出“当前计算机的运算能力在提高,应用软件的数量也不断增加,但遗憾的是,这些应用界面的复杂程度也在提升。这并不是缺乏努力的结果,而是软件开发人员在退步。我喜欢简洁的应用界面,但具体是什么样子的也不清楚。”面对这样一个需要大家共同考虑的问题,要给出明确的答案确实不容易。但本文讲述的用友致远-一家在国内协同管理软件市场快速串升的产品厂商的协同OA产品开发的案例可以说给出了一个不错的阐述。<></P>&nbsp;<></P>“程序员是一群很纯洁的人,但正因为纯洁,在追求技术的过程中,也带来了与用户的隔阂,很多产品让用户在使用过程中甚至感到是种对人性的摧残。”用友致远公司常务副总张屹说出的这番话,可能会让很多程序员感觉不爽。但在用友致远,这里的程序员却从越来越从事实中认同这样的观点。<P></P>&nbsp;<P></P>张屹之所以这样说,是因为他们埋头三年开发出了一款协同OA产品。提到OA,这是一个不能再熟悉的IT词汇了。自从二十多年前出现OA系统以来,成千上万的公司都在这方面做了大量的工作。而对于程序员来说,“没有吃过猪肉,肯定也见过猪跑”,估计任何一个程序员都能说出OA系统的构成模块和需要的技术。<P></P>&nbsp;<P></P><P></P>用友致远常务副总经理&nbsp; 张屹<P></P>&nbsp;<P></P>然而,一行代码也不会编写的张屹却带领开发人员决定推翻以往开发OA的思想和方法。“我们既不通过项目开始积累,也不去了解某个单一用户的需求,我们是在对大量客户调查后通过高度抽象、提炼共性的基础上开始进行‘闭门造车’。”<P></P>&nbsp;<P></P>当然,“闭门造车”只是一句对用友致远耐得住寂寞、追求创新精神的形象表达。从早期用友代理,到连邦软件再到8848高层,然后又到用友致远软件的管理经历让张屹对管理软件有了另外一层的理解,深深感受到现在的企业管理软件不能适合灵活的管理需求。无独有偶,用友致远公司的董事长兼总经理是早期的用友客户,曾经是张屹15年前的客户,作为客户,徐石对管理与软件的关系也有着同样深刻的认识,对于产品理念的成型他和张屹一起都起到了决定性因素的作用。其实,对这点有深刻感触的也不只是用友致远。王志东也是在离开新浪后,根据自己的管理经验,选择了协同软件作为其下一步的关注方向。所不同的是,王志东的想法和目标或许更加深远,他是要开发出一套协同管理平台,而徐石、张屹却立足实际,决定只是做一套立刻可以标准化、规模化快速交付和推广的协同OA产品。<P></P>&nbsp;<P></P>长期以来,OA系统大多数采用项目开发的形式,公司首先派人收集用户的需求,了解客户的办公流程,然后按照这些需求进行设计,之后进行开发和测试,最终交付给用户。然而,这种方式存在非常多的问题。一方面很多公司的管理流程经常在发生变化,而且不同的人有不同的理解。往往用户开始满意度很高,但使用一段时间之后就发现其实大部分模块并没有真正用到。“在很多用Lotus Notes开发的政府单位的系统中,可能模块有几十个,但最终真正在用的可能也就只有邮件系统。”后来,一些软件厂商根据客户的一些需求推出了在后台可以灵活配置流程的系统,在一定程度上解决了某些问题。<P></P>&nbsp;<P></P>不过,在用友致远的眼中,他们认为这些OA系统都没有抓住最关键的应用。在现代的企业管理中,越来越多的工作是需要多人合作来完成一个项目,同时又要求对这个流程进行可控的跟踪。用友致远认为这一功能其实可以覆盖到办公中的80%的应用,而这就是协同。“协同在我们的系统已经被固化为一种功能,也就是通过可控的流程让相关的人员围绕某个目的和结果做一件事情。我们分析了很多公司的需求后,发现其实大部分的工作都是人-找事-再找人的方式,而且最终要以结果为导向。”<P></P>&nbsp;<P></P>一个产品有了好的想法,还需要一个能够理解和执行的团队来实现这个产品。分管开发的副总经理胡守云曾从事软件开发和管理工作近20年,早在工厂时就开发过OA,“企业流程应该怎么走,我有切身的体会。”在他的眼中,技术只是为了实现产品的工具。而应用设计经理何铮和技术架构总监宋牮也在开发用友致远协同软件的过程中有了很深的体会。<P></P>&nbsp;<P></P><P></P>&nbsp;&nbsp;&nbsp; 用友致远副总经理 胡守云<P></P>&nbsp;<P></P>工作流技术就是非常具有代表性的例子。一般工作流技术在OA中主要被用做一个看似很重要的功能,也就是“公文”。然而,“程序员往往只关注关键应用,而没有关注最常用的应用。”公文是一项在企业中虽然很关键,但并不常用的功能。而用友致远则不同,他们将工作流技术作为基础,创造性的用于协同的功能中。一个用户可以随时发起一个流程,通过串发、并发甚至复合的方式来将其它人联系起来,并随时监控流程的进展。95%的客户对协同OA的工作流非常满意。胡守云说:“我们用了工作流的方法和技术,但并没有被工作流的思想所束缚。我们并不是严格的工作流,但对用户来说很好用,而且也符合客户的需求。比如很多情况下,工作流的发起方是知道这个事件需要发给哪些人的,也知道需要怎么走一个流程,但企业的制度并没有将之完全标准化。这种需求标准的工作流是做不出来的。另外,一般的工作流必须是IT人员在后台进行设置,但事实上,决定工作流的应该是如财务一样的管理职能部门,这些人才真的有丰富的企业管理经验。协同既需要对制度进行严格的解析,同时又需要灵动,需要寻找到一个平衡点。”<P></P>&nbsp;<P></P>在技术实现上,具体的表现形式就是一个表单,人拿着这个单据去走流程,这样既解决了流程,又解决了工作过程中的应用问题。而且一个人是通过部门、职务、角色等各方面的性质在体系结构中配置出来的。很多差旅费报销、请假、领用等功能,凡是和流程相关的都可以在这个框架中解决。“目前我们的大量用户实际上都在用同一套软件,但却可以配置出不同的流程。而且可以达到五分钟学会,一分钟配置,这是一个奇迹。”<P></P>&nbsp;<P></P>文档管理也是对OA系统原有思想的进化。很多OA系统都号称有文档管理,但这些文档都来自于上传至系统中的文件和手工输入的文字。用友致远协同OA就认为这其实是不合理的,“企业的工作文档其实是在工作中自动产生的,在我们产品中,所有工作中的流程自动记录为企业的文档了。办一个单据和请假过程,相互之间的消息传递都自动被记录为一个文档保存起来。做到了文档和业务行为的一体化。”张屹认为这才是真正的文档管理。邮件系统的功能也被整合到了整个协同OA的平台中,接受到的邮件可以很方便的进入协同流程中,自动成为系统的文档。<P></P>&nbsp;<P></P>用友软件是做产品的高手,作为其旗下专业的协同产品公司的用友致远同样继承了这个传统。“产品”两个字尽管很简单,但在用友致远人的眼中,背后的含义却很深刻。<P></P>&nbsp;<P></P>首先是在开发流程上,在产品委员会将这个新产品的思想表述完之后,设计人员先去设计,然后由四五人组成的评审委员会再集体讨论并进行决策。而后由架构师做架构,接下来根据架构分配任务进行开发,做单元测试和集中测试,集中发布。在产品的发布时,往往会有一个月时间大家都停掉自己手上的工作,集中做整合发布。<P></P>&nbsp;<P></P>宋牮认为做好一个产品的关键不在于代码,而是在于对于业务的理解。对业务的理解后再抽象出来才能有代表性,这样设计出的代码框架才是有生命力的。“但抽象也需要有一个边界。比如:要知道表单适合解决是小批量、小成本、不需要复杂业务逻辑的数据信息,它不太适合解决专业ERP的信息,因此需要想到你的系统特性是什么,不要把别人的问题拿到自己这里做,不要试图做的过大过全,不同系统之间是有边界的。”<P></P>&nbsp;<P></P><P></P>用友致远技术架构总监 宋牮<P></P>&nbsp;<P></P>作为这个产品的主要设计人员,何铮也深深体会了一个产品背后付出的努力。他原来在某个网站做的整体设计,到现在仍然没有进行大的修改。但在用友致远协同OA的开发过程中,曾经为了一个首页的设计而做了十多个版本,主要就是为了考虑用户的使用感受。“基本上每个功能都会争论。比如:我做一个选择人员的界面,设计是比较简单的,但我们现在的产品覆盖了很多类型的公司,有10个人左右,也有上百个人的公司。下拉式是一种解决方式,但如果人很多的话,就需要做树型的结构。这样如何有机的结合起来,就会有很大的争论。要用客户的角度去理解,去定义。”做产品的过程中,一些客户从第一个版本就开始用了,一个新的功能出现后,升级之后可能给他造成不同的感受,这在每次设计中也都需要考虑,越向后考虑的就越多。<P></P>&nbsp;<P></P><P></P>用友致远产品设计经理 何铮<P></P>&nbsp;<P></P>做产品还需要将用户的学习代价降到最低和阻力降到最低,而这点程序员往往容易忽视。胡守云说:“我遇到很多程序员认为老板很笨,连一个系统操作都学不会。实际上老板很聪明的,而是他不愿意在这方面花大量时间学习。很多系统会让老板看30个界面,记住5个密码,查一个财务数据,可能每月只需要几次,因为这几次还需要三天去学习,他永远学不会。” <P></P>&nbsp;<P></P>而要做到降低用户的学习代价是无止境的。用友致远也在这方面投入了巨大的精力。<P></P>&nbsp;<P></P>一键安装看似简单,但要实现用户只需要执行Setup,协同OA系统中的数据库的配置,应用服务器的设置等基本的设置都不需要人去做还是非常困难的。很多OA系统的安装都需要专业人员来做大量的配置工作,而用友致远的产品就不需要。张屹指着Windows右下角的一个旋转的小地球图标说:“在这上面我们前前后后花费了6个月的时间。最早第一代产品安装虽然是自动化,但因为Java控制台程序会启动一个命令行窗口而且不能关闭,我们认为这对用户的感觉不好。第二代产品我们不需要显示窗口,而是小地球。第三代产品我们在小地球图标上加了很多功能,比如启动服务、配置路径、备份和恢复等功能,让用户最方便的使用。”<P></P>&nbsp;<P></P>检索也可以看出他们在产品化方面所费的功夫。一个半年前协助联系客户的资料随时都可以进行检索。无论是邮件、工作流程中涉及的事件,请假单都可以检索到。胡守云表示,“很多客户说我们这个功能简单的不得了,但正是因为这种简单,让我们在后台作了大量的工作。”<P></P>&nbsp;<P></P>产品化同时也对系统的性能要求非常苛刻。尤其是对于B/S架构的应用,系统性能的高低可能会影响到用户的使用成本。宋牮认为,用工具给出具体的指标非常重要。 “数据库是非常花时间的操作,很多人都会写那种最简单的代码,通过一个循环来回查找数据库,但因为我们的系统是多人并发操作,数据库就会出现很大的性能问题。开始的解决方式是我们发现了之后就告诉程序员不能这样写,但等一些新人进来之后,又出现了这种问题。后来,我们找到了一个解决方案,写了一个虚拟的驱动程序,能显示所有的SQL的语句操作。也就是跟踪SQL,调用了多少次SQL,每次的时间有多长,定量的时间是多少。胡守云说:“对做产品来说,一定要定量的数据来跟踪你的结果,而不是凭感觉。我们的架构师开始做分析,执行过程中,必须有定量的指标,而且要有工具。”<P></P>&nbsp;<P></P>由于现在B/S架构还存在一些缺陷,比如一旦脱离网络环境,就无法查看系统中的文档。而用友致远的解决方案就是把文档变成XML的标准形式,这样单机系统就可以打开,甚至实现便携化。未来一方面是进行客户应用的研究,一方面增加更多的客户应用,同时要在基础架构方面要和行业进行接轨,使之真正成为一个产品化的平台。<P></P>&nbsp;<P></P>或许原来人们的考虑都过于复杂了,或许都把精力放在了如何搭建一个更加庞大的系统架构上了,反而忽略了用户真正需要的东西。就像要在一个铁锹上雕刻精美的图案一样,反而没有专注其最主要的功能上,而这对用户来说并不是什么好现象。<P></P>&nbsp;<P></P>&nbsp;<P></P>经验谈:<P></P>&nbsp;<P></P>胡守云:&nbsp;<P></P>中国程序员喜欢去否定别人,看到别人的代码就认为都是垃圾。其实他是把自己认为没有风险的风险覆盖了另外一个风险,A和B的风险是一样大的,在推翻对方设计的过程中,你可能避免了对方的风险,但同时引入了新的风险。我在这里给中国程序员一个忠告:就是读别人的代码和改别人的代码,这样才能进步。没有人能够写出完美的程序,我们需要的是赞扬式的批判,而不是完全打倒。<P></P>&nbsp;<P></P>宋牮: <P></P>做产品最大的好处就是可以“复盘”,做项目之后可能无法验证自己的想法是否正确。而做产品,好的想法可以得到客户的反馈,出了问题还有机会再做。开始设计的时候和后来还可能增长经验,再做新的架构的情况下,可以避免很多错误,实现成长。<P></P>
发表于 2005-7-12 23:15:41 | 显示全部楼层
宁静以致远,UFseeyon产品发展方向看得很清呀!
发表于 2007-1-26 21:12:28 | 显示全部楼层
结合单位实际要更好些
发表于 2007-2-28 16:45:12 | 显示全部楼层
很好的资料,希望此类资料越多越好啊
发表于 2007-3-2 17:25:13 | 显示全部楼层
功能太多,反而碍眼,能结合不同的公司做出不同的类型更好
发表于 2007-3-8 23:02:37 | 显示全部楼层
不知道好不好,资料很少
发表于 2007-4-26 15:14:38 | 显示全部楼层
好象大家都还是不大清楚啊,可能还要更详细些!
发表于 2007-5-10 11:26:33 | 显示全部楼层
有的功能太多,太复杂,相反并不适应每一个公司,要是能根据公司的实际情况来,可能会更好一些。
发表于 2007-6-26 11:20:34 | 显示全部楼层
学习中,有些东西不明白
发表于 2007-6-27 10:53:56 | 显示全部楼层
希望此类资料越多越好啊
发表于 2007-7-1 09:23:33 | 显示全部楼层
:D :D :D :D :D :D :D :D
发表于 2007-7-4 08:06:39 | 显示全部楼层
学习,很好用,在用!!!!!
发表于 2007-7-8 14:37:36 | 显示全部楼层
太难了,最好是有视频教程!
发表于 2007-7-12 02:34:55 | 显示全部楼层


发表于 2007-7-24 09:34:14 | 显示全部楼层
我也喜欢有视频的............
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-5-12 15:28 , Processed in 0.025834 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表