まぁ、つまらないものですが

専門学生の気ままな技術ブログ、正しいかもわからんけど日々のログを残してゆきます。<br>Twitter → https://twitter.com/gakusei200709

「○○○をやって見たいけど×××があるからまた今度ね」って言ってずっとやってないひとに捧ぐプロダクティビティのすすめ

ちょうどエモいツイートを観測し、ちょうどそれに関連するエントリを読んだので書きます。 超絶遅刻してますが、まぁ誰も入れてなくて急いで入れたエントリなので多めに見てくださいな。
あ、このエントリは引き続き「横浜医療情報専門学校 AdventCalendar2016」です。

www.adventar.org

ちなみにタイトルの「○○○」の部分には自分が思う以下のものを入れてください。

  • 新しい技術
  • 勉強したいもの
  • 作ってみたいもの
  • 将来使えるであろう資格
  • 読むべき本

そして「×××」にはいつも言い訳に使っているものをお入れください。

なぜこのタイトルなのか

なんとなく気のせいかもしれないけど良くこの台詞を聞く。 学生だと大抵学校のことを理由にされることが多いが、そういう人に限ってスマホゲー、バイトなど関係ないことを一番優先してる気がする。
まぁ「そういうひとは言ってるだけで、そもそもやる気が無いのでは?」って気もするが、それはもったいない。ちょうどいい記事があったのでそれを紹介したかった。

blog.tinect.jp

それと大体こういうのは目標がなくて時間を浪費してしまっていて、時間が確保できなくなっていることも多々多いと思うので。自分が実践していることを基軸に「こうするといいよ」的なのを書き留めておきます。

プロダクティビティとは

直訳で 「生産性」、「生産力」などを指します。
この中では作業効率の良くする方法、一日あたりにこなせる作業量などをよくするテクニックを指すことにします。
ライフハックと書いたほうが聞き馴染みあるかもしれません。 いかに効率化して怠ける時間を作るかの手法と思っていただければ。 ちょっとカタカナな言葉が多いですが、「意識高ww」とならずに読んでいただければ幸いです。

自分が興味持ったのはインターン行ってたときに集中力が持たず、アウトプットが明確に出せなかったときになんとか週の目標を立ててWeeklyReviewのときに明確に今週どれをどれだけできたか言えるかを言語化、数値化をもっとうまくやりたいなーってときにRebuildFMをきっかけに知りました。結構何をどれだけやっているか見れると結構モチベーションが上がったりするし「あ、これは手を出しすぎてるな」ってなったりやることの参考になる。

rebuild.fm

すごくわかりやすく解説してくれてます。

まずはやることを整理する

例えば「Unityでゲームを作る」という目標があったとしても、そこから何をすればゲームが完成するかはいまいちわかりません。 いきなりプログラミングを初めて作りながら完成させようとしたりもしますが、途中で何をすればいいかわからなくなって挫折することが多いように感じます。
それを防ぐためにもまずは何をやれば完成するのかを考えます。

例えば先程の例なら * ゲームの概要を考える * ゲームシステムを考える * 素材を作成収集する。 * ゲームのメインシステムのプログラムをする * 調整 * デバッグ * 出力

大雑把な例ですが、こんな感じにわけれます。 これを一つづつ潰せばゲームが完成すると思えば少しは難易度下がった気しません?しない?
普通に箇条書きにしてもいいですが、どの粒度出だすのがいいのかなどを書いてくださっているものがあるので少し紹介します。

WBS(Work Breakdown Structure )

PM(Project Management)の手法で複数人のプロジェクトから個人のプロジェクトにまで適用出来る範囲は広いです。 一つの目標から大工程、中工程、タスクと粒度を階層ごとに分けてその目標がどのような作業によって構成されているかを整理します。
複数人で行っているなら役割分担もこのWBS図を用いるとやりやすくなります。これをもとにスケジュールを引くこともできます。(関連:ガントチャート

www.itmedia.co.jp

Getting Things Done

略してGTD。こちらは個人で使う作業ワークフローとして有名です。
一つの目標に対して適用するのではなく自分が持つToDo(やること)に対応させます。
詳しくはPOSTDの「15分で分かるGTD – 仕事を成し遂げる技術の実用的ガイド」が詳しく触れているので是非そちらを。

postd.cc

これはいくつかのToDoListを用いて頭で何をやりるかを考えるのをやめようという手法です。
まずInboxと呼ばれるToDoListにまずはやることをすべて予め書き込んでおきます。これはうっかり忘れたりするのを防止するためや、やることの手助けをするツールとして役に立ちます。「ゲームを作る」程度に短くて十分です。 その後それらを処理します。本当に出来ることなのか、本当にやりたいのかを考えて「いつかやるリスト」と「次にやるリスト」に細かく仕分けていきます。 「Unityをインストールする!」みたく必ず起こせる簡単なToDoに砕いていきます。 そうして次に何をやるのかを迷わないに大きすぎてどうすればいいかを悩まないようにしていきます。

本はじめてのGTD ストレスフリーの整理術でより詳しく書いてあると思います。自分はかなり簡略化してKanbanFlowと合わせて使ってます。

集中してやる

やることが整理されたら後はやるだけです。 集中してことにあれたらなお良しです。
ただ集中は案外長く続かないし誘惑に負けることもしばしばです。集中を保つのによく紹介されるものをここでも触れておこうと思います。

ポモドーロテクニック

qiita.com

やることは単純「25分間図れるタイマーを用意して作業を初めて25分たったら5分間休む」これを「1ポモドーロ」として繰り返すだけ。
こうして適度に休憩を繰り返すとできるだけ最高なパフォーマンスを維持しし、集中力を鍛えます。(といっても自分もまだあまりうまくできてないのだけれど)
ポモドーロテクニックで重要なことはポモドーロをどれだけ繰り返せるか、ずっと一日中コードを書いてるつもりでも案外少なかったりします。自分も多くて9ポモドーロ程度が限界でした。 大切なところは自分が実際に集中出来る時間を知って次のタスクはなにポモドーロだろうかと見積もれるようになれば作業の見積もりを正確に行えるようになることです。

参考書籍

ここまで書いて疲れてきたので参考になる素晴らしい書籍を上げてまとめます。

プログラマが知るべき97のこと

世界で活躍するプログラマの人々の「これは知っておくべき」がまとめられている本。 勉強法、設計の大切さなど多岐にわたる部分でのアドバイスが書いてある。日本からはRubyまつもとゆきひろ氏やRebuildFMの宮川氏を始めとする方々が寄稿してます。 読んで損はない本の一つ。 この中にもプロダクティビティに関する部分が幾つか書かれています。

SOFT SKILS ソフトウェア開発者の人生マニュアル

こちらも多岐にわたる部分でのアドバイスが書かれているとくに著者がプロダクティビティオタクと言って差し支えない方で非常に詳しく書いてある。以前に感想を書いたのでそちらも見ていただければ。

godan09.hatenablog.com