-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Requirements evaluation #1
Comments
Needs
ValuesQ: What do we optimize for?A: Average time that it takes to perform the tasks outlined below,along with the average resulting user frustration level:
|
This is good. A few more things to consider: Concepts from at least one query evaluator will be imported by the system itself. These will be identified by some configured unique name (provided by the source or configured locally??). If changes to concepts are made by the evaluator, they will be propagated to the local registry (diagram for context). Admins of the concepts would need to review the changes, specifically ones that may be breaking. There are a few different situations that can arise each with different ways of handling things.
As you point out, what has changed needs to be present. Since this is an automated process, why something changed in the upstream will likely not be present. This may be feasible to handle in the local registry for the evaluator, but not the local registry for the app. Thinking about this more, this is not necessary a proposed change, but rather a conflict of state between the local and remote registries. This is slightly different from what is described above since the changes have not been applied yet (and therefore being proposed). In this case, the changes have been made upstream already and are basically forcing the downstream to deal with it. @gerpsh This brings up an interesting point. If concepts are always derived from the evaluator, then there is little insight to why a change occurs (add, remove, change). I still believe a registry could be bootstrapped from an evaluator, but then a best practice from there would be to good through the change, propose, review process being updating the evaluator to implement the change. The proposed change could theoretically be shared with subscribers to evaluate if any of the mappings would break before the change is committed. Basically acknowledging dependent subscribers. |
To summarize the last part, a fresh setup would look like this:
Next, the coordinator and local registry for a particular use case.
Now let's say there is a a new concept being requested that requires a new implementation. The most logical approach would be to add a new entry in the evaluator registry, propose the changes, implement the concept, publish the concept. Once published this would be pushed to subscribers which will go through the logic mentioned above, however this would be a single concept rather than everything. In fact, except for the initial import, the changes would always be in incremental. An import is really just a bunch of new entries anyway. Another case is that the implementation needs to change, but does not impact the concept definition. I feel that this should still be recorded somehow. Maybe an "implementation version" in the concept metadata. Since this could like to breakages without anyone realizing it. Another case is a change in the concept description itself. This could be done locally if it is domain specific, or it could be done upstream in the evaluator (if you have control over it). The same review process would happen. Based on what I described, this leads me to believe that changes will be largely driven by the evaluators. The only changes that make sense locally are changing the names of things to suit the domain. |
Here is the discussion that defines many of the needs. I would to try and describing the requirements using the Spine model.
Needs
Values
Principles
Practices
Tools
The text was updated successfully, but these errors were encountered: