I am having the hardest time getting started with jBPM. I think it is one reason adoption has not been greater and users are starting to defect; despite a solid product. The documentation is not user friendly.
- Googling 'jBPM documentation' gives a link to 6.0 version, not the current 6.2 version. Googling 'jBPM getting started' brings you to a 5.1 version document. Of course search rank is mostly out of control of a content provider, but it would help if older versions of docs and bits were tucked away in less accessible locations for search engines to find. In general, there is a lot of outdated information on jboss' site and many other locations.
- Documentation is thick and inconsistent. Seems that every sentence written has a link in the index. The index has links, to sub-indexes with more links. Need to consider usability and enabling first-time readers to get the big picture. You don't need 7 links under the section '2.5 Getting Involved', just have a link to the '2.5 Getting Involved' section only. With so many links and links to lists of links, it is easy to get lost and lose the big picture. Someone has taken perfectionist tendencies too far.
- Eclipse jBPM project type not working properly. Creating a new jBPM project does not create any class which has code to execute. Tried various combinations of 'jBPM project' and 'jBPM project (Maven)' and 'a simple hello world process' and all the other options. None of them work (at least for me). The 'jBPM project' with 'a simple hello world process' will generate ProcessTest.java, but not bpmn file, and 'import org.jbpm.test.JbpmJUnitBaseTestCase' is not recognized so the class has many other errors.
- Unsuccessful when trying to start with an empty plain java project (with Maven). Brought in dependencies (why ArtifactId of jbpm-test or jbpm-bpmn2 instead of something like jbpm-core?). Started with vanilla project, then added jBPM maven dependencies, then wrote in my main code from '5.2 KieBase' then added code from '5.3 KieSession'. That didn't work. It is not clear if the "com.sample.MyProcess" is the class that was created from the compiled "MyProcess.bpmn" in the previous step. I tried adding a MyProcess.bpmn file that had "MyProcess" as the "id" of the "process" node. But no success. I'm sure there is a simple solution and it is evident for someone who is familiar with the library, but not for newcomers.
- There are 178 artifacts on Maven Central for "org.jbpm". I think these should be packaged at a higher level rather than something like "jbpm-console-ng-workbench-integration-client". I understand that is to give the maximum amount of modularity. But it also prevents the project's adoption. Similar to the links of links, I think this is evidence of perfectionist tendencies too far.
I know this is a rant, but I am taking the time to write it because I want the jBPM project to flourish. I want to believe in it. I want to use it. But am just frustrated by how hard it is to navigate. I'm worried that others are too, and have never taken the time to write about it. Leading to youtube videos titled "JBpm 6.... Um, no thanks." This reminds me of the evolution of SOAP. At a tipping point of complexity, simpler services like REST took off, and now that is the preferred mechanism for web services. It appears that the Activiti project was started out of similar frustrations with jBPM. I hope jBPM doesn't lose out to simplified projects like SOAP did to REST.