现在国内大部分管理软件公司有几类,有的靠关系拉单子,有一单作一单,技术对它们来说不重要,而关系永远是第一。有的专注于用户需求,摸透用户业务,这类公司对业务的关注度很高,也就是横向领域上,业务排在第一。还有一类就是已经在行业很有知名度,要做行业内的专家,公司这时已经认识到了业务和技术的共同重要性,平台概念也主要在这类公司提出。软件工厂主要针对的也是在第三类软件公司下的应用。
在《软件工厂方法》一文中,我介绍了领域工程的基本介绍,领域工程由横向领域和纵向领域组成。平台概念很早就有,我认为对管理软件来说,平台就是能够在纵向领域上研究透业务的基础上使用横向领域的成果来一起来搭建一个满足用户需求的应用。
1. 纵向领域(vertical domain):根据系统类别而组织的领域。如预算软件、材料管理、合同管理、企业报表系统等。
2. 横向领域(horizontal domain):根据软件部件的类别而组织的领域。比如元模型引擎、报表引擎、工作流引擎等。
3. 领域之间有3中类型的关系:
a) 包含:比如成本管理软件包含了材料管理系统
b) 使用:比如管理软件都使用报表引擎,OA系统都使用工作流引擎
c) 类似:领域之间侧重点不同,但有很多的相似性,通过深入研究一个领域,可以取得对另一个领域的更好理解。比如报表引擎中对于表达式解析和索引部分可能与数据关系计算引擎类似。
大部分书籍也是像以上那样简单介绍一下基本定义,以下我从它们在产品线开发中的关系来发表一下看法。
经常有人讨论业务和技术的关系,希望争论出到底哪个更重要。如果从商业角度来说,最终的目标都是通过满足客户的需求实现双赢,而业务和技术都是实现这个大目标的方法和工具而已,业务的深入是让我们能够做正确的事情,技术是让我们能够使用适合的解决方案来正确的做事情,两者必须协调一致才能实现最终的目标。
在