Reflections about „It’s a Free Country“ – WSJ article

February 3rd, 2010 Frank Michael Kraft No comments

Already in November the Wall Street Journal posted an article It’s a Free Country… …So why can’t I pick the technology I use in the office? that made me ponder.

I have come to the conclusion in the meanwhile, that the appearance of IT will change.

As noted in the article, there is a sense of IT limitation in the offices at the one hand and the reluctance to change in the IT departments. “Never touch a running system.” – an old proverb that contains much wisdom. Of course the problem is cost of change.

As noted in the article, everybody installs one or some forbidden tools on his office computer, much to the discontent of the IT departments. We can’t help – in the end we have to have the best tools for our work.

In the end the article shortly touches on cloud software, but does not elaborate its potential. But when I think of it, it overcomes many of the difficulties mentioned. There is nothing to install on the office computer. Just use the browser. Neither does it disrupt existing systems. There is no big change project. Just use it. Ok – if there is a project group or department they need to decide which one they would want to use and how they organize it.

I expect IT’s role to change over time. Instead of being responsible for making the systems run, they become the central point of governance which services are good to use and which they will veto against. They will have quality criteria that they will apply. This will relieve the IT department of much of today’s burden and let them concentrate on their core competency. Also it will release budget for interesting forward looking projects.

That’s not only, because individuals want to use the best tools possible. It’s also because other forms of work are strongly emerging, among which I want to emphasize Knowledge Work and Collaboration between organizational entities. More and more project groups emerge that work cross enterprises and organizations in non-standard – i.e. in unpredictable or only partially predictable processes and collaborations. Why is (was?) there such a hype about Google Wave? Isn’t that the reason? Google Wave is just a small forerunner of the tide to come. Completely new forms of applications will emerge that will offer functionality for organizing these new kind of processes. Multi-Enterprise Business Applications may be a good name for them.

And the processes they cover will differ from those processes that we know today and that are commodity. As I already stressed those processes will be agile, adaptive, unpredictable, partially predictable, collaborative, creative, knowledge oriented. I hesitate to call them processes, because “process” implies: First do that, then this. That is not the kind I am speaking of. A Knowledge Worker complies with such a process only in rare cases. Neither is it desireable. The Knowledge Worker needs enabling for the goal he wants to achieve and the he or she best knows how to achieve – and to have the freedom to try, to fail, to retry and to succeed. So we might call the new work pattern Workstream instead of Process.

So which IT department would be responsible for such a Multi-Enterprise Business Application? The natural answer is: It will be served as “Software as a Service” by an independent provider and the individual Enterprise will purchase users. That is another strong reason, why the IT will change – because there is practically no other way to address this emerging demand.

  • Share/Bookmark

My life in the Cloud: Going Azure

January 27th, 2010 Frank Michael Kraft No comments

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.

  • Share/Bookmark

ERP / BPM / SOA

January 22nd, 2010 Frank Michael Kraft No comments

I was recently asked if I like this idea: Handle everything, that is coded in an ERP systems today as Process Patterns and instead design it as process models, that can be adapted to the requirements of the customer. The context of the discussion was if the combination of ERP/BPM/SOA would not have tremendous potential.

I aswered, that I have experience with that and that I agree that there is a tremendous potential with that. That really was an interesting discussion, because I did not hear such analysis before in the discussions in the public marketplace. I think this is the right direction to think.

I had already governed the design of the process of about 200 or more business objects, creating about 2.000 models including roughly about 5.000 web service operations. I didn’t use BPMN for that, because it was not flexible enough for this purpose, neither any of the existing languages. I used an own Domain Specific Language (DSL) for Modeling the behavior of those Business Objects.

My summary of that exercise is, that I agree to the original question. Only by modeling the process of Business Objects which are part of the ERP system, the ERP system’s web services will as a result have the right granularity. What is the right granularity for web services? Reusability. If web services are reusable, then they pay off most. In order for them to be reusable, they need to fulfil certain conditions. A web service operation should only do one thing at a time., i.e. not trigger an endless chain of activities in the system. It should have clearly defined preconditions. The effects and results of the web service operations must be clearly defined in terms, that can also be preconditions to other web service operations. That are the most important criteria in my view.

A system must be designed for this philosophy from the beginning. I strongly believe that adding web services to an existing system falls short of this goal. Even if it has some value, it would not use the full potential.

In general what I miss in the public standards is a language to describe the behavior of web services. Yes, BPMN 2.0 goes into that direction. But BPMN 2.0 still has to prove that it can fulfil the promise in practice. I think to a degree it can. It will turn out later, if it is possible to simplify the language or if it becomes an inspiration for other approaches (e.g. constraint based instead of workflow based).  And using BPMN 2.0 in itself does not guarantee the success. Additional guidance is necessary, certain quality criteria that each model must fulfil.

However, if the behavior of web service operations of an ERP system is defined, and if the granularity of the web service operations are so, that they are reusable, then the potential is very big. Because it means, that it is possible to attach own processes to that ERP service and even to interweave own processes in-between ERP processes. For example to add an approval before the release of an order under certain conditions, to add an own method of calculating benefits for the payroll and the like.

However as a limitation to the original question I would say, that not all of the processes modeled could be customized or changed arbitrarily. There are certain core processes, that the ERP system offers, that can not be changed without the danger of losing the consistency of the process. Therefore it is clearly necessary to describe which part of the process needs to remain stable and which parts of the process can change or are open for additions and interweaving. This of course must be part of the model.

  • Share/Bookmark