サラリーマンプログラマから

転職活動を機に始める浅はかなブログ

イシューからはじめよを読んだので活かしたい

イシューからはじめよ 知的生産の「シンプルな本質」を読んだので、自分なりの解釈を含めてアウトプットしようと思います。

プレゼンなどを題材に構成されているため、読んだ人全てにとって具体例にはならないかもしれませんが、ソフトウェア開発にも十分応用可能ですごく大切な考え方だと思ったので、私がこの考えをソフトウェア開発でどのように活かそうと思っているかをベースにすすめていこうと思います。

イシューとは何か

作中では、

「何に答えを出すべきなのか」

とされています。
issueは問題と訳されますが、problemとは少し違うようです。 こちらの記事が参考になりました。

eigobu.jp

ソフトウェア開発では、GitHubのissueあたりが一番しっくり来るのではないでしょうか。

help.github.com

ここでは、ソフトウェア開発を考えてイシューとは、ときには解決したい課題であり、ときにはバグであり、またあるときは是非とも実現したいアイデアであるということにしようと思います。

イシューを見極める

問題はまず「解く」ものと考えがちだが、まずすべきは本当に解くべき問題、すなわちイシューを「見極める」ことだ。

作中にはこのように書かれています。
ソフトウェア開発をしている人は比較的この考えが身についているのではないかと思います。なぜならバグ解析と同じだからです。

バグは主にユーザ観点でよくないこと、ユーザに不利益なことを意味します。つまり、ユーザの言葉から開発者の言葉に変換する作業が必要になるはずです。例えば、ユーザ観点で「画面が出るのが遅い」というバグが発生した場合、開発者はネットワークや画面の構成などを解析して、原因を明確にしていくと思います。これが、イシューを見極めることではないかと思います。
イシューは十分に解析されているか?と考えていくのがコツだと思います。

また、チームで開発を行っている場合はイシューを見極めるに加えてチームでイシューを統一することが必要となります。チームメンバ間でイシューの捉え方が違い、成果が微妙に異なることがあった経験は多いのではないかと思います。

ではどのようなイシューが見極められたイシューとなるのかというと、作中に豊富に書いてありますが私は十分にシンプルであることが重要であると思います。特に私は日本語が第一言語なので、日本語1文で句読点が少なく一息で言える程度を目安にしています。チームでの頻繁な確認やそもそも忘れないように、言いやすいことが重要だと思っています。

このときに気をつけていることは、やることにしないことです。イシューを十分に見極めるとやることが見えてしまう場合があります。バグの解析を進めていると当然バグの直しかたがわかるように。そこまで考えるのはいいことだと思いますが、やることはやはりイシューとは違いアイデアや面白さが失われてしまいます。イシューはイシューのまま伝えることによってイシューに取り組むみんながアイデアを出し合ったり活発な話し合いが行われると思います。

仮説を立てる

作中では仮説ドリブンとして詳しく解説されています。仮説を立てることでイシューを分解し、アウトプットまでの道筋を立てるとなっています。
ソフトウェア開発ではどうでしょうか。仮説を立てるのはすごく重要で楽しいことだと思います。私はすごく好きです。バグ解析であれば、もしかしてこうではないか?もしこうであればこうなるはず、自分がこのバグを起こすならこうするなどいろいろ想像力を働かせて検討します。アイデアの検証であれば当たり前だと思われることから突拍子もないことまでいろいろ想像して検討します。真面目に馬鹿みたいなことを考えるのがすごく楽しいです。
仮に仮説を立てなかった場合、場当たり的な対応になってしまい真因に辿りつかない、本質を捉えた対応にならないなど、望ましくない形で結論に達してしまうことがあるのではないかと思います。私も何度か経験があります。

実際に分析して伝える

作中ではアウトプットドリブンとメッセージドリブンとして解説されています。分析のコツと伝えかたに関して詳しく記載されています。
ソフトウェア開発では伝えることが軽視されがちかもしれません。明確にプレゼンを行ったりする場面は少ないかもしれません。本来はソースコードのコメントやチケットに記載する内容など人に伝えるケースは多々あるはずです。また、伝えることを前提にすると仮説を立てる・仮説を検証する・考察して結論を出す、といった道筋をより意識する必要が出て来ると思います。何をしたかを伝えるだけではなく、何を考えて何を試し、何を確認した結果何をしたか、またそれはなぜか。などを的確に伝えられるようになるとより良いアウトプットになると思いますし、自身の思考も整理しやすいと思います。

まとめ

作中では一定期間のプロジェクトを題材にしていましたが、実際にはイシューの見極めからアウトプットまでを短い時間で数多く回すことができるとより良いと思いました。イシューの大きさによっては難しいと思うので、できるだけ小さいイシューで練習してみるといいかもしれません。ソフトウェア開発ではやっぱりバグですかね。