回答这个问题可以从下面几个角度思考:
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网站,还是微博网站,还是其他资讯类的都无所谓了,都是可以的,到底这个应用是干什么的,那是业务的问题,不是技术的问题。
当然往往为了适应业务的发展会对技术提出一些要求,技术就得随着业务的发展而调整以适应业务。