なんも分からないのでしらべた

なんもわからん!…ので、できる範囲で調べる。

個人開発で計画は必要か(5) -- 必要だ😎

f:id:kbn1053:20171214210358p:plain
個人開発者の定番の悩みのためか、かなり情報が豊富でした😄
文献30冊+webページ100程度を参考にまとめます。

結論

個人開発で計画は必要。
「行き当たりばったり」や「運まかせ」よりは、計画を立てたほうが、目的に達する成功率が高まるため。

  • 個人開発は極限まで人的資源が限られた開発なので、タスクの優先度決めが大切。計画を立てて全体を俯瞰することで何を最も優先すべきかを判断できる。
  • 「自分は計画通りに進められる」というコントロール感があると、自信やモチベーションの維持につながる。
  • 計画を立てることで、以前の良くなかった点やボトルネックを改善し、良かった点は継続して、より良く次の計画を推進できるようになる。

詳細

1.個人開発へプロジェクトマネジメント(PM)を適用すべきか

  • 適用すべき
    • 成果を出している個人開発者のインタビューにある解説・独自手法は、結局PMや反復型開発(アジャイルソフトウェア開発・プロトタイピング)の要素と同じだ。
      • 参考書によって大きな違いはない。わかりやすいPMまたはアジャイル開発の1冊でも読めばネットの記事に振り回されない。
    • PMの手法を個人開発で全てをやろうとすると管理コストが開発コストを上回ったりして本末転倒となる。
      • 自分に必要そうなもの、簡単にできそうなものつまむのが有効。良さそうなのは取り入れて、複雑で効果が薄いのはやめる。
      • 文献には小さい規模ならTODOリストだけで回すという解説もあった。管理コストを最小限・自動化したい気持ちは忘れない。

2. 組織PMと個人PMの違いは何か

  • ほとんど共通。
  • 個人PMにはチームワーク関連の技術が不要。その代わりに、自己動機づけの技術が入る。
    • 自己動機づけ:やる気の出し方。モチベーション維持の仕方。誘因。言い回しは色々ある。

3. 自己動機づけについて

  • 個人開発の最大のポイントは自己動機づけができるかどうか
  • モチベーションを維持する方法
    • 様々な研究がされている。個々の掘り下げが弱いが、入社10年分のリーダー学が3時間で学べるの5章が網羅的に記載してある。
    • small-winは多くの本で紹介されている
      • 大きな目標を小さい目標に分解して、小さい目標を達成していくという方法。
      • 達成ごとに「自分はできる」という感情(自己効力感)が高まり、モチベーションが湧く。
      • 小さい目標の難易度が「50%で成功するかも」という設定だと最大限にやる気が出るという研究結果がある(マクレランド氏)
      • 小さい目標の達成時点でユーザーの反応を見る。喜んでもらうとかなり元気が出る😉
    • 目標を達成したときを想像するのもモチベーションにつながる
      • 個人によって異なる。
        • 友人に見せたら大爆笑。ソフトが爆流行!ユーザーがノリノリでプレイ動画を配信。N億円で大企業に売却…等、楽しいイメージなんでも😸
      • 他者への貢献感があるような目標設定は長期的にもかなり強いモチベーションとなる
    • 逆にモチベーションが一気に萎えるようなこともある
      • 個人によって異なる。意識して避けたい。
        • やらされ感を感じると危険信号。
        • やる気無くすようなユーザーの意見を取り入れるぐらいなら、そもそも聞かないという問題
          • ニーズを満たすべき人の意見は取り入れるべきという論もあり、非常にバランスが難しい
          • 月間2億PVの個人開発者の主張は以下

4.個人開発PMで使うと良さそうなツール

  • プロジェクトチャーター
    • 目標を明文化してみて「ニーズが何か、何を満たすのか」を説明する
    • エレベーターピッチでもいい。いろんな言い回しがある。
      • ニーズを埋める対象へ分かりやすく納得できる内容になっていることが大切
      • ニーズは自分のニーズを満たすでも良い。自分と同じニーズを持つ人は必ずいるから(その人に届くかは別な話だが…)
    • 数字目標を設定する。無限に開発規模が広がるのを抑える。
      • 「プロジェクトに終わりが無い」というイメージはマンネリ感・やらされ感が生まれる
  • プロセスフローダイアグラム(PFD)
    • 成果物から逆算して手順を書き出すだけ。簡単。
      • 個人開発者はほとんど無意識にやってるような内容
  • モニタリングシート
    • 計画は必ず予定通りに行かない。予定(見積もり)と実績を観察し、計画を修正する。
      • 予定と実績それと予備時間(バッファ)で管理できるものであれば、TODOリストを拡張したものでも何でも良い。
      • 管理が非常にめんどくさいが、やれば大きすぎるタスクで潰れてしまう等の落とし穴を避けることができる。
      • ツールにまかせて最小限の労力で実施したい
      • 見積もりはやっていくとだんだん正確になる
    • タスクの見積もりは正確にして、予備時間を入れないのがポイント。
  • KPT(KeepProbremTry)による振り返り
    • 個人開発で振り返りは「嬉しかったり」「悲しかったり」して感情に振り回されてやりにくい。しかし、1行でもコメント残しておくと次回以降に生きてくる。
      • 振り返りの資料は1箇所にまとめて散逸しないようにする。
    • 1行以上頑張れるなら「よかったこと、続けたいこと」「問題点・改善したいこと」「やってみたいこと」のKPTを実施。

5.ぐだぐだ色々な技術があってやってられねーよ。コーディングはいつだよ。

  • 全く同意する。

    • パーソナルプロジェクトマネジメント 増補改訂版より

      パーソナルプロジェクトマネジメントを何事にも使うべしというつもりは毛頭ありません。 ただ、プロジェクトをこなすために世界のPM関係者が蓄積してきた知恵があるのですから、それを利用しない手はないでしょう、と申し上げたいのです。

  • 具体的な進め方について

  • 完璧なコーディングより、汚くて素早いリリースが逆に目標達成への近道という論は多い

    • 何処かで見たコトバ

      完全な設計を待つより、顧客に謝るほうが早い

      • 侘び石PM法かな…恐ろしい

6.オススメの本

調査で調べられなかったこと

  • PM系ツールの個人開発での評価など
  • アジャイルが良いよ!みたいな啓蒙
  • 成果を出している個人開発者のリスト、twitterアカウント等

終わりに

「やる気がないと何も始まらない。」全くその通り。
今回の調査で、モチベーションについて論じた文献がかなり多く、研究自体も盛んなことが分かった。
「とにかく完成するまでは必死で取り組め、出来ないのは根性が足らないせいだ。本気で目標を達成したくなかったからだ」 という根性論の世界からドロップアウトした凡人としては、この研究の成果は大いに勇気づけられる。

ものごとを失敗をするために始める人はいない。
個人開発の成功確率を上げるためにはできる範囲で有効な技術はなんでも利用していくべきだろう。