[HN Gopher] Using anti-requirements to find system boundaries
___________________________________________________________________
Using anti-requirements to find system boundaries
Author : davidboike
Score : 26 points
Date : 2023-05-23 19:22 UTC (3 hours ago)
(HTM) web link (particular.net)
(TXT) w3m dump (particular.net)
| davidboike wrote:
| Using anti-requirements is a powerful way to increase autonomy by
| breaking your domain into separate islands that can evolve
| independently.
| TeMPOraL wrote:
| Uh oh. That's a new one for me. I was taught about the idea of
| anti-requirements at some intro class at my university, but it
| was presented differently.
|
| Instead of trying to probe your stakeholders with nonsense
| questions, anti-requirements were something you'd naturally come
| up with, and which you would include in the initial spec/design
| (and later keep track of). Their point wasn't about DDD or any
| tactical-level thing - it was to channel the natural...
| creativity of people during initial project planning into fences
| around project scope. It allowed and encouraged responding to
| "what about..." questions with a firm "no, we explicitly don't
| care about this" - so that later, when your developers start
| making vague hints about designing the shopping cart as
| eventually-consistent distributed object, or something equally
| "reasonable" from their POV, you could politely remind them that
| this is way past the fence and far on the pasture of _out of
| scope, not doing that_.
|
| Of course, we had an exercise of coming up with anti-
| requirements, which went about as well as the TFA with its
| examples. Only now it finally clicked for me that anti-
| requirements, in the sense I was taught, are about documenting
| denials to most obvious hare-brained ideas - so obvious that
| they're likely to be independently thought of by someone multiple
| times during the project, and could lead to unnecessary waste of
| time and resources if attempted.
| oscillonoscope wrote:
| I don't understand the benefit of anti-requirements. It seems
| trivial to put your attributes in a matrix and identify
| relationships between them. Randomly making up requirements
| doesn't seem effective
| BaseballPhysics wrote:
| It's a suggestion for a tool to create that matrix. i.e., you
| propose these "anti-requirements" as a way to surface
| attributes that have no direct relationship.
|
| Feels a bit kitschy to me, but with the right audience, or with
| an inexperienced BA, perhaps it has merit.
| oscillonoscope wrote:
| But why not just create it directly? To use the article's
| example, you can just directly fill in or ask questions about
| the upper triangle of the matrix below. Adding in the anti-
| requirements just adds the possibility of missing a
| combination. Name Desc Price Qty
|
| Name
|
| Desc
|
| Price
|
| Qty
| jstanley wrote:
| What about:
|
| "The total cost is the square root of the quantity.
| _Preposterous!_ "
|
| -> therefore there is no relationship between the quantity
| ordered and the total cost?
|
| I don't see how this method proves which properties are related
| and which aren't. You can come up with ludicrous relationships
| between any two properties, but that doesn't mean there's no
| relationship at all.
| headtilt wrote:
| How do you do this and remain employed? I get that the examples
| in the article are contrived, but still, it seems annoying and
| inefficient.
|
| How to address the requirement "We must update the name of an
| item every time the description changes."? This is clearly false;
| so therefore, name and description do not belong in the same
| entity. This idea seems preposterous and would result in every
| field being in a separate entity. It seems unreasonable that an
| entity can not have two fields which are independent of each
| other.
|
| What if your domains evolve autonomously as desired and as a
| result develop a disagreement on quantity? The warehouse wants to
| aggressively prune orphaned carts as to release inventory
| reservations, but sales wants carts to be immortal so they can
| remind customers that they still want to buy the things. Can they
| really evolve independently just because this field is copied
| into three entities? Haven't you introduced a new problem by
| destroying the single source of truth and now must maintain a
| synchronization of the values?
|
| I don't grok this at all.
| jstarfish wrote:
| It reads to me like fuzz-testing the requirements.
|
| The bigger problem I'd see is not remaining employed, but
| getting stakeholders to ever take you seriously again after
| harassing them with asinine questions.
|
| As a thought exercise, it's cute, just not something you
| subject _actual people_ to.
___________________________________________________________________
(page generated 2023-05-23 23:01 UTC)