自问自答。这是我自己的理解。
企业级开发,在我的理解里,是面向企业的软件开发。主要关注的是针对该企业的业务流程进行信息化、规范化、日志化,以提高企业业务及管理的效率。
它与互联网产品、资讯类网站等相对应,主要区别是受众是企业或组织,而其它产品更多受众是大众。
也因此,企业级开发更多使用已经高度成熟的框架及代码库(后端如JAVA,前端如ExtJS/YUI等),进行适当重组扩展以快速实现产品功能;而且应用环境通常都在企业内或企业间,通常达不到一线互联网产品(SNS、页游等)的数据及计算量级,但对事务性、安全性等要求可能会更高。
它与互联网产品、资讯类网站等相对应,主要区别是受众是企业或组织,而其它产品更多受众是大众。
也因此,企业级开发更多使用已经高度成熟的框架及代码库(后端如JAVA,前端如ExtJS/YUI等),进行适当重组扩展以快速实现产品功能;而且应用环境通常都在企业内或企业间,通常达不到一线互联网产品(SNS、页游等)的数据及计算量级,但对事务性、安全性等要求可能会更高。
回答这个问题可以从下面几个角度思考:
1. 目标系统主要面对何种用途?
用于生产,和用于消费,两者的应用场景不同,限制条件不同,可用资源不同,最终要求和约束也不同。
用于生产的系统对稳定性、健壮性、可用性、性能等几个非功能需求有着更高的要求。
2. 目标系统主要面对哪些用户?用户规模如何?用户素质如何?
企业用的系统主要解决信息存储、传输、分析、再应用,重点是围绕着相对固定的业务工作流运转。这对于功能边界的定位和精炼是有帮助的,成本较之大众软件也低一些。
再者,围绕着用户使用必然存在用户培训成本,这方面大众软件的培训成本会高一些(花费在了UI设计上使得不需要特别撰写使用文档)。
3. 开发目标系统需要哪些资源?投入产出比如何计算?平衡点(妥协点)在哪?
人力资源、资金、设备、时间……
进度控制、质量保障、迭代周期、运维效率……
4. 最终用户的容忍度如何?新用户的吸引成本是多少?转化成本是多少?流失成本又是多少?
企业用户的容忍度非常低,因为系统跟业务绑定得异常紧密,稍有不慎,一个Bug或者错误就有可能造成损失,甚至借助工作流程放大损失。
大众用户的容忍度相对很高,且失去一个用户的造成的成本浪费并不会特别大,可以及时止血再造。
5. 最终用户的需求是否经常变化?需求间是不是有非常细小的差异?是否可以很方便地针对差异的需求实现出一个“公共版本”?
1. 目标系统主要面对何种用途?
用于生产,和用于消费,两者的应用场景不同,限制条件不同,可用资源不同,最终要求和约束也不同。
用于生产的系统对稳定性、健壮性、可用性、性能等几个非功能需求有着更高的要求。
2. 目标系统主要面对哪些用户?用户规模如何?用户素质如何?
企业用的系统主要解决信息存储、传输、分析、再应用,重点是围绕着相对固定的业务工作流运转。这对于功能边界的定位和精炼是有帮助的,成本较之大众软件也低一些。
再者,围绕着用户使用必然存在用户培训成本,这方面大众软件的培训成本会高一些(花费在了UI设计上使得不需要特别撰写使用文档)。
3. 开发目标系统需要哪些资源?投入产出比如何计算?平衡点(妥协点)在哪?
人力资源、资金、设备、时间……
进度控制、质量保障、迭代周期、运维效率……
4. 最终用户的容忍度如何?新用户的吸引成本是多少?转化成本是多少?流失成本又是多少?
企业用户的容忍度非常低,因为系统跟业务绑定得异常紧密,稍有不慎,一个Bug或者错误就有可能造成损失,甚至借助工作流程放大损失。
大众用户的容忍度相对很高,且失去一个用户的造成的成本浪费并不会特别大,可以及时止血再造。
5. 最终用户的需求是否经常变化?需求间是不是有非常细小的差异?是否可以很方便地针对差异的需求实现出一个“公共版本”?
看看正规的企业级开发的定义吧:
As stated above, the Java EE platform is designed to help developers create large-scale, multi-tiered, scalable, reliable, and secure network applications. A shorthand name for such applications is " enterprise applications," so called because these applications are designed to solve the problems encountered by large enterprises. Enterprise applications are not only useful for large corporations, agencies, and governments, however. The benefits of an enterprise application are helpful, even essential, for individual developers and small organizations in an increasingly networked world.
所以:企业级应用指的就是 大规模、多层、可扩展、可靠的、安全的网络应用程序。
那这个网络应用程序是sns网站,还是微博网站,还是其他资讯类的都无所谓了,都是可以的,到底这个应用是干什么的,那是业务的问题,不是技术的问题。
当然往往为了适应业务的发展会对技术提出一些要求,技术就得随着业务的发展而调整以适应业务。
As stated above, the Java EE platform is designed to help developers create large-scale, multi-tiered, scalable, reliable, and secure network applications. A shorthand name for such applications is " enterprise applications," so called because these applications are designed to solve the problems encountered by large enterprises. Enterprise applications are not only useful for large corporations, agencies, and governments, however. The benefits of an enterprise application are helpful, even essential, for individual developers and small organizations in an increasingly networked world.
所以:企业级应用指的就是 大规模、多层、可扩展、可靠的、安全的网络应用程序。
那这个网络应用程序是sns网站,还是微博网站,还是其他资讯类的都无所谓了,都是可以的,到底这个应用是干什么的,那是业务的问题,不是技术的问题。
当然往往为了适应业务的发展会对技术提出一些要求,技术就得随着业务的发展而调整以适应业务。