Hi Kingsley,
For me, it depends if they are BO Rules or Process Rules.
Over the years I have tended to, wherever possible move BO Rules out to a Process whenever I specifically want the Rules processed in a particular order. I know there is the option of setting a Priority on the BO Rule but that just adds another layer of complexity in my book.
More specifically to you question... I guess, it depends....
When I first started with Aware I always tried to keep Processes and Rules as compact as I thought possible but found that it is actually more complicated to later understand exactly what is happening. I did not want to create to many processes and sub-processes. But now, I have no hesitation at all in creating many many sub-processes which provides more clarity of logic and also has the advantage of ALWAYS knowing what BO instances are in context.
When I am building a workflow that has a lot of complex logic in it I always now use the Worksheets functionality which is fantastic and allows me to keep everything I need for that workflow in one place rather than needing to jump around all over the place trying to remember whats what and also allows me to check off the parts that are complete, tested and working properly.
Additionally over the last few years, I have made much more use of SEARCH_COUNT to ensure correct and dependable execution of particular rules whereas in my earlier Aware experience I was relying to much on a FIND to actually FIND something. Of course, the trip hazard there (which I learned way to late after a serious bug) is that if you have, for example a sub-process call immediately after a FIND expecting it to execute the sub-process for each record found, Aware will execute the sub-process when the FIND fails to find any records.
But, I digress. Back to you point...... I tend to seperate Rules as much as possible purely to be able to give them a descriptive name that makes sense when I need to understand the logic in the future.
The funny thing is..... I have been using Aware for 13 years now and at times when I come across some stuff I did years ago.... there are so many things I look at now and go...." What the hell was I thinking :-/
Just as a little tip that might help other while I am at it....
When you have a Process with multiple sub-processes... Grand Parent / Parent / Child / Grandchild process structures..... I found it helps enormously to maintain a strict Process Naming convention that can be easily followed at a later time..... for example....
The Grand Parent Process name start with a common part which is as short as possible....and a _1 suffix
Let's say MyWorkFlow_1_FIND_Employees. Now, say, from that I need two sub-processes... I just copy and paste this Process which will automatically be named MyWorkFlow_1_FIND_Employees1 and MyWorkFlow_1_FIND_Employees2. I then rename those to MyWorkFlow_2_FIND_WorkHistory and MyWorkFlow_3_CalcWorkHours.... and on and on for each sub-Process.....
I think use Display Under for each sub-process which effectively keeps everything together in a nice tree like structure providing further clarity in the future. But the main thing is that EVERY Process and sub-process in that entire Workflow ALWAYS starts with MyWorkFlow or whatever. I do wish Aware would allow longer Process names as sometimes if get hard to name the Processes something meaningful within the maximum Process Name length.
I would love to hear what naming conventions others have employed as I am sure there are smarter ways of doing this but my pea sized brain just could not think of any.
Anyway... hope it helps.