Ed,
Sorry for delay in responding. Difficult question to answer in a simple way.
I will respond to each of your questions below based on my understanding.
Others more knowledgeable could add/correct me.
If others agree (from both technical and business points of view) to my
points below, I can try to detail these thoughts out more. Don't want to
start documenting these without really agreeing on the high-level approach
as a larger group.
Thanks
Binny
From: Ed Cable [mailto:[email protected]]
Sent: 07 March 2014 00:08
To: mifos-users
Cc: Binny Gopinath
Subject: [Mifos-users] Clarifying questions regarding workflows,
notifications, and business rules
Binny,
As I think through all the projects we have proposed for GSoC around
workflows, notifications, CRM, and business rules, I recognize more deeply
how they're all tied together and how important they factor into the client
management pillar of our financial inclusion roadmap.
At least in my eyes (non-technical and non-functional expert) I'm having
trouble visualizing them from a design and architecture perspective. Both in
how far along we are currently and how inter-connected they are.
Could we spend some time to document how far we are currently and at a
high-level the platform API-layer and database layer work that interns would
need to carry out.
This exercise is also to ensure we haven't left anything out fundamentally
in the platform that would block the interns from doing productive work that
we can merge back in.
Some specific questions I have (and I realize that often you won't be the
best person to respond to these since you're relatively fresh to the Mifos X
codebase):
Workflows
. Do we have the baseline workflows in place across all the
records/entities in Mifos X (similar to Mifos)
o I might be muddling client and loan state workflows?
o Do we have these diagramed out anywhere yet? - (if not, that's a good
task for our documentation volunteers)
. With these baseline workflows in place,this then the foundation in
which we are able to attach actions or items triggered by these workflows?
o I.e. attach survey to view or create client stage
o Trigger an activity when a loan goes into arrears or bad standing
[Binny] There are at least 4 areas in Mifos X that needs improvement related
to business workflows - without having to consider a "workflow engine" as
such:
a) Client and Account Status - there is no "partial application"
status, before being submitted for approval. This is useful when only
partial information of the client is available at the time of creating the
client. Additional information is awaited and hence this client/loan should
not be visible in an "approvers worklist".
b) Loan Officer - "scope of visibility" for loan officers is set at the
branch level and not the clients/accounts that are assigned to the loan
officer. This is because there is no correlation between Staff and User in
Mifos X. So, I as a loan officer, will be able to see clients who are not
assigned to me.
c) Capturing additional data - is set the entity level and not at the
workflow level - so to capture additional data /survey during a workflow is
not possible. For example, when closing a client, I want to capture few more
data and some textual description of leaving reasons - this is not possible
d) Maker-Checker - Finding it difficult to use this feature -
Example: Client X is updated and this needs a maker checker. Mifos X creates
a checker task.
User is allowed to update this same client again - there is no indication
that this client is has an update that is awaiting checker approval. And
this will create a second checker task.
The second checker task can be approved first. And then the first checker
task can be approved. So, if I updated the same set of fields twice, then
whichever task is approved last will persist for the client. Each task is
displayed as a set of name value pairs - and in many cases, the values are
IDs (for example, if you change the staff, the staff ID is displayed). Can
be argued that this is a display only issue, but to display each type of
checker-task in a user-understandable way, substantial effort will be needed
(to build UI and to call the relevant APIs to fetch the relevant data).
The whole flow doesn't feel right. So, without at least some enhancements, I
doubt if this feature will be usable in production.
I feel that Maker-Checker should have been integrated into the entities
rather than keeping it completely independent of entities.
Notifications and system-wide alerts (activity-driven MIS)
. Is the workflows engine a pre-requisite for following scenarios?
o Client goes into approval state >> Branch manager gets notification
that a client needs to be approved
o Loan goes into 60 days in arrears >> field officer or manager gets
notification to follow up with client.
[Binny] By "workflow engine", I am assuming that you mean a configurable set
of logical steps to be followed for a business flow.
Simple Example: Business Flow: Client On-boarding
Step 1: Capture Client basic Data and identifiers
Step 2: Capture Client income and expense data (data tables)
Step 3: Checker approval
Step 4: Do Credit Check
Step 5: If pre-conditions are met then, then allow client Activation
Step 6: Send notification via email/SMS to client
My opinion: Keep "workflow engine" and "notification engine" as 2 separate
modules that can be configured separately. Steps 1 to 5 to be handled by
workflow engine. Step 6 to be handled by notification engine. Notification
engine can be configured to say which events (audit events) need
notifications and when the notifications are to be sent - in real-time or
periodically or end-of-day. Also, workflow engine can call the notification
engine as a step in the workflow, if needed.
My guess is that a Workflow engine implementation will require a lot of
rewiring of the current code.
Business Rules Engine
Is this a logical progression of where we're heading?[Binny] Yes
. Once we have a workflows engine in place, could hard code that
when a loan goes into 60 dtays in arrears, a notification should go out to
management, or it could trigger a task/activity for a loan officer.[Binny]
Workflow engine can have a step which is a conditional branching based on a
rule evaluated on the rules engine
. If we had a business rules engine, this condition + action would
be a setting that could be configured from the Mifos X UI
o i.e. Ops Manager could set # of days in arrears, what
action/notification/etc would get triggered
[Binny] Business Rules, Notifications and Workflows are three components
that are separate and can have dependencies on each other. Each of them
should ideally be managed and configured from UI. The UI and the engines for
these will be really big developments, in my opinion and are not small
enhancements.
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Mifos-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mifos-users