Feb 12

ist2_3828136_green_factory.jpg…SF as Software Factory, I mean a full featured development infrastructure. This became obvious to me when I read the post of Ayende on his vision of entreprise platform.

Ayende had the idea to base the system on code versioning system. This is definitely a great idea that I share, but I think this should go beyond: a complete software delivery infrastructure. The customer (software providers in fact) should be able to build, test and deploy applications….services for others users.

The great idea to relly on a source control system will solve the problem as versioning of the applications (for a part of it) and when you have multiple developpers working on an application or service. But this does not fullfil all the requirement for a PaaS, what about tests & validation, deployment (especially for multi-tenancy), delivery, maintenance…etc.

Finally, the requirement is to provide to some users a full featured development and delivery environment. The excellent post on the Lack of good Paas platform is highlighting very well all these requirements: customization and configurability, versioning and multitenancy, security, scallability.

I would add a requirement on robustness: as soon as multiple users can deliver software on top of platform shared by all…there is a high risk to have the system out of control. Ensuring a high level of service is fundamental, so the system should be really robust. The challenge is to let the system open (the sw providers are building software - so very high level of freedom) and “a live”, but this will be the topic of another post.

Nov 20

Here is the fisrt post of a series to talk about my vision on Enterprise Applications.

What is an Entreprise Application?

Oren get a very good definition of what it and what it should not be : an enterprisey application in his post Enterprisey vs Enterprise Software :

Enterprise Software - A common term used to refer to systems that usually run a core part of a business. Often those are mission critical systems, which interact with many other systems in the organization in many interesting ways. Enterprise software is considered hard because it often need to mix technological capabilities with the business logic, and be flexible to handle changing conditions as the business evolves.

Enterprisey - This is a derogatory term, used to refer to a system whose design or implementation is overly complex compared to its supposed function. Often the term refers to the usage of anti patterns such as Everything is configurable, Executable XML, etc. Those systems are consider bad because a simpler design or implementation would have achieve the same purpose, at far lower cost, with greater maintainability overall.

Such software are addressing different markets: CRM, ERP, Fincancial, HR, Payroll…etc.

What are the different Business Models?

The Enterprise Application Platform is in itself very interesting has it is facing real technology challenges (I will leave discussion on them for future posts). Some of these challenges are depending on the bsuiness model of the Enterprise Application (EA). Most of the famous EA are using the very common SaaP (Software as a Product) business model, couple with some Professional Services or strong partership program. A new model is raising : SaaS (Software as a Service), a good example is salesforce.com. In between you have a continum of hybrid business models (that are not better or worst). More over I’m sure I’m missing someother well know business models.

What kind of depedency?

Extensibility is key for EA, as these applications are at the core of the enterprise,. All companies are working in different area, have a different size, in different country with different law…etc. The customer have to introduce into the system there own process to be efficient, and they will taylor the system.

Tayloring raise the problem of upgrade. If you are in a SaaP model, you will have to deals with upgrades and/or migration. In a SaaS model, you will do continuous integration and deals more with evolution than upgrade.

The RDBMS independancy is of high interest for a SaaP model, and almost irrelevant (at least for the customers) in a SaaS model.

What is the right business model?

None…or all. They are all valid, just different. SaaS has a good trend now but ASP failed some years ago. We will see if this trends is confirmed in the coming years, and if it is adopt by Fortune500.

Anyway, the important point is that the architeture of the platform clearly depends on the business model.