DEV Community

sta
sta

Posted on

Divergent Work Using GitHub

Summary

  • There is an activity known as idea generation
    • Divergence (output), convergence (organize), and distillation (derive essence or conclusions)
    • Traditionally done using digital whiteboards like Miro
  • It's actually possible with GitHub + plain text
    • Create a repository
    • Each member writes down ideas and opinions
      • Write your opinion as (theme)-(myname).md
    • Various views are created by scripts or generative AI and ignored with gitignore
  • This way, you can write your own opinions and read others' without conflicts
    • This can be done locally, using familiar editors or terminals

Background

There is an activity called Creative Thinking Methods

There is an activity I call Creative Thinking Methods. Known for brainstorming as a method and Miro as a tool, it involves generating numerous ideas, organizing them, and deriving the essence or conclusions. It's that kind of activity.

Creative Thinking Methods are often undervalued

In today's VUCA world, changes are rapid and answers are scarce. This is precisely why you must think about what you can do, what you should do, what you want to do, and what to focus on or discard. For thinking, information is necessary, but the amount of information a human mind can manage is limited. That's where Creative Thinking Methods become useful.

Also, engineers often struggle with designing and formulating team visions or strategies. Simple communication doesn't cut it. Here too, Creative Thinking Methods are crucial.

First, it's about information. Each person should express as much information—knowledge, constraints, ideas, opinions, anything they have. The discussion starts from there. In reverse, once output is done, it's just a matter of organization and selection.

Creative Thinking Methods systematically perform such activities. This is a crucial skill, especially for creative engineers.

But using Miro is... challenging

The staples in this genre are analog (whiteboards and sticky notes) and digital (Miro).

For engineers, both can be cumbersome. They are more accustomed to reading and writing than listening and speaking. They also know that information left as plain text is more usable later.

Hence, we developed a method that suits engineers!

Creative Thinking Method Using GitHub

Introducing a method for conducting Creative Thinking Methods using GitHub, plain text-based, and in each person's local environment.

Phases

There are three phases.

  • 1: Divergent Phase
  • 2: Convergent Phase
  • 3: Distillation Phase

In the Divergent Phase, we gather each person's opinions. If there are n people, we should gather n opinions. At this point, there's no organization or selection, leaving it to each individual. Plenty of opinions are expected to come out.

In the Convergent Phase, we organize the opinions gathered in the Divergent Phase. Similar opinions are gathered and structured. There's no need to forcefully tidy them up; it's enough to organize them in a way that everyone understands. A best-effort approach is acceptable. Also, it's common to think up more opinions at this stage, so feel free to continue outputting (i.e., go back and forth with the Divergent Phase).

Finally, in the Distillation Phase, an essence or conclusion is derived. Write this in less than a page. If actions are needed, also write a task list.

How to Execute the Divergent Phase

  • 1: Create a repository
    • Add *view* to .gitignore
  • 2: Each member writes comments
    • Write your comment as (theme)-(myname).md
    • Incorporate others' updates with git pull
    • Create summaries, translations, or other views with scripts or generative AI
      • For anything not agreed upon for common use, include view in the filename (i.e., exclude from version control)

So the repository will have files like (theme)-james.md, (theme)-mary.md. Opinions on a theme or topic exist.

Since they are separated by filenames, there is no fear of conflict; freely pull with git pull. As you look over them locally, add any new opinions that come to mind.

For example, if James wants to discuss "meeting frequency," he creates meeting_frequency_james.md. Others, like Mary, will incorporate this file when they pull. Seeing James's content, if Mary has opinions, she creates meeting_frequency_mary.md and pushes it.

Thus, opinions accumulate for each topic, so rely on scripts or generative AI to create views. For example, James might create a simple merge script to generate meeting_frequency_view.md. Mary might use Cline to create meeting_frequency_summarize_view.md. Either way, since view is in the filename, it won't be version-controlled.

How to Execute the Convergent and Distillation Phases

We'll omit this for now. This article focuses on the crucial Divergent Phase.

There are various methods for the Convergent Phase. Recently, you can let an AI agent converge the data and input that into a human meeting for distillation, using tools like Claude Code or Codex.

On the other hand, people like Knowledgers make a living out of convergence and distillation, crafting them (with the help of generative AI) over time. Depending on the project or work, this might take over 100 hours.

In any case, since the information is all out there due to the Divergent Phase, it can go any direction. The most important is the Divergent Phase, an assembly of opinions everyone has contributed!

Conclusion

I introduced the Creative Thinking Method using GitHub, specifically focusing on the Divergent Phase. I also explained the overview and significance of Creative Thinking Methods.

Creative Thinking Methods are often undervalued among engineers, and you frequently see people struggling without this ability. Especially in senior roles like engineering managers or staff engineers, having this skill makes a significant difference. I consider it a necessary skill. Please practice and make it your own!

Until next time.

Top comments (0)