企业应用若干非技术性理解要点
导读:移动计算和产业互联网时代,企业应用(enterprise app) 概念也有新的意义。单纯从技术角度无法真正理解企业应用。文中探讨了用户性质、组织目标、事务流程与协同、适管理性、开发团队与应用架构师五个方面的非技术性理解要点。相对于技术的迅速迭代,这些非技术的要求更加稳定。
产业互联网时代的企业应用
企业应用的五个非技术性理解要点个人电脑(PC)时代讲“软件”;移动互联网/智能终端时代讲“应用”(app)。虽然 app 就是IT领域传统词语 application 的简写,但在PC时代这个词基本就是指应用程序或应用软件,与移动互联网时代的 app 并不对等。后者更广泛:无论是独立达成功能的程序,还是基于网络/云等复杂设施通过终端程序提供的功能性服务,或是基于各种智能联网设备/传感装置达成的功能,现在几乎都称 app。实际上,至少从SaaS(软件即服务)兴起之时,PC时代通行的将“应用”简单解释为计算机软件的说法就开始废弃了;以软件(包)代表一个应用不适合于互联网时代。
根据使用对象,所有的应用可以划分为企业应用与个人应用两大类。传统上,企业应用主要表现为运行在个人电脑、私有服务器和局域网环境中的软件系统,以软件包+实施服务的形式提供给企业。随着产业互联网时代到来,企业的信息技术基础设施/环境向互联网及第二或第三方服务设施迁移,同时终端也由桌面设备拓展到各种移动设备上。这带来许多深刻的变化。企业应用概念也将因此变得更加重要和适用;但在这个概念的使用上,有一些由来已久歧义或困惑,有必要加以澄清。
回到用户需求这一根本
IT界对“企业应用”(enterprise applications) 的传统解释有一种倾向,即将其归纳为一些技术与复杂性特征,例如分布式计算、并行计算、负载平衡、大型数据库、数据冗余、事务处理、对象池,SOA,等等。这种倾向通常伴随着对其本源的用户需求特征的忽视,从而对应用的设计开发带来某些深刻的误导。互联网时代那些经典的个人应用,其系统往往大量具备了上述传统解释为“企业应用”的技术特征,复杂性与规模甚至远超传统的企业应用系统(例如大型企业的ERP系统)。按照那些陈旧的观念去理解或使用企业应用概念更加令人困惑。需要回到用户需求这一根本,揭示那些常常被IT应用开发者忽略的东西;由此揭示企业应用与个人应用的深刻区别,也彰显这一概念(回归本源之后)的意义,这对于从消费互联网转向产业互联网,有很现实的意义。
谁是企业应用的用户
个人应用的用户通常就是直接操作、使用应用功能的人,即使对多用户系统(比如电子邮件),每个用户使用的功能是高度一致的。企业应用的情形则复杂得多。企业应用的应用对象是广义的“企业”(enterprises):它是社会组织,可以是商业或非商业性的,如工厂、贸易公司、政府机构、各种社会团体等。整个企业才是一般意义上“一套应用”(系统)的用户,而企业内部总是有各种不同角色的人,对于应用的理解和需求各自不同,甚至相互矛盾,这与个人应用构成明显的区别。
企业应用的用户群体由多种角色构成,他们分别使用应用中的不同功能,并且处于组织的约束之下。相关的角色包括企业应用的拥有者、管理者、具体功能的使用者以及维护/支持者等,处于企业组织的不同层次,既有个人,也可能是组织单元,有时还包括企业外部的角色。对于应用开发/供应商而言,它们都属于“用户”。一些管理者甚至基本不接触具体功能,但企业应用可能要首先满足他们的期望或要求,其次才是具体功能的操作者。
目标与要求
企业应用的目标与要求(需求)不属于特定的人,而是属于整个企业。而且在基本的功能及性能要求之外,企业应用还可能要满足来自企业内外多种相关者的复杂要求。以即时信息 (IM) 为例,作为个人用途,我们不需要乃至排斥任何的第三方干预或监管机制;注册、增删朋友、收发什么东西,什么时候使用,完全随个人意志决定。作为企业应用,一些个人应用不需要甚至拒斥的要素,就变成了必须考虑的重要方面。正因为如此,一个市面流行的个人IM通常难以满足来自企业/组织的业务或管理的要求;对于个人产品的成功开发者,这种转型的困难常常是出乎意料的困难,个人应用的原班开发团队通常很难完成这种转型(参见后面讨论)。
对于一种企业应用,来自用户群体或相关者的要求不仅是多方面的,而且非线性叠加,形成互相关联与制约的复杂结构,并天然处于持续的动态改变之中。对于一些综合性管理、业务支持的应用而言,理解应用的需求或可能性,需要理解所有的相关业务乃至整个企业、甚至行业。实际上,处理变化的需求本身就是对企业应用系统最基本的需求,也是对企业应用开发最大且从来没有得到“解决”的挑战。传统的需求管理或需求工程思路,试图从规范化、精确化描述和严格控制获取、传达、反馈过程上去解决需求本身的不确定性和变化,是治标不制本。而诸如极限编程和敏捷,疏离了一些传统需求工程中缺乏实效的方法,在某些方面则是回退到靠“程序员”和组织的综合应变能力、人际沟通能力这些底线上。尽管这些方面(从来)都很重要,但对需求不确定与变化问题本身并没有更进一步的解决。
应用方式与环境
从应用方式与环境方面,企业应用需要在个体操作基础上解决复杂动态关联的需求,例如多角色参与的复杂事务的划分及处理、人-人、人-机和机-机协同作业、工作流及业务流程以及相关资源配置管理等等,所有这些,都需要被置于整体受控的、有组织的环境之中,同时又可能物理地分散在全世界不同的地区,具有不同的IT环境。支持这些需求,不仅需要多样性的功能,还需要配置、组织和互操作支持,不是任何单纯技术机制例如多用户并发冲突防止之类可以达成的。
伴随前面提到的企业应用理解的技术性倾向,开发者对上述事务、流程与协同等重要的概念的理解,常常堕入技术的窠臼。应该明确地从两个层面去理解它们:一个是计算机操作的角度,它们涉及到一些相对独立的计算机作业(任务)的聚合、连接、协作或互操作等;另一个是人的事务层面(包括人-人、人-机交互)。对此一个很好的例子是对工作流和业务流程两个概念的区别与联系的理解。
企业应用的复杂性往往不是体现在特定功能的实现技术性方面,而是多种功能(每个功能往往简单甚至相似)的关系或组织上,尤其当这种需要这些关系是动态改变且需要按组织的要求管控时。许多企业应用开发者看到前一半的特点(单元功能简单性),断言企业应用开发“没技术含量”,却无法认识和从技术上解决后一半的问题(有效的组织与动态改变)。对复杂的企业应用系统的开发,后者才是真正的难题。
适管理性需求
适管理性 (fitness for management)[1]是企业应用开发者广泛忽略的一个要点。我将适管理性界定为产品与服务满足顾客对其进行管理的需求的程度。它是品质的一部分,是适用性的一个方面,是构成企业应用的所谓“用户体验”的最重要的要素之一。尽管这一性质存在于所有产品和服务,但对企业应用它尤为重要。例如,个人应用也存在适管理性,但其差别可以很恰当地与企业和个人对管理的要求对照。适管理性的实现有可能比许多单项功能更复杂,因为它不仅仅是一些专门的管理功能/接口,还体现在各种功能的实现、提供或组织配置与维护等方面。
应用系统开发者对适管理性无知的一个经典的例子是常见的系统权限管理设计。软件设计师总是把它作为所谓系统管理员(应用企业中的IT管理/计算机工程师角色)专属功能的一部分。然而,从管理的立场上看,其所涉及的功能、资源(数据等)权限的分配,类似于谁干什么,文件控制权限怎样分配,正是相应业务主管们的基本工作——从管理角度看,是谁的职责范围内就该由谁安排,并且尽可能地减少中间环节。然而,在许多管理软件应用实践中,因为类似的安排往往要通过IT维护人员实现,相应的功能也是以IT人的眼光为IT人设计的,从而使应用系统的功能/资源分配与管控成为伴随系统实施与使用全过程的持续难点,达成及时、合理配置的实际困难大大超出那些功能设计者的想象(他们往往也未真正体验或关心过这一点)。
开发团队要求
在个人(消费)互联网时代,技术架构师与功能设计(编程)者本身基本上就是最高明的用户。他们用自己的想象力和对应用的可能性的超前理解创造出许多前所未有,现在成为了经典的应用。对许多成功的例子,开发者的发明首先不是一种技术或一些程序,而是一种用途,一种新的、基于IT设施的人类活动方式。然而,面对拥有大量既有的复杂业务活动与要求的企业,替他们做出这种发明或创新就困难得多了。技术架构师或程序设计者同时精通应用业务往往可能是不切实际的要求。这对于开发者团队的配置带来深刻的变化。对于许多企业应用项目,尤其是涉及复杂业务的综合性需求,能够全面深入地理解业务需求同时精通IT应用的可能性的两栖人才变得至关重要。相对于真正意义上的技术架构师,这种角色可以称为应用架构师 (application architect)[2]:他们不是根据现有的业务去分析出应用功能需求(因为新的应用本不存在),而是根据对业务本身的目标甚至其变化的可能性或趋势的深入理解(这一点,大多数实际业务人员本身并非很清楚)来创造新的业务方式,其中包括计算机应用的功能。这种工作,不同于传统软件工程领域的需求分析或需求工程,我称之为“实质性需求分析与研究”,或者简单称为“需求研究”[3]。
小结
在上面的分析中,提出了若干企业应用的重要特点(特别对照于个人应用);在技术导向的IT界,它们往往被忽视,从而导致了企业应用开发和推广应用中的许多基本问题甚至失败。上面的讨论涉及了理解企业应用的五个基本方面或要点:
- 用户性质:对企业应用,“用户”是整个企业,包含管理/决策者、功能操作者、系统维护者等多种不同的有组织的角色。
- 组织目标:企业对应用的目标及要求是高度复杂的,它来自企业内外多种相关者,形成互相关联与制约的复杂结构,并且会动态改变。
- 事务、流程与协同:企业应用是人-机交互的开放系统,不仅需要支持开放、动态的不同区域与层次、类型作业者群体的协同作业,包括事务/任务划分、流程的跟踪、编排、规划和管控,相关资源配置等。
- 适管理性:好的企业应用,应该从部署、应用方案、运行的过程与结果、操作的历史、操作者/资源的分派与管控等方面都需要提供专门的、面向直接管理责任者的管理功能。适管理性的实现往往比单纯的业务功能更加复杂。
- 开发团队与应用架构师:应用架构师对目标企业的业务及潜在的应用功能需求进行实质性研究,在此基础上设计新的业务方法和应用功能,是业务与IT的连接者。
————
[1] 见《从适用性到适管理性——品质管理又一深化课题》
[2] 见《企业应用相关知识与技能领域及若干角色分析》
[3] 见《新一代企业信息系统:从实质性需求分析到模型驱动系统》第三章
原发:企业工程论坛,2014-09-20,
http://www.ee-forum.org/wp/pub/ty/2014-09-p4308.html
微信公众号“新企业应用号”(MDApps)
(此版本有修改,且添加了注释链接)
作者印记:c8cc97