I wanted to continue the discussion about my goals management that I started in salesforce.com. The problem was that the data structure did not fit my needs so well and that I wanted to implement business functionality – i.e. aggregation of remaining effort, but I did not want to invest too much into learning APEX, the salesforce.com proprietary programming language. I could, but I thought why live with the limitations of the platform, if I could try to build my own cloud platform? Maybe later I come back to salesforce.com, but for now I want to try Microsoft Windows Azure.
To quickly wrap it up: It was a good decision. I have built 9 Business Objects in the meanwhile of which the first one was the most difficult obviously. The others quite naturally follow. These are as of now: Workitem, Sprint, Book, Attachment, Note, Payment, Regular Payment, Statement, Transaction. Furthermore I have added Analytical Objects for the purpose of analyzing the Business Objects. I will explain by and by what they do. I will not explain the programming model and architecture of Microsoft Windows Azure in detail. You can inform yourself in public sources, if you want. The UI is HTML – so it’s not worse than salesforce.com. Plus I have added some diagrams in Microsoft Silverlight.
I was able to quickly implement the business logic, that I wanted to have. The programming language I use is C#, which I like. After implementation you press a button (ok, three, four) and then the application is running live in the cloud. It’s just so easy, lean and clean.
So the first Business Object I implemented is the Workitem. In salesforce.com I called it Goal – I am still a little bit indecisive how to call it. I can say so far that it is different from all other Workitems or Tasks that I happen to know. I asked myself what I need for my daily work. My work is that of a Knowledge Worker. It is in good part unpredictable, but not unrelated. Also it is not unplanned. And it has clear goals and a clear purpose. So for this requirement I tailored this Business Object Workitem and I worked with it for many weeks now. I have worked now with at least 3000 instances of it and I am more happy with it than with any other task or project tool that I used so far. I have my work under control now, notwithstanding the fact that many unpredicted events occurred and adaptations of the plan were either necessary or chosen by me.
And: It is served in the cloud. Obviously this means that I can access it from every computer with a browser, which I regularly do. Recently I was in a shop and wanted to buy a memory extension. I did not remember the model. So I asked, if I could quickly use the computer, logged into my Platform and looked it up. Just as easy. In other instances I just pulled out my iPhone, logged into my Platform – using the standard browser, and edited some workitems. I did not even have to write an iPhone App for this. Although I might in the future.
What did I do with the old workitems/goal instances that I had already created in salesforce.com including attachments and notes? Within two days I migrated them completely into my Azure Workstream Platform. How? Salesforce.com offers web services to read the content. So I pulled out the Web Service Description (WSDL) from my salesforce application – which as we remember were custom objects – into Microsoft Visual Studio, generated WebService Proxies for that, mapped them into my Business Object Structure and then pulled the content over. That’s it. From that point on I as productive in my own Azure Workstream Platform. And I am until today.
I will explain more about the functionality of the Business Objects, that I created, soon.