島までは遠い

佐藤正志@サークルアラウンドのことが少しわかる場所。プログラマーを育てるトレーナーとして、現役のソフトウェア技術者として、経営者の端くれとして、想うことをつづる予定。しばらくは工事中。

ボヤッとした目標を達成可能なところに落としこむ手法

f:id:ms2sato:20200103232723j:plain

はじめに

新年なので新しく目標を立てようと考えている方、多いのでは無いでしょうか。ただ、漠然と宣言するだけだとなかなか達成が難しいと思います。せっかくなので、目標の具体化とか達成しやすい整理などを一緒に考えられると良いな、という感じのエントリーです。

ちなみに「昨年本を20冊読んだから、今年は30冊読む」のような定量的な目標を量を増やしながら達成している方よりも「そもそも何すると良いんかな」と迷ってしまう人向けです。

ぼやっとしている内容から「よしこれをやるぞ!」までのブレークダウンのようなエントリーです。

達成したい大まかな方針を決める(ぼやっとした希望)

おそらく様々な目標はあれど、単なる欲望の発露でない限りは「理想と現実のギャップ」がそこに存在していると思います。つまり「問題があって、解決したい」というようなことが多いのではないでしょうか。例えばよくあるようなことだと以下のようなものですかね?

  • シェイプアップする(体が弛んでいる)
  • 恋人を作る(恋人がいない)
  • 仕事で活躍できるようになる(今活躍できていない)

ちなみに「シェイプアップしたい理由が、恋人を作りたいから魅力的な自分になりたい」みたいなこともあると思うので、その場合には頭の中で最終目標としてのイメージはあると良いと思います。とは言えあまり考え過ぎるとと進まないと思うので、そこそこぼんやりでも大丈夫です。必要なのはあくまでも方針(どのような方向に自分を高めたいか)でしょう。

大まかな方針を要素に分解する

例えば「仕事で活躍できるようになる」と方針を決めたとして、仕事で活躍できるにはいくつもの要素があるとわかります。仮にプログラマーであれば以下のような感じに進めていけるかもしれません。

こういうことするのに マインドマップを使う人は多そうですね。ツールを利用する方がやりやすい場合にはそういうものを使うのも手です。まぁ、単なるまとめかたの問題でもあるので、箇条書きをインデントしていくだけでも十分だったりします。

「何か綺麗にまとめないといけないのではないか」という心理に駆られてしまうタイプの人は一旦そういうことを置いといて「出してみること自体に価値がある」と考えてくれると良いのではと思います。まずはドバーッと出してしまって、あとで整理すれば良いでしょう。大切なのは出力された内容そのものであって、整理されているかどうかはその次です。

  • コードを書くのが遅い
  • コードにバグが多い
  • レビューで突き返しが多い
  • 仕様の理解不足で間違ったものを作ってしまった
  • 「なぜ早く相談しなかった?」といつも言われている
  • もっと大きな機能を実現できるようになれないといけない
  • 人の話からどういう機能が必要か提案できるようになりたい
  • 相手が理解しやすいように説明することができない
  • 同じ失敗を何度も繰り返してしまう
  • 関数の名前がいつも適切にできない

もしかしたらネガティブなことが出まくって多少憂鬱になってしまうかもしれませんが、気にせず沢山出してみるのが良いです。一人ブレストです。「振り返り」をしている人などは以前の振り返りを参考にしたりすると良さそうですね。ちなみに私がどちらかと言うと課題に気付きやすい人間だからか、上記がネガティブな表現になっていますが、「仕事で活躍できるようになる」という要素の分解だと「コードを書くのがはやい」というような、ポジティブな表現で結果が表現される人もいるでしょう。どちらでも大丈夫で表裏一体だと思っていただければ良いかと。

分解したものを整理し、気づいたものを追加する

  • 開発についてのポイント
    • コード自体について
      • コードが仕上がるのが遅い
        • コードを書くのが遅い
        • レビューで突き返しが多い
          • コードにバグが多い
          • 関数の名前がいつも適切にできない
    • もっと大きな機能を実現できるようになれないといけない
    • 人の話からどういう機能が必要か提案できるようになりたい
  • コミュニケーションについてのポイント
    • 仕様の理解不足で間違ったものを作ってしまった
    • 「なぜ早く相談しなかった?」といつも言われている
    • 相手が理解しやすいように説明することができない
  • 全般的なもの
    • 同じ失敗を何度も繰り返してしまう

少し整理してみました。数を出している時は内容の粒度がバラバラなので、うまく原因と結果を意識できるとやりやすそうです。例えば「コードを書くのが遅い」と「レビューで突き返しが多い」は結果的にコードが完成するまでに時間がかかることなので新たに「コードが仕上がるのが遅い」とまとめています。

