先日ちょっとアイディアを思いつき、どれくらいの時間で実装できるか試してみました。
小1時間でできるかな、と軽く考えていましたが、結局3時間半もかかってしまい、業務に大いに支障が出ました。
この「何かを作ろうと短時間で集中してがんばる」感覚が思いのほか楽しかったので、後日またやってみたところ、今度は30分でひと通り動くところまで作り上げることができました。
このときの経験を元に、アイディアを素早く形にするために必要なことをお話してみようと思います。
30分でどこまでできるかやってみる
このとき作ったのは、複数のRSSフィードをランダムに読み込み、1時間に1度の頻度でツイッターに投稿するというbotでした。こいつをフォローしておけば自分好みのニュースがときどきTLに流れてくるという、RSSフィーダーよりさらに怠惰な「オレオレbot」です。Rubyを使い、手元のマシンで動かしてニュースフィードをツイートするところまでだいたい30分、エラーハンドリングを多少真面目にやったり、フィードURLを外部から読み込むような調整を加えて、自サーバで動かし始めたのが1時間後でした。
と、このときはうまくいきましたが、実際問題としては、30分で常に何か意味のあるアプリを作るというのはまず難しいでしょう。
しかし「30分しか時間がない」という制約のもと、短時間集中しきって何かを作ろうとすること自体がなかなか楽しいものですし、いろいろな意味で筋力が養われます。
アイディアを形にするのに必要な力
その後も、アイディアを思いついたらすぐ実装してみる、ということを何度かやってみました。30分なんかじゃ全然なんにもできないや、というときもあれば、そこそこ満足の行く結果が得られたこともありますが、本当に30分で何か意味のある内容を仕上げようと思ったら、瞬発力よりも総合力が求められることに気づき始めました。
アイディアをすぐに仕様に落とし込める構成力
アイディアを一応「仕様」の形にまとめ上げることが必要です。構成力というと大げさですが、少なくとも、「ただ漠然と思いついたアイディア」ではなく、「一応それを見ながらモノが作れる」程度の資料はまとめなければいけません。ただし、とにかく30分しか時間がありませんから、Excelだのパワポだの立ち上げてちまちま作っていては時間が足りません。
こういう場合は、手書きで紙に書き殴っていくのが最速です。それもボールペンではなくシャーペンを使います。間違えた時、線でぐしゃぐしゃ消している時間がもったいないです。
仕様を見ながら作る人(10分後くらいの自分)を想定しながら、その人が分かりやすいようにまとめてあげます。逆に言えば、10分後の自分が分かりさえすれば、どんな汚い字でも、どんな不可解な表現でもいいわけです。
問題に対して最適な解決方法を判断する
興味がある技術を試してみたいのか、汚くてもいいから高速な動作が必要なのか、設計のエレガントさがほしいのか、人に引き継ぐことを念頭に置くのか、アイディアの内容によって、30分プロジェクトのゴールは千差万別です。そのゴールを実現するのに最適な方法はなにか、素早く判断しなければなりません。
ライブラリを使うのか、ライブラリのドキュメントを読んで理解するくらいなら自分で作ってしまった方が早いのか、隣の席で遊んでいる同僚をだまくらかして作らせればいいのか、とにかく目標をもっとも早く達成できるのはどの方法かを瞬間的に判断することが必要です。
そのためには、日頃からアンテナを張って情報収集しておかなければなりません。今すぐ必要なわけではないけれどそのうち何かに使えるかも知れないからと、何ができるかサワリだけ調べておいたり、なんとなく目のはじっこで眺めておく、というゆるい情報収集能力が必要です。
机の周りが片づいている
それから必要なのは机の周りが片づいていること。痛いところ突かれたでしょ?僕もそうですけどね。
机が片づいていないと、想定外の作業(思いついたアイディアですね)が割り込んできた時、目の前の仕事をちょっと脇にどけて、しばらくの間そちらに取りかかるということができません。
何かパッとやらなければいけないとき、よっこらしょっと「まず机の片づけから」というのでは、スタートの速度がかなり違ってきます。
仕事の進行状況を明確に把握している
目の前の業務と関係ない作業を30分だけサッとやるためには、現在進行中の業務について、状況をよく把握していなければなりません。今ここで30分遊んだ場合、全体的な影響はどんなものか。
今日はちょっと立て込んでてだめだなーという判断もあるでしょうし、でも現実逃避で30分だけ遊ぼう(→つい3時間→泣きながら終電)、という判断もあるでしょう。
自己能力の見積もりを正確におこなう
30分でできるかできないか、それはもちろんやってみなければ分かりません。しかし、どこまでできそうか見極め、一応の見積もりを立ててみましょう。感覚としてできそうかどうかはなんとなく分かるでしょう。そういった意味で、自分の能力を客観的に把握できていることがだいじです。
道具の使い方を明確に把握している
チーム作業をするわけではありませんから、とにかく自分が即座に使える道具立てで作ればいいわけです。自分が得意としていて、立ち上げたら即座にコーディングに入れるような手に馴染んだツールがあるかどうかが重要です。別にIDEである必要はありません。使い慣れたエディタでバシバシ書いていくのでもかまいません。
常に余力を残してある
思いついた→30分だけやってみよう、という身軽さは、気力・体力両面で余力がなければ得られません。徹夜でヘロヘロの状態では、面白そうだからやってみよう、などという気にはとてもならないでしょう。こういった余力を常に残しているかどうかは普段の仕事でも大事なことで、いざとなったらなんとかなる(する)、という精神的な余裕にもつながります。
まとめ
「30分」という時間そのものに大きな意味はなくて、「思いついたらすぐ」ということと「短時間で集中して」というところに力点があるわけです。最初のうちは30分あっという間に経ってしまって呆然とするかもしれません。何回かチャレンジしているうちに時間感覚が慣れてきて、30分というのは意外と長く、意外と使いでのある時間だということが分かってくると思います。
2 コメント:
とても魅力的な記事でした!!
また遊びに来ます!!
ありがとうございます。。
職務経歴書の形式さん、こんにちは。
コメントありがとうございます。お役に立ててよかったです。ぜひまたいらしてください。
コメントを投稿