New Silverlight BPMN Tool

The IYOPRO Process Modeler is SaS solution to model business processes over the internet. While several tools like this are avaliable, this one is especially interesting as it combines BPMN and Silverlight, a strong modeling standard and a powerful RIA technology. It looks and feels like a desktop application and is fun to play with.
In some areas it is limited (e.g. no export) but it is worth to try and see how it evolves in the future.
What I like is the capability to visually simulate processes and the timeline view. This can give you insights about the process flow at runtime.

Wide or Deep? – That is the Question

There has been some discussion over the last months about the future of Silverlight and it’s role especially compared to HTML 5. This question is regularly asked in my Silverlight workshops as well, so it is time to shed some light on it.
To me it seems that essentially the question is whether you would like to go wide or deep.

Joey deVilla coined the terms in his blog post Silverlight, HTML5, The Web, The Phone and All That

Wide means reaching potentially every user on the planet.
Currently the only technology capable of doing that is HTML 4.1 (+ CSS + JavaScript of course). Not HTML 5 because it is not yet there. Neither finally specified nor fully implemented in all major browsers. (check HTMLTest for your browser compliance). Not mobile Apps cause there is no dominant platform yet. (Will there ever be one?) Even if a mobile platform, such as Android, had a market share of 50% a mobile App would only reach 50% of the mobile devices.

Deep means creating compelling user experiences in terms of performance, interactivity and usability. This is usually expected for line of business applications (LOB). Those applications run in corporate environments and target at power users who work with the applications on a daily basis. Here Silverlight is a great option. It reaches far beyond .NET as it can be combined with almost every backend technology via standard protocols.

Here are some quotes from related blogs to underpin this view:

With the blossoming of Silverlight, I think we finally get the best of both worlds when it comes to LOB – the ubiquity of the browser, the rich experience, the online and offline scenarios, and the great languages and tooling.
Jonathan Allen on InfoQ

Web devs never picked up Silverlight as their platform of choice. They always stayed close to what they felt most comfortable with – JS, HTML, CSS, AJAX. Sure, they suffered from cross-browser issues due to the fact that every browser has its take on how “standard” features should be implemented, but they stayed true to pure web development and never embraced Flash or Silverlight.
Vassil Terziev on Telerik blog

Silverlight will become dead if and only the hundreds of thousands or millions of devs who are doing desktop apps today decide that writing JavaScript is cool and that they can achieve more with HTML5-capable browsers, tooling and platforms than with Silverlight or some other similar technology. I honestly don’t see that happening, though, and believe in the merits of SL when it comes to development of heavy-duty LOB apps for the Enterprise.
Vassil Terziev on Telerik blog

In short, if you want to go wide use HTML, if you want to go deep use Silverlight.

I know that this is a bit of a simplification as other factors affect technology decisions as well. Actually is not the technology that comes first. Technology decisions should follow business requirements. And sometimes it is even a combination of technologies that produces a great solution.
But maybe the wide or deep question might help to find the best technology for your requirements.

Groupthink and Scrum

People who apply Scrum in their projects are familiar with Tuckman’s stages of group development which describe the phases a team runs through every time it is formed or changed.
The assumption is that the team members have to find their role before they can be productive. They get to know each other and conflicts are resolved during the storming phase.

Then after the norming phase often something interesting happens. When the people feel comfortable with their role they tend to avoid conflicts and discussions. This is natural and not a problem per se, but sometimes it hinders innovation and striving for the better.

In 1952 William H. Whyte already coined the term GroupThink which describes this behavior.

Quotes:

“Groupthink is a type of thought within a deeply cohesive in-group whose members try to minimize conflict and reach consensus without critically testing, analyzing, and evaluating ideas.

During groupthink, members of the group avoid promoting viewpoints outside the comfort zone of consensus thinking.

Groupthink may cause groups to make hasty, irrational decisions, where individual doubts are set aside, for fear of upsetting the group’s balance.”

And indeed if you work with people closely for a longer time (which is common in a Scrum setting), Groupthink is likely to happen. The consequences are underestimated risks, failing sprints and finally not delivering the promised results.

In order to avoid that, a Scrum Master should foster a healthy level of controversy among the team. He or she should encourage the team members to argue for the best solutions.
This must happen in a fair and constructive atmosphere in order not to damage the team. It requires strong interpersonal skills of the team members and the Scrum Master in particular.

Executable BPMN for Business Analysts?

People asking for the differences between BPMN and BPEL they often hear BPMN is graph oriented whereas BPEL is block oriented. But what does that actually mean and why is it important?

Block orientation means that there is no way back in the process like a goto statement. In BPEL a common workaround is to use loops to move backwards in a process. But this approach is cumbersome and creates non intuitive models. Block orientation feels natural for developers as it is how programming languages such as Java or C# work.

For business people this feels odd, cause it is not how they perceive processes in their daily business.
Business people regularly need a way to say “Oh wait, there is a problem in step X, let’s go back to step A and fix it.”.

Graph orientation means that the process can flow between tasks even backwards. In terms of Business/IT aligment graph orientation is a clear advantage as it is closer to how people think and work.

Because BPMN is graph oriented it is way better suited for business analysts than BPEL. Does that mean that with BPMN business people can create executable processes? In theory yes! And in reality?

As long as the BPMN model is purely prescriptive, people can freely connect tasks in all directions (more or less). But if the aim is to create executable process models, the BPMN semantics come into play. Although your modeling tool might allow to create all kind of links, process engines are very strict in what they can do. An executable model is like source code and as such follows strict rules.

