Ignatica Framework - Part 3 - Delivery
Agile, Stories, FRS, TRS, BRS DRS, Waterfall, Six Hats, Incremental Releases, PRINCE, Princesses, CMMI (1 ~ n), Stand Ups, Sit Downs, Pair Programming etc. etc. (some of the abbreviations I have made up). I have been part of pretty much all of the above methodologies, standards and disciplines, all (deliver frameworks, methodologies, tools etc.) are great and they work however there is a big "provided":
This (point 2 above) is where things become a wee bit ?? complicated to a point where PMs and Delivery Managers run for the exit, often because the business sponsor will ask for a "total cost / budget / time-to-deliver for the project", and good luck with that trying to apply one methodology to one team and another to another team.
Now, I have heard ?? in technology team "ya!! the business does not know what they want, they keep on changing there minds, lets give them something that we can deliver."
I transitioned from the front lines of the deliver, coding and managing deliver teams into actually owning and running a business, so I bear plenty of scars, emotional & physical from been just out right abused, ridiculed to physically asked to leave the room. I now can say with authority that I understand the frustration of the business sponsor ?? "WHY CAN YOU NOT TELL ME HOW MUCH AND WHEN I CAN GET ....".
Try telling the business sponsor, "in order to provide you with this feature F1 we have to change A, B, and Z, and now because B is changing we have to update C, but then C is used by business unit 1 and hence we have to create a new C-1, then patch A to A-1 & B to B-1 and we can optimize Z, and by the way A & B was done by vendor so we don't fully know what and how much it will cost, as the vendor needs money to do the analysis first.", by this time I am sure a physical chair ?? is flying at you and all developers / BA's including me are hoping that the ground just opens up and some how swallows all of us so we can go back to doing what we do the best, code. And, lord have mercy if you survive all this do not mention "TCO", because after all this patch-work the number on TCO is going up for the business to do business on your system.
The Ignatica Framework!!! If you have read my previous article, the key words are "distributed" ??, "isolation", "predictable", "repeatable", "measurable"
Putting my "developer" & "QA" ?? hat:
? If you lived in Hong Kong, you will understand the amazing unique taste of "Set A", "Set B" etc.
Putting my "Architecture" ?? hat:
Putting my "DevOps" & "Delivery" ?? hat:
So, taking into account the above and a room full of white-board points we have brought to life "The Module" ˉ\_(ツ)_/ˉ, ya right!!! that is kind of underwhelming, all systems in the market are modular isn't it? So is this a YAML (Yet Another Module Lingo), and to that the answer is NO. And here is why - I put my money where my mouth is:
Business as Lego Blocks
My two rock starts Gulshan Tomar & Benjamin Leung came up with this simple statement, we should be building "a framework as a set of [blocks of code] that reflects the current state of the coverage (policy) for a point in time, and individual [blocks of code] should have zero dependencies on each other."
And, this is exactly what we built in the framework, individual blocks or modules move the current state of the coverage (policy) from "current" to "target" state, and everything is contained within that module without depending on any other module.
Key here is to break down requirement into one business operation only, e.g. Claim for ILAS "write the requirement looking into the box of claim for ILAS only, i.e. move funds, move money, move date if need be etc." similarly Claim for Medical "write the requirement looking into the box of claim for medical benefits only, i.e. run rule of benefit limits, move claim account etc." As there are no limits of number of modules that you can configure to a plan, it is just a matter of building these Lego blocks into the plan.
领英推荐
Business Module
Implementation view:
A typical Java Module is based around the platform-sdk & insurance-sdk Abstract Classes.
? The java developer will only write the code for the module. He/she does not need to care about declaring the end-points, external JSON conversion, state management etc. all this is taken care off by the framework. Module java abstract will give three methods, preCondition(), businessLogic() & postCondition(), so code for all modules will be organized in the same way for consistency / repeatability, predictability etc.
? As each module is a physically separate java class with unique ID given by the BA from the story (FRS) to the code there is 100% traceability between what was asked and what is coded, besides there are no limits on number of modules that can be written, each of the modules gets compiled and executed as per the plan definition. See my Part 2 to understand how plan defines what modules to load at runtime.
So, the key here was to remove all the boiler plate code and reduce the coding to purely coding for business logic with very well defined boundaries:
Now you understand Ignatica Framework is not just a YAML (Yet Another Module Lingo), there is a lot more foundation, runtime framework that makes this a truly modular design, that can be 100% extended by 3rd party or SI partners.
? This also makes project planning, testing and delivery predictable, as you are not making changes, you are adding new modules as per the new requirements without needing to understand what other modules do.
Changing a plan behavior is easy, you are swapping out old modules by disabling them from the plan or launching new plan configuration with new modules, without causing any issues to the previously launched plans.
Program & Project Manager, Insurance Policy Admin Systems Consultant
1 年Inspiring!!