DEV Community

Discussion on: Can you describe how you visualize or form mental models around your work?

Collapse
 
pclundaahl profile image
Patrick Charles-Lundaahl

This is an exceedingly cool question!

I don't think I really have one, overarching mental model. However, I definitely have a bunch of models I tend to reach for a lot as tools. I've tried to condense a couple of them here:

ASSEMBLY LINE and ORCHESTRATORS
This is a metaphor I tend to use quite a lot, particularly for data transformation. I've used it successfully with scripts, functions, and classes.

I try to structure code so that one top-level component orchestrates lower-level components, but doesn't do any actual work its self. This lets me separate the sequencing or wiring of things from the actual implementation.

For visualizations, I tend to think of my orchestrators as the controls on a puppet, and the parameters to that orchestrator being the strings.

AXIES OF SEPARATION
When trying to subdivide problems, I try to keep in mind that there are multiple axies it can be split on. Some examples are:

1) By system (database, ui, theme, etc.)
2) By use case
3) By business object

I usually end up visualizing this as some sort of geometric thing (a cube or some such thing that I slice up).

Thanks for the awesome thought experiment!