11/09/08 :: [MDE] Is 10X Improvement in Developer Productivity Enough? [permalink]


I am still trying to digest what came out of the PDC. The part I like the most so far is Jack Greenfield's team "Multi-Enterprise Business Applications". I kind of like the general philosophy of Oslo too, but I have to dig deeper to really express an opinion on it. However, yesterday, Doug Purdy published a post that answers the question "why Oslo?".

I was a big fan of Don Box back in 2003 and Microsoft's vision of SOA. It seemed them that the CSD understood SOA and soon we would have been able to build "connected systems". WCF was nowhere near delivering 1/100th of that vision but at least the vision was good and inspiring. To be fair, 5 years later, they finally understood that they indeed need a service container, as we say in French, better late than never.

So what's the vision behind Oslo? Doug explains:

For v1, it is all about developer productivity.  We have an internal goal that we call “10x”. 

I live on the other side of the lake from Redmond but it feels like time has stopped over there. This statement sounds like a 1995 statement. We need at least a 100x improvement in the time-to-production (not just implementation).  Don't get me wrong, that won't translate into 100 times less developers, it will translate into 100 times more projects delivered to the business, on time and producing ROI.

It seems to me that what Don's team fails to understand is that Cloud Computing is overhauling our industry, not just from an operations perspective or financial perspective, it is impacting the entire solution delivery chain and it is about radically decreasing the time-to-production.

Is there a Dev 2.0 paradigm in the Cloud? you bet. Just like there is a UX 2.0, security 2.0, or Operations 2.0 paradigm. In case you have not noticed, many PaaS such as Zoho or RunMyProcess offer quite stunning development environments and hefty productivity gains that I would assess are already over 10x today when compared to a traditional Java or C# development environment. The other day, I wanted to test my assumption about this number so I built an entire process with RunMyProcess, including a Zoho Creator back-end to store some data for reporting purposes. I was done in less than a day. It would have easily taken me 10-15 days of work to do the same thing in a traditional programming model. Cloud Computing is bringing us very close to what Obie Fernandez does at HashRocket with Ruby-on-Rails.

When you think about all the code you have to write just to implement the process logic when you use an MVC programming model, you really feel quite disillusioned at the stupid debates around BPEL. No BPEL will never become a "Business Process Execution Language". It is a programming language, quite a useful one but that's it.

It is not a given yet, but, in the Cloud, the model will be the code, and the code will be the model. I doubt that the Cloud will let developers be as inefficient as they are today. General Purpose Languages, static or dynamic, will not survive the Cloud. In that sense, Oslo is somewhat visionary like the announcement of WCF was. Looking at where they are today, I am concerned that Azure is going to make people want to use the product of Oslo, not Oslo itself.

From a pure conceptual perspective, it seems that Oslo has some elements of Metamodel Driven Engineering: as I understand it, it hacks Metadata and Implementation together in one "convenient" syntax (see below). It seems that Oslo deploys to WF (or is based on WF concepts when it comes to implementation elements of the model) on of the consequence is that some .Net calls has to be marshaled as an invoke.

 I could not resist to give you a snapshot of how Don's team used M to model "RESTful" services, this is hilarious, Echo is their RESTful Service, hey it has a URI template so it must be RESTful:

How disappointing, the M compiler can't pick up and tell the modeler that, "no, no, no this does not look like a RESTful service at all". Well how could I get mad at a would-be RESTafarian when Steve Vinoski and other REST pundits claim that Web Services only offer a RPC model.