Let’s create a simple example:

For an analyst this might look like a perfectly modeled process. The problem is that it ignores the BPMN semantics. Neither the modeling tool (Signavio) nor the process engine (Activity) complains, but at runtime the process runs into a deadlock situation. Why that?
The parallel gateway used to join the process after the execution of Task 1 and Task 2 expects two tokens. On the first run it gets two tokens and everyting is fine. If the completed gateway continues with Task 2 on the second run, the joining gateway receives only one token and the process is on hold cause the second token never arrives.

Conclusion:
If the aim is process automation, it is essential that the process strictly adheres to the BPMN semantics.
For most business oriented people (at least the ones that I know) this is new completely new terrain.

Silverlight Receives Technology of the Year Award

InfoWorld rates Silverlight the best rich internet application platform in 2011.

Quote:

“Right now, we favor Silverlight. In the two categories most important to decision makers — developer tools and design integration – Silverlight trumps Flash/AIR/Flex. The toolset in Microsoft Visual Studio 2010 is demonstrably excellent, and Microsoft Expression Blend bridges the design-development gap much better than Adobe Flash Catalyst. For these reasons, companies like Netflix have chosen Silverlight as their RIA technology. We completely agree.”

Of course such a rating always depends on what is important in a certain context, but it shows that Silveright is definitely one of the leading technologies in the RIA space. Beside many other aspects the toolset is very important, as it helps to boost developer productivity.

I can only confirm that. We are currently using Silverlight in an Scrum project applying an incremental design and agile specification approach. Silverlight is ideal in this context as the toolset supports all phases from sketch, specification, design, development and test in a flexible manner. Business analysts, designers, developers and testers are able to work closely together using the same toolset.

Silverlight in NoMicrosoft Environments

According to the term NoSQL (not only SQL), NoMicrosoft or NoMS stands for heterogeneous environments in which Microsoft technology is not the dominant platform. For instance many companies use JEE and Unix-based backends and Windows desktops to run their line of business applications.

For those wondering whether Silveright makes sense in those environments, I recommend looking at eBay. A while ago they created the eBay Simple Lister App which can be installed from eBay Garden. This app combines great user experience with a web based deployment model. It is based on Silverlight and integrates with existing Java-based eBay services via JSON/POX and REST. It makes use of unique Silverlight features such as WebCam and notification windows just to name a few.

Another good example is Facedeck, a Silverlight frontend for Facebook. If you don’t wan’t to install it, you can watch a video on YouTube.

From what I see, developers and decision makers start realizing that by using Silverlight they can create compelling user interfaces and achieve great developer productivity especially for line of business applications. Due to its standards support and interoperability features Silverlight is not limited to .NET-backends but well suited for all kinds of backends including Java/JEE.

Some features especially useful in NoMicrosoft environments are:

  • Standards based interoperability via SOAP, REST, JSON, ATOM, POX, OData, XML Schema
  • MSBuild can be fully integrated with Maven and Hudson
  • Silverlight apps can be hosted on any webserver including Tomcat and Jetty
  • Free development tools (Visual Studio Express)
  • Free automated unit testing (Silverlight Toolkit and NUnit)
  • Automated UI testing using WebAii or HP Quicktest
  • No licence cost

If you are interested to see all those feature in action please drop me a note.

Activiti and the Open Source Reference Platform

Now that Activity published the first release (version 5.0) of their Open Source BPMN 2.0 engine and toolset, it was time to integrate it in our Open Source Reference Platform for SOA (OSRP).

Despite some initial weaknesses, such as BPMN error handling, Actitivi is very promising if you are looking for a lightweight, Open Source BPM engine. Especially the features in the areas IT/Business collaboration and human task  integration are worth a closer look. The modularity makes it easy to integrate the engine with other products.

Using the OSRP one can now compare the BPMN and BPEL approaches to BPM, understand how Activiti can be combined with other Open Source SOA technologies such as Apache ServiceMix ESB, and learn about the strenghts and limitations of the product.

Scrum in Practice at Fraunhofer Fokus

Im am going to give a presentation about Scrum at the Fraunhofer Focus in Berlin at 2.November 2010. The event is called Scrum in practice. In addition to the principles of Scrum I am going to show how Scrum is applied in real projects and how to deal with typical challenges.
I would be glad to see you there. You can register here.

Create Silverlight Apps with Notepad

Did you know that you can write simple Silverlight applications using just a text editor without using an IDE or compiler?
Although it is recommended to use silverlight.js to start your silverlight application in a robust way, you don’t even need that. Just create a html file with a text editor of your choice and embed the XAML code.

The absolute minimum is this:



	       
	    

This is a plain html file. The Silverlight plugin is hosted using the object tag. The XAML content is not stored in a xap file, but in a local script of type text/xaml. Inside this script block any XAML can be placed.
The script can also use embedded storyboards to automatically triggers animations.
A more complex example which creates a rotating rectangle with text and a logo is shown here:





	       
	    

The script comprises of the visual elements Border, Grid, TextBlock and Image and four Storyboards which control the animation.
Inline XAML can be used to create nice looking splashscreens or single file demos.
Try it. Just copy the file above to a html file and open it. Provided that you have the Silverlight plugin installed you can see the animation.

Screenshots:

Live demo

If you want to let Silverlight interact with Javacript, just add another script block at the top of the page:


In order to call it, add the event handler to the Grid in XAML like this:

<Grid x:Name="Frame" Background="SteelBlue" Cursor="Hand" MouseLeftButtonDown="nav"> 
...

That’s it!