Ok, so reading back over my last few posts, I appreciate that I’m on a bit of a ‘moaning’ streak about Metastorm 9. I think before I talk about my experience with the BPM Designer IDE, I need to offer up a disclaimer of sorts. I appreciate version 9 of the product and the Designer in particular have had quite an overhaul and a platform transplant (now .NET based). The way we now design processes does feel more solid and reliable and the use of C# in designing business services / login and the ability to deal with data as objects is far, let me repeat, FAR better than in 7.6. So in terms of the efforts put into version 9 to release a piece of software that was albeit more developer friendly (less analyst) but was focused on a more maintainable design structure is appreciated.
The area I think that has suffered with the release of 9 is the performance. Especially of the Designer. In short, the Metastorm BPM 9 Designer is SLOW.
Performance Vs Visual Studio
So I’ll reveal my machine stats before I start. This machine is only a development machine and runs 32-bit Windows 7 because of the problems encountered with Designer on 64-bit. The processor is a 2.26GHz dual core and the machine runs on 3GB of RAM. Not that fastest, but as I say, it’s for development only. I run Visual Studio 2008 alongside the Metastorm designer and regardless of machine performance, Visual Studio, being a far bulkier product is lightning fast compared to the BPM Designer. I can literally build (syntax check and compile) C# code into a managed module (wrapped by an assembly) in the time it takes me to select one of the input parameters of a custom visual script activity. That is NOT good.
So, the first and most widely reported performance issue with the designer is the start-up. If you’re running SR3 then this is no longer such an issue compared to the initial release of 9 and even SR1 which had terrible start up times. It is still an issue however. An obvious factor is the start page, which reads in the homepage from the Metastorm Community Central site (content and images). This should not be a major issue as reading in a page with minimum graphics on even the most basic broadband connection is quick. An ASP.NET server will accept a HTML page request, build an executable environment on the server with the page/required objects, then execute the code and respond to the client with the output HTML page in a matter of milliseconds, so I don’t believe this is a major hold up, but it does at add to the load time. You can however turn this off via the firewall if you’re not interested in what the community is talking about.
As far as tests go, Metastorm Designer alone loads on this development machine in 22 seconds. This is the time when the designer is in a usable state and the ‘timer’ has stopped spinning. For visual studio 2008, I’m ready to work in 9 seconds, SQL Server Management Studio in 7 seconds and Excel within 3 seconds. So whatever you can say about Microsoft products, they get the job done and are quick with it. I found that running the Designer by clicking on a solution file within windows explorer adds approx another 20 seconds to the loading time, running at an average of 40 seconds across 3 separate tests. Obviously the loading of the file and the validation of the .NET code adds to overhead here, but this is still uber slow.
General Operational Performance
In terms of general operation, I’ve never used an IDE or any design application (e.g. including any version of the Adode Creative Suite) that has to think as much about every action that takes place. Whatever design action I seem to perform, there is a short lag in the designer responding to what I’ve done. This can sometimes only be a second, but I don’t expect to have to wait for everything done, especially if there is a deadline looming for unit testing or client playback. It feels very much like I am asking Designer to perform a task and it is deciding whether to grant me the honour. Some examples:
– Sometimes selecting an item from the Toolbox and dragging onto the design surface (forms generally) can be completely ignored because the Designer is busy with something else.
– Creating roles is painfully slow. Adding a name then tabbing out requires about 3 seconds of thinking time, what is being done here a low level call to the OS? (being sarcastic)
– Real time code validation on server-side scripts seems to take about 5 seconds. When you change your code because of a syntax error, which you have to rely on your spidey C# senses for instead of visual studios neat ‘Errors List’ box, the Designer takes a good 5 to 8 seconds before re-validating your code and confirming all is well. Why?
– Loading up the visual script for an on complete event takes about 7 seconds.
The worst for me however, that requires a paragraph all of its own is the absolute drag that is filling in the parameters / arguments of a custom visual script activity that has been promoted from a server side method. Just after dropping the visual script activity, which now appears in the visual scripts toolbox you can complete the visual script arguments, which essentially make up the method signature. As i click into each argument to fill in the data to be passed at run time, it literally takes about 4 seconds to place the text selector into the field. Then I have to click the small expression builder icon, which takes another few seconds. This stuff should be instant people, I’m not asking for any computation to be done, just Focus().
Overall, I’m happier to be designing Metastorm processes this new way, but it feels like such an uphill struggle to design what I could of designed in 7 in half the time. I still believe that longer term, you will spend less time maintaining the application because of its greater stability, but trying to get a design off the ground by building the fundamental layers is just tedious. There is talk that 9.1 will address many of the performance issues, let’s hope so, this application really is the slowest IDE I have ever used.
In terms of productivity, I could go as far as saying that building an ASP.NET application that utilized Windows Workflow would be a quicker development task that would be easier to debug and test. The question arises – Why invest in a tool like Metastorm when you are not really gaining the benefits of having an integrated UI, Business Logic and Workflow environment?
Thoughts on this topic are welcome. Last rant for a while, honest 😉