Locations features redundant/confusing

The following comment was posted by @mason.lanphear to https://www.drupal.org/project/farm/issues/3210067 - I’m copying it here because it raises a lot of good questions, and I want to keep that other issue focused… (it is written in the context of that issue, so important to review that first, but ultimately it is a broader discussion I think)

Hi Mike: I wanted to comment that the location feature in the context of growers is quite confusing. Its also redundant to have a location for a planting, which inherently has a geographic boundary and location. I think an important consideration for farmOS core is whether or not you want to force that on the user when most of the time it will be a point of confusion. Julie at Roy Farms already mixed up location vs asset when creating activity logs (luckily we were able to pair it down to just the essential information in the activity plans).

I also think you may be overthinking this use case:
However, some cases are not intuitive - specifically when you want to represent an action that is being performed directly to location assets. For example: applying an input to a Land asset… the action is happening TO the field, but it is also happening IN the field. So should the Land asset be referenced in both? Or only one or the other?

Most of the time you are applying an input (irrigation, fertilizer, chemicals) to a planting asset, not the land. Yes, its happening in the field and to the field, but why is that relevant to a farmer? Perhaps they’ll want to see what chemicals were applied historically to a field but that can be recorded at the field ID level without any need for specifying if the log is a location or not. Agrian simply uses fields and plantings for their data model and they are the de facto spray record platform in the US…I see your challenge in trying to create a generalized data model but I think if you can simplify things and make the platform more intuitive for a larger audience, you’ll see more adoption.

Either way, the location feature will definitely be a redundancy and point of confusion for growers. I would suggest that you simplify things and have the farmer specify whether an asset is a location or not when creating the asset. Specifying if its a location asset for each log is very laborious. At the end of the day, you want your roadmap to driven by users…has a location feature been a frequent request?

(I replied in https://www.drupal.org/project/farm/issues/3210067, but will copy my response here and remove from that thread because it’s long and largely unrelated to the issue.)

(My original response, copied from https://www.drupal.org/project/farm/issues/3210067#comment-14115490):

@mason.lanphear Sorry I just saw your comment now! I think Drupal.org didn’t show it at first because your user account was new or something. Apologies for the late reply.

I think it would make sense to move this to a more general topic in the forum. There might be some confusion about what this issue is about specifically. I’ll respond to a few things here, but I’d love to have a broader discussion in a forum topic if you’re still interested…

Its also redundant to have a location for a planting, which inherently has a geographic boundary and location.

A diversified vegetable operation will have hundreds of planting assets, many will start in seeded trays in a greenhouse and then be transplanted out to fields. Sometimes plantings will be transplanted more than once. So “location” of plantings is very much a real-world use-case, and one that we must accommodate in farmOS. It may be less relevant in operations that only direct seed their plantings, and in farmOS 2.x it is possible to have a Plant asset with an intrinsic geometry just as you describe. So there is no need to think about “Location” if you use it that way.

Most of the time you are applying an input (irrigation, fertilizer, chemicals) to a planting asset, not the land. Yes, its happening in the field and to the field, but why is that relevant to a farmer? Perhaps they’ll want to see what chemicals were applied historically to a field…

That’s exactly why.

but that can be recorded at the field ID level without any need for specifying if the log is a location or not.

In order to say that the input was applied to both a field and a planting, the log should reference both of them in the asset reference field. As I stated in the issue description:

When a log uses the Asset field, it means “this happened TO this asset”.

An input to a planting in a field is an input to both the planting and the field. Whether or not you decide to record both is up to you. Some growers may want to see these logs related to both the plant and the field. Some may not. farmOS doesn’t enforce that either way. Nor should it. If your particular use-case calls for that, then you can enforce that as part of your own conventions. If not, you don’t have to.

I see your challenge in trying to create a generalized data model but I think if you can simplify things and make the platform more intuitive for a larger audience, you’ll see more adoption.

I think it’s important to separate the data model from the user interface. Currently, the farmOS UI is pretty directly tied to the data model, because as a first step it has to be. It is a CRUD application for editing the lower-level general purpose records. This is an intentional upfront sacrifice we are making, with the hope that it will have greater long-term benefits as more higher-level UIs are built on top of the flexible data model.

Enforcing conventions and “making the platform more intuitive” should NOT be directly tied to these lower level CRUD UIs. Instead, these should be handled by quick forms, plans, field modules, third-party survey applications, API integrations etc. “Intuitive” user interfaces are inherently limited in what they can model and represent, and every ag data software I’ve seen has made the mistake of tying their data model directly to their user interface. We’re trying to do something different. And therefore we have a different set of challenges. But I think it is worth it.

I would suggest that you simplify things and have the farmer specify whether an asset is a location or not when creating the asset.

This is exactly how it works in farmOS 2.x. Go to Records > Assets > Plants, click “Create Plant asset”, then click the “Is location” and “Is fixed” toggles at the bottom. This will cause an “Intrinsic geometry” field to appear, which will allow you to define the fixed geometry of the plant asset.

You don’t need to use the “movement” location features if you don’t want to.

I agree that the standard asset/log edit form UI is not “intuitive” - because “intuitive” means “tailored for a specific use case”. The /asset/add/plant form is not the place to be tailoring for specific use-cases. That should be done in higher-level UIs - and the hope is that more organizations in the community will step forward to build and maintain these. The asset and log edit forms themselves are essentially low-level database editing forms - which are a necessary layer, and the responsibility of farmOS “core” to provide.

Specifying if its a location asset for each log is very laborious.

I agree using the log forms directly in general is laborious. This should be solved at a higher level.

As it relates to this issue specifically (the asset and location reference fields on logs – which to be clear are different than the is_location field on assets), my proposed solution was to automate it (see “Proposed resolution” above).

At the end of the day, you want your roadmap to driven by users…has a location feature been a frequent request?

Yes, from the very beginning of farmOS. To name a few specific use-cases:

  • Diversified veggies that start in greenhouses and are transplanted to fields
  • Nurseries that only grow/sell potted plants or flats/trays of starts
  • Rotating animals through paddocks
  • Recording when equipment moves from one farm/field to another

This ended up being a bit more long-winded than I hoped, but I hope it provides some more context for you, and helps to illustrate why we’ve taken the approach we have.

Very interesting @mstenta. Thanks for the explanation!

Its clear you are working with a very different set of clientele in diversified veggie operations. Farming in the Yakima Valley tends to be large growers producing mainly perennial crops that persist in one field for up to 50 years. While it will require more customization on our part, it seems the data model should support a user interface that works for our clients. Luckily I have @paul121 to help with this!

2 Likes

Yea that makes perfect sense @mason.lanphear - and it is definitely a weakness of farmOS in it’s current state: the higher-level UIs that abstract a lot of the underlying data model aren’t built yet.

So grateful to have you and @paul121 thinking about that kind of stuff now too! The more folks start to work on those layers the faster we’ll see some really cool things take shape. And with the work @jgaehring is doing to make “Field Modules”, I’m hopeful that Field Kit can start to become more of the “day to day” tool that growers use - and farmOS (as we know it now) can be the “power user” / database explorer side of things.

Of course, we have the opportunity to build UIs directly in farmOS too, and I expect that will happen a lot more with the “Plan” entity types… for bigger-picture back office planning. Lots of work to do but I think we’re laying the right foundation!

2 Likes