Affinity mapping use case: Using TW as a thinking aid

Hello all, I am on a business analysis course where we have used affinity mapping/diagramming as a technique. I have found a lot of value in it and I’m interested in executing this within my wiki, and I’d like to ask for your advice on how it can be done.

Quoting from my course:

An affinity diagram is a collection of large amounts of data that is organised into groups or themes based on their relationships.

The technique is most useful for groups performing qualitative analysis. We are provided lots of evidence (data) of different types, and asked to put them together to draw insight. For example, we will have verbatim customer surveys, financial information and so on, and trying to put ideas together to resolve a customer issue.

We are doing this on sticky notes within MURAL, which is a Figma-esque shared whiteboard.

A picture says a thousand words:


Gives us something which looks like this…

I am wondering if I can apply this technique as an individual, within TiddlyWiki. Tiddlers seem like a natural format conceptually, the question is more for how to display them and make it easy to pull the thoughts together.

Two questions to get us started:

  1. Have you ever used this method?
  2. Are there any techniques you use similar to this method within your wiki?
    If not, can you think of any tools which approximate this approach for reviewing & categorising related tiddlers?

Requirements from a software perspective:

  • It must be easy to view all the tiddlers of the map at a glance, while doing the affinity mapping.
  • It should be very easy to group them together with other tiddlers.
1 Like

This is a bit of a weak point of TW.

There is one great tool that instantly does what you want: https://tiddlymap.org/
But it is quite heavy since it uses vis.js and not friendly to tinker and the creator Felix Hayashi is not present in this forum and has not updated the TW below since 5.1.2

There is cecily which was a great approach of @jeremyruston himself. It could be the ultimate thing for tw, but alas here the development seems to be stuck for a decade.

