会話ログ2020-06-08
まずドキュメントがないか確認する
ガイドになるようなドキュメントをつくる
ソースコードを読んで理解しテストを書く
リファクタリングする
機能追加する
プロジェクトの内容を知らない人が参加しやすくなる
先日の「一人のプロジェクトが複数人のプロジェクトになるとよい」に関係してくる
他人を巻き込むためにはドキュメントが必要
アイデアを思いついた段階から、具体的にプロジェクトが進むにつれて、ドキュメントも具体的になる。

話そう

あなたはこの会話で何が起きて欲しいですか?

噛み砕きタスクって具体的には何をすれば良いの?

その噛み砕きタスクについて、他に何かありますか?

アイデアを噛み砕いて実行可能なアクションにする

そのアクションについて、他に何かありますか?

これがわからない状態の時に、どうすればわかるようになるのか?

その状態について、他に何かありますか?

プロジェクトから離れてしばらく経ってるから、いろいろなことを忘れてると思う

そのプロジェクトについて、他に何かありますか?

プロジェクトに関するドキュメントがあまり残ってない

そのプロジェクトは、どんな種類のプロジェクトですか?

ある程度の形にした後、放置されていたプロジェクト

そのプロジェクトは、どこにありますか?

どこかのリポジトリにある

そのリポジトリについて、他に何かありますか?

ドキュメント書くべきだし、もしかしたら書いてあるかもしれないな
>ある程度の形にした後、放置されていたプロジェクト
このプロジェクトは、どのあたりにありますか?

NG

そのドキュメントは、どんな種類のドキュメントですか?

本当は、プロジェクトの内部の構造が記述されてて、それを読んだら新しい改善をする時にどこをいじれば良いかわかるのが理想

あなたはそのプロジェクトをどう知るのですか?

ドキュメントがあればそれを読めばいいんだけど、ないんだよね

そのドキュメントについて、他に何かありますか?

ソースコードを読みながら今から作るしかないか

そのソースコードは、どんな種類のソースコードですか?

いろいろ実験をしながら作ったので奇怪な形をしてると思う

その形について、他に何かありますか?

リファクタリングするのが良いのかもな

ドキュメントがあればそれを読めばいいんだけど、ないんだよね
あなたはこのドキュメントをどう知るのですか?

先日聞いた話としては、ソースコードに単語頻度解析をかけてそこからモデルを起こすと良さそう

そのソースコードについて、他に何かありますか?

まずはドキュメントがあるのか確認して、ソースコードを読んでみなければ、具体的アクションに噛み砕けないか

そのドキュメントは、どのあたりにありますか?

あるか、ないかわからないので確認する、これが最初のタスク

そのタスクについて、他に何かありますか?

なければソースコードに単語頻度解析をかけるのが次のタスク

そのタスクは、どんな種類のタスクですか?

ソースコードの大まかなモデルを作るタスクだ

あなたはそのソースコードをどう知るのですか?

読んで、機能を理解して、それから将来のリファクタリングに備えて理解した機能をテストコードにすると良い

そのリファクタリングについて、他に何かありますか?

機能追加とは分けて実行すべき。リファクタリングが先で良い。なんかそれを表現した格言があったような…

そのリファクタリングは、どんな種類のリファクタリングですか?

コードの挙動を変えずに、絡まったコードを綺麗な構造にして、新しい修正をやる時に悩まなくてもできるような形にすること

その構造について、他に何かありますか?

シンプルにする

ソースコードの大まかなモデルを作るタスクだ
このソースコードは、どこにありますか?

NG
>まずはドキュメントがあるのか確認して、ソースコードを読んでみなければ、具体的アクションに噛み砕けないか
このドキュメントは、何のようですか?

地図だ。どこへ行けば良いのかを指し示す大まかなガイドだ

あなたが価値を感じているのは何ですか?

ガイドがあればネクストアクションを決めるコストが下がる。これは価値だ。

そのガイドは、どんな種類のガイドですか?

ソースコード全体を読み直して理解し直さなくても、どこをどう修正したら良いかがわかるガイド

そのガイドについて、他に何かありますか?

書籍の目次みたいなもの

プロジェクトとソースコードの関係は何ですか?

ソースコードは適切に更新されていくことで、脱皮を繰り返す蛇のように成長を続けていく、この生きているシステムがプロジェクト

そのプロジェクトと、ソースコードとは同じですか?違いますか?

例えていうなら人間と肉体は同じか?って言ってるようなもので、死んだ人間も生きてる人間と同じ肉体を持っている

プロジェクトの時、ソースコードに何が起こりますか?

更新される

ソースコードの時、プロジェクトに何が起こりますか?

新しいアイデアとかユーザの反応とかニーズとか、ソースコード以外の成長の糧がソースコードを動かすことによって生まれる

そのソースコードとプロジェクトの間には何がありますか?

その話は置いといて「噛み砕きタスクって具体的には何をすれば良いの?」に関しては、まずドキュメントがないか確認する、次にソースコードの単語頻度解析をする、ガイドになるようなドキュメントをつくる、ソースコードを読んで理解しテストを書く、リファクタリングする、機能追加する、という流れでよいかな?

そのガイドとプロジェクトの関係は何ですか?

プロジェクトの内容を知らない人や忘れた人がプロジェクトに参加しやすくするドキュメント。あ、そうか、先日の「一人のプロジェクトが複数人のプロジェクトになるとよい」に関係してくるのだな

そのプロジェクトとドキュメントの関係は何ですか?

他人を巻き込むためにはドキュメントが必要、と。

そのドキュメントと、プロジェクトとは同じですか?違いますか?

ある意味、プロジェクトが続いていくためにはソースコードよりドキュメントの方が大事?

そのプロジェクトの時、ドキュメントに何が起こりますか?

アイデアを思いついた段階から、具体的にプロジェクトが進むにつれて、ドキュメントも具体的になる。

そのドキュメントの時、プロジェクトに何が起こりますか?

で、ドキュメントはプロジェクトが生き続けるための支えになるのだな

そのプロジェクトは、何のようですか?

生物っぽい

プロジェクトとドキュメントの間には何がありますか?

バイバイ