Recently SpringSource published a case study of a project which I supported as system architect and lead developer from concept to production.
The case study shows how organisations can greatly increase efficiency by the use of modern technology approaches such as Groovy, SOA and Domain Specific Languages (DSL).
You can read the case study here.
SOA, BPM and DSL Articles
I dropped some of my recent articles about SOA, BPM and DSL on the server.
You can read them here:
Domänenspezifisches Sprachen mit Groovy
SOA Transformation (Teil 1)
SOA Transformation (Teil 2)
Open Source SOA
BPM, Optimization and Scrum
One of the goals of Business Process Management (BPM) is the continuous optimization of business processes.
In fact when we start analyzing existing processes, in most cases it turns out that those processes are far from being ideal.
Usually the first impulse is to say, all right let’s improve the processes while we automate them.
At first sight this seems to be reasonable, but practice shows that it is not.
Why not?
Usually the process knowledge is in the heads of the business users who live the processes every day.
Even if they have some sort of documentation, they feel that they own the process. And they do!
Once you start changing the existing processes you take the ownership and leave the real owners behind.
This can quickly turn into a acceptance problem cause the business users are a vital part of BPM as they have the process knowledge.
Practice shows that it is better to automate processes as is first and keep the business users involved.
Start small (and think big) for instance with partial processes. Then show the benefits and start the optimization loop.
This can be ideally done in an agile setting such as Scrum in which the idea of continuous improvement (Kaizen) is built-in.
A nice side-effect is that not only the business process is improved over time, but also the analysis and implementation process itself.
BPMN 2.0 Poster
Thanks to the Berliner BPMN Offensive a new Poster is available which shows the modeling elements of BPMN 2.0.
Goto is not Evil
Those of you who tried to convert BPMN to BPEL know the “Goto”-Problem which stems from the fact that BPMN is graph oriented while BPEL is block oriented.
This makes it hard to transform one into the other and causes pain in todays BPMN undertakings.
Although goto is banned in modern programming languages, business-like modeling languages definitely need it.
The upcoming version of Windows Workflow Foundation with its Flowchart support gives a good example how this could look like.
In his blog Maurice De Beijer has a nice image how this looks like in the Visual Studio.NET Workflow Designer.
Dehydrating long running Groovy DSLs
In my recent article about Domain Specific Languages (DSLs) published in the 12/2009 issue of Javamagazin I described how to implement DSLs using Groovy.
In the article I mentioned that dehydration (state persistence) could be added to the DSL runtime if needed to support long running processes.
I’ve created a Groovy script dehydration.groovy to illustrate how this could be achieved.
Basically the Groovy script is stopped by terminating the executing thread and the state is pulled out.
Later on the state is injected and the remaining part of the script is executed.
This approach can be used to process any kind of long running scripts, especially if they have to wait for external events.
Scrum Poster
When introducing Scrum in a project it is essential for the team to get used to the terms quickly.
The Scrum Poster gives a nice overview which might help in this regard.
Domain Specific Languages (DSL) with Groovy
In the current issue of Javamagazin you’ll find my latest article about how to create Domain Specific Languages with Groovy. Unfortunately the article is not yet published online, so that you have to get the printed magazine to read it.
Cars, Software and Competitiveness
It is often said that software development should be like building cars.
But cars are very different from modern software systems.
Since its invention more that 100 years ago a car is a very stable concept.
This works because the purpose for which it is build (driving on a more or less solid ground) is stable as well.
Software on the other hand needs to be much more flexible because the context changes frequently.
Some examples are markets, organizations, products and the internet.
The concept of software is much more abstract than the concept of a car.
More and more people realize that agility paired with quality is a key success factor.
That’s why a short concept to market cycle is needed.
Automotive is in fact a bad role model. You can see that every day.
The market is demanding for efficient cars with a low carbon footprint.
But the vendors fail to deliver. Why? Because they are too inflexible.
Let us not make the same fault.
In fact the methods and tools are available to establish a fast concept to market cycle.
Some examples are Scrum, Silverlight SketchFlow and Business driven SOA
If the companies have the heart to try those new approaches, they might be with rewarded with competitive advantage and flexibility.
Using Silverlight for JEE applications
Silverlight is an ideal frontend technology for Java applications as well. This is especially true for line of business applications which we find in enterprises of all sizes.
The whitepaper Using Silverlight for JEE applications explains why.