There are several other approaches of floating tiddlers which are not fully developed either. (If you are interested search this forum for floats by @saqimtiaz or myvolantis by admls and @Mohammad .

If you want something serious you could use multicolum by @BurningTreeC but this is columns and not canvas but as the name says columns.

There also is an implementation of tldraw in tw by @linonetwo but here for example it is a little difficult to really work with tiddlers because you cannot create them in the map or drag them into it.

So all in all I am waiting for @jeremyruston to create the ultimate thing… but this is a little like waiting for Godot.

3 Likes

I have used this method and variations many times both personally and in groups. Often used in groups brainstorming sessions the actual board and paper notes is perhaps the only way to do it to involve others. But it is less than optimal for individual brainstorming.

However if you then take the output and digitise it into tiddlywiki the cards are tiddlers and the affinity grouping as simple as a tag for each group. It may not look the same but there are many ways to treat the information once it is in tiddlywiki.

  • Whilst you could endeavour to build something that looks like the post it notes on a board, I think the effort to find new and novel ways to handle and analyse this information is more productive.
  • Have a look at murri, Trello and kanban implementations in tiddlywiki to rapidly build categories and drag and drop between them.
  • As soon as your data is in tiddlywiki you could look at making a postit note/board look alike and the very same time you use a kanban board with a click.

A really simple solution I have used recently is to allow any title to be dopped on a tiddler to tag it with that title. Basically define you affinity groups and drop them on the members, I have a simple package for that, I use an alternative to the contents tab that lists a hierarchical list.

  • The cards are tiddlers in the story river on which I drop a group title and close and move on to the next thus reviewing all cards.
  • For the opposite, have a look at the operation of projectify, where you can drop todo items on a project name, to tag it with that project and no other.
  • I have also being working on a search within, so you could search all cards relating to this brainstorm, or only cards within a single affinity group. There are search tools you can do this with already, I am just trying to get the search in place.
  • These are useful objectives, and you could build a board that looks somewhat like the above image, personally I would perhaps go the Trello/Tekan OR Dropboard method first to get the job done.
    • Yes that Trello link is a tiddlywiki.
    • These may need testing on a new tiddlywiki version
  • Designed properly you can subsequently develop a solution to look and operate anyway you want - including with the communities help.
  • But the tekan board may be the best way to manually enter each card and move to afinity groups (a lolumn each)

I’ll leave it to those more in the know to suggest useful tools for this.

I want to suggest that this may not be the best fit for Tiddlywiki’s model. It’s not that you couldn’t do this – I know nothing about how animate and display everything, but it’s simple enough to model this with tiddlers as cards and shared tags as groups. The trouble, though, is that TW is designed to allow multiple tags on tiddlers. A lot of its power comes from this simple idea. This would insist on a more purely hierarchical understanding.

It’s not exactly that you couldn’t do this, but it seems to me a significant waste of TW’s real power.

What I am about to say is not as visual, so you might be inclined to ignore it. But using Streams (Streams — on TiddlyWiki 5.2.2) can accomplish what you want. Just start typing ideas on separate lines, then drag them together into clusters. Then create headers and drag the items for that cluster under the header. The results are in outline form rather than the visual form you show in your images, but the idea is basically the same.

1 Like

“The trouble, though, is that TW is designed to allow multiple tags on tiddlers”

Maybe if a user assigns two tags to one tiddler and decides this is justified then the tiddlywiki version becomes an enhancement? Maybe the paper note version has limitations that Tiddlywiki doesn’t have? :grinning:

1 Like

It certainly does. If you’re trying to replicate the paper experience, you’re preventing yourself from using TW’s richer features.

Keep in mind it is often valid to build a mechanism in tiddlywiki to restrict some aspect of its behaviour, to reflect a real world example. For example we can create a field call Affinity which can contain only one value, thus each tiddler can have only one affinity from a set of affinities.

  • I pointed out above that projectfy allows only one project name tag at a time.
    • I have sought to find away for some time to easily implement this when needed and we have the tools, but I don’t have the optimum way yet to create a general solution.
    • The toggle and cycle operators indicate a possible approach.

Here is an example of assigning an Affinity value to a field, I would place it in a view template and display it based on a condition, that determins it is a card that you may want to assign an affinity.

\function default.affinities() Gamification Accessibility [[Data analysis]] [[Useful features]] +[join[ ]]
;for example an affinity

<$select tiddler=<<currentTiddler>> field=affinity default={{!!affinity}}>
<$list filter='[all[shadows+tiddlers]each[affinity]get[affinity]] [enlist<default.affinities>] +[sort[title]]'>
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
</$select>
  • If you edit or add another value for an affinity beyond the defaults it will also appear in the selection dropdown.
  • In this example it is impossible to assign more than one Affinity.
  • Another approach is needed if you want to allow more than one at a time, and tags are the simplest.
    • The checklist widgets listField is one way.

I’m actually pretty skeptical :thinking: about this mockup/model…

In practice, people usually notice that some cards/notes need to live both in gamification and accessibility, or that the useful features and start search page — nice to have started out as a large group which then gave birth to a subset. Or, it may turn out that structural and functional helpful features are really not meaningfully different from useful features… and some things actually belong to three or more of these categories…

I suspect that the “each note should be in only one set” norm is actually partly an artifact of the limitations of the paper-based tool. (We can make Venn diagrams and Euler diagrams on a 2D canvas, but we can’t really handle more than a little bit of complexity once there are more than three categories.)

Depending on what you’re going to do with these notes, you may want to keep multiple tags. In which case TiddlyWiki is a better thinking-aid than the mockup exercise in your “affinity diagram” tutorial…

And, if you do want exclusive categories (say, in order to allocate responsibility for some next step), one good method probably involves two stages: add at least one tag to each card/note, and then have another stage where notes with multiple tags get assigned to one or the other (or become their own intersection-defined-category — as “accessibility+frustration” or whatever).

As a start, I do second the recommendation to check out volantis as one tool that allows dragging of tiddlers on a 2D canvas, to see whether you find it helpful.

I have successfully used such techniques on whiteboards. They are a decent initial design tool for a complex system. But, as you note, they don’t allow for much internal flexibility. So very many ideas span multiple categories.

However, if you want to pursue this, @yan, the suggestion from @TW_Tones is a good one. Don’t use tags for your category, but a custom affinity field.

Actually, it’s worth making explicit one of the amazing features of the 2D canvas model (and clarifying that my skepticism is not about “affinity mapping” as such):

Even if the end-result will involve category names, the affinity-finding process can work with less articulate patterns of recognition.

In other words, it’s nice to be able to say “these two belong together… oh, and here we can notice a little neighborhood of things that have something in common” before needing to put a label (tag) on that common property / neighborhood. (And, relation to a neighborhood/group can be “edgy” — this thing is somewhat related to those, but more marginal, and maybe inching toward this other cluster…)

I’ve sometimes used a software tool called yEd for a related task of something like proximity-optimizing diagrams. If you imagine a corkboard with notes, and strings connecting notes to each other, a good digital tool can offer suggestions about how to “tighten up” the 2D array, so that the whole corkboard involves the least possible amount of string. :slight_smile: From that point, I might be able to carve up the 2D space into proximity-neighborhoods that have some coherence (significantly better than random!), even without needing to find articulate labels for the neighborhoods/categories.

1 Like

@yan With existing components I use to manage and display notes I was able to mock up something to define what I’ll call topics into groupings. However, this is not a complete solution.

It needs as @TW_Tones suggests a drag/drop feature to automate the tagging.

I think it would be nice to present all groupings under a project umbrella and present it graphically, something like TiddlyMap (a plugin that @Jan suggested. But, I’m not sure it can present these stickies the way I have it.) Can TiddlyMap render/transclude tiddler content to display a node?

Craig

Nor is mine: only on doing this as a way to organize a TiddlyWiki.

I don’t know yEd, but have used similar tools. Any force-directed-graph tool (for example, this one) may offer some help.

1 Like