こうやっていくと、新たに気づいたりもします。追加したり整理したりしましょう。

  • 開発についてのポイント
    • コード自体について
      • コードが仕上がるのが遅い
        • コードを書くのが遅い
          • どこを変更したら良いのか考え込んでしまう
          • 既存のコードの把握に時間がかかる ★1
        • レビューで突き返しが多い
          • コードにバグが多い
            • 既存のコードの影響している範囲が掴めていない ★1
            • 動作確認が足りていない
          • 関数の名前がいつも適切にできない
            • 「良い名前」のストックが無いからでは? ★1
    • もっと大きな機能を実現できるようになれないといけない
    • 人の話からどういう機能が必要か提案できるようになりたい
  • コミュニケーションについてのポイント
    • 仕様の理解不足で間違ったものを作ってしまった
      • 一旦自分の理解を誰かに確認すればよかった? ★2
    • 「なぜ早く相談しなかった?」といつも言われている
      • エラーで動かないことで頭に血が上っていて声をかけられない ★2
    • 相手が理解しやすいように説明することができない
      • 緊張してうまく話せない ★2
  • 全般的なもの
    • 同じ失敗を何度も繰り返してしまう ★3

星をつけてみたのは、比較的大事なことで、どうやら同じような根っこでは無いかと思われるものです。

  • ★1 は「ソースコードが読めていなかったり、内容把握ができていない」という事
  • ★2は「誰かに話しかければ良いところを、(おそらく上手に話せないために)端折ってしまって失敗している」という事
  • ★3「同じ失敗を何度も繰り返してしまう」は結構クリティカルなのでどうにかしたいですね。"改善できない"という事になりますし。

この例の人の場合には、ソースコードの読み力を上げることはかなりの効果がありそうであるし、もう少し人に気楽に話せる状態になることは大事そうです。また、そもそも何度も同じ失敗を繰り返すというのは改善を阻むのでどうにかしたいですね。

アクションを見つけて、期限を決める

ポイントは見えてきたのでそれぞれ改善を考えたいですが、長くなりそうなので少し巻きます。★1 は見えやすいので掘り下げてみましょう。

  • 先輩にこの課題点を相談してみる
    • いきなり対面だと難しそうなので文書でまとめた上で1on1で聞く
  • ソースコードを読む事について何か良い書籍が無いか探す
  • 社内の勉強会のテーマにできないか提案してみる(先輩たちはどうしているの?)
  • 実際の仕事の時に、コードを読む時間を適切に確保する。読みが浅そうな時は...どうしよう
    • 一旦先輩に相談してみる?

適切なアドバイスくれそうな人に整理して意見を求めたりするのは結構有効なので(特に同じような経験を乗り越えている人なら尚良し)、相談できそうなものは相談してみるアクションになりました。

ここまで落とし込めば、意味のある目標が見出せそうです。仮に先輩と相談するようなワンクッションを挟んで、色よい返事がもらえたりすれば以下のような具体的な形に落とせるかもしれません。協力を仰ぐのが難しいケースなら自分だけでできることに落とし込みましょう。

  • ソースコードの読み力向上に役立ちそうな本を5月までに2冊読む(実際どの本が良いのか私はわからないのだけども、それを探すこともこの場合目標の一つかもしれません。良い本あったら私も知りたい)
  • 社内勉強会で自分が弱点に感じていることをテーマに勉強会が開けないか、相談して実現する(4月までには一回やる)

こんな感じでしょうか。最終的には「いつまでに、何を」まで落とし込むの大事です。あまり年間トータルのような長期にこだわると「いつでもやれる」という心理になって進まないので、もし年単位の長期になっても月間◯回とか刻んでチェックできるポイントを作る方が良いと思います。上記の例はまず最低限のステップを進み、それからもう一度目標を立てるイメージで出してみました。

おしまいに

達成できずに終わってしまいそうなぼんやりした目標を、小さなアクションに落とし込むことで一歩ずつ進められるような内容に落とし込む過程を文章にしてみました。皆さんの新年の目標立ての参考になれば幸いです。

[PR] 新年の目標に「プログラマーとして転職する」というような内容を掲げた方、目標を達成するにあたり先輩たちに相談したいことありませんか?また「実際にどのような仕事になるのか」とか「転職する際にやってみた方が良い事」など先輩に聞いてみたりしたくないですか?なんと、ちょうど良いイベントを1/25に行うのでチェックしてみてください。

ms2sato.circlearound.co.jp