2020/05/25
より良いマインドマッピングがより良いコーディングを助けます
著名なプログラミング雑誌の編集者でありソフトウェア開発者として、Andrew は明確で信頼性のあるコードを提供するために、コーディング中にメモを取ることの利点について頻繁に議論しています。彼は、プロジェクト内での現在の位置や今後の進行方向を把握するために、コーディング中に観察やタスクを構造化されたドキュメントに記録することが役立つと考えています。
様々な方法でこれらのメモを賢く記録する方法を試した後、彼はマインドマップが洗練された解決策であることを発見しました。彼はプロジェクトの一部をマインドマップに展開し、そこにメモやタスクを配置することができ、見つけやすくなりました。
このアプローチは、彼が取り組んでいるコードに集中するための心のスペースをクリアにし、必要な文脈情報を見失わないようにしています。また、彼は次のインタビューで説明されているように、コードの解析にもマインドマップを使用しています。
自己紹介をお願いします。
過去5年間、私はJava Magazine(Oracle) の編集者を務めてきました。それ以前は、Dr. Dobb’s Journal の編集長でした。そして、以前の人生では、いくつかのプログラミング出版物の編集者を務めていました。私はソフトウェア開発者としてキャリアをスタートし、様々なオープンソースプロジェクトや自分のプロジェクトでプログラミングを副業として続けています。
趣味は何ですか?
ピアノを勉強しています。それはプログラミングよりもはるかに難しいです。ピアノの専門家への道は非常に困難です。多くのプログラマーはプログラミングスキルに自信過剰になる傾向があります。私は、自分がそうだと気付かされるまではそう感じていました。古いコードを見て、どうやってこんなコードを書けたのだろうと驚くことがあります。でも、ピアノでは一貫して謙虚さを感じます。どれほど学ぶべきことが多いか、優れたピアニストの水準がどれほど達成不可能であるかを常に意識しています。
マインドマップはどのようにあなたの生活や仕事に役立っていますか?
私はマインドマップを異なる2つの領域で使用しています:
自分自身や家族や友人と一緒にタスクやプロジェクトをブレインストーミングすること;
プログラミング。後述のように、私はソフトウェア開発における3つの主要な目的のためにマインドマップを使用しています。
XMind をどれくらいの期間使用していますか?
おそらく6年か7年、もしくはそれ以上です。
XMind をコーディングに使用するというアイデアはどのようにして生まれたのですか?開発者には普通のことではありませんよね?
最初は、Kent Beck(アジャイル開発の父)が、プログラミングの際には行ったすべての決定を追跡することが良い習慣だと一度提案したことから始まりました。(重要なものとしては、「この変数の最大値を70に設定する。」、「注文に分数の値を入力できるようにする。」、そして小さいものとしては、「この新しいコードをカバーするために統合テストを拡大する必要がある。」など、さまざまです)。しかし、これらの決定を書き留めるだけでは不十分でした。プロジェクトのタスク/欠陥トラッカーに入れるのは過剰でした。それで、取り組んでいるプロジェクトの一部を基にマインドマップを始め、そこにこれらの小さな決定やメモを装飾しました。これにより、別のプロジェクトに取り組んでいるときに見つけてレビューするのが簡単になりました。マインドマップの表現は、メモをすばやく見つけるのに非常に役立ちました。これにより、別の作業を行うときに見直すことができました。
私はまた、機能の設計に取り組んでいるときにマインドマップを使用します。新しい機能をトップトピックとして開始し、サブ機能のための枝を展開し、それらの枝に決定を添付します。また、実装ノート、リマインダー、場合によってはオブジェクトやメソッドの提案された名前なども添付します。これにより、一行もコードを書かないうちに詳細に考えることができます。多くの場合、いくつかの方法を含む枝を別の枝に移動することが可能で、これにより物事を簡単に変更することができ、コードを書く際に自信を持つことができます。
これは、新しい機能、既存のツールへの HTML の追加のケースです:

最後に、未経験のコードを読むときにマインドマップを使用し始めました。ほとんどのプログラムには階層構造があり、これは驚くほどマインドマップで表現するのに適しています。これは iText 7 というライブラリからの分析で、あまり見かけないユースケースですが、実用的です。
⚠️ miss image
この方法でコードを読み進めるにつれて、マインドマップ上でどこを通過して現在どこにいるかが見えるようになります。私の現在地に繋がる経路が見えます。また、読みながら後で参照するためのドキュメントを作成していきます。このユースケースはまだ試験中です。
XMind のお気に入りの機能は何ですか?なぜですか?
正直に言うと、その使いやすさです。素早く動き、頭の中にあるものをマインドマップに入力できます。それが非常に気に入っています。なぜなら、何かをキャプチャーしたいときに非常に重要なことだからです。
生産性をどのように保ちますか?他に使用している生産性アプリはありますか?
このトピックについては、様々な編集記事で多く書いてきました。私は気を散らすものを排除し、良いツールを使用し、クラシック音楽を聴くことがすべて役に立つと感じています。
コーヒーか紅茶か?
朝はコーヒーで始めます。それから、一日中ほとんど紅茶を飲みます。他の二者択一について: 犬よりも猫、スペースよりもタブ、ブラームスよりもワーグナー、モネよりもマネ。
注釈: 写真提供 Bob Adler