Mastercard / flow

Testing framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

InheritanceHealth: a target-rich environment for improvement

therealryan opened this issue · comments

The InheritanceHealth utility attempts to find the optimal inheritance structure for flows. There are a few problems that limit the value of the advice that it offers:

  • No understanding of human-scale organisation: the structure that it produces is based purely on the inheritance cost metric, which takes no account of the value of keeping thematically-related flows together even if their message content differs greatly
  • Inheritance cost metric is just the count of changed fields, and does not consider the ease by which multiple fields can be changed. For example, the cost of removing an entire sub-object from a json message is one edit, not one edit for every field in that sub-object.
  • The utility computes the minimum spanning tree over all flows, but the true optimal structure might actually be a minimum spanning forest, comprised of multiple trees. How do we select the roots for the forest? Perhaps we can trust humans to have made reasonable selections already?

There's a bunch of interesting work to be done in this area. Let's do that work.