プライベートでの開発を継続する技術 / techniques to keep personal development

553784f5490e80cde79ef80ee70b5ed2?s=47 takamii228
May 27, 2018
290

プライベートでの開発を継続する技術 / techniques to keep personal development

Swift愛好会 vol.31 でのLT資料です。個人開発をうまくやる方法について話しました(うまく行っているとは言っていない)

553784f5490e80cde79ef80ee70b5ed2?s=128

takamii228

May 27, 2018
Tweet

Transcript

  1. プライベートでの開発を継続する技術 Swift愛好会 vol.31 @takamii228

  2. 自己紹介 • @takamii228 • エンタープライズな会社の Agile専門組織に所属 ◦ 認定スクラムマスター ◦ アジャイル開発のプロジェクト支援と研究開発

    • アプリ、アーキテクチャ、CI/CD、AWS等なんでもやる雑食系 ◦ 主にJava(Spring Boot), PHP, Swaggerとか ◦ Swift(iOS)は趣味で触ってる • 趣味 ◦ ランニング、料理、アウトドアなどなど
  3. 私とSwift(iOS) • 2015年12月 叩き売りされたUdemyのiOS入門をやる • 2016年5月 iPhone 6S (SIMフリー) を買う

    • ... • 2017年12月 叩き売りされたUdemyのiOS入門を再びやり、アプリを作る決意をする • 2018年3月 Apple税を納付(Developer Accountを購入) • ~ 現在 位置情報使ったランニングアプリを開発中
  4. プライベートでの開発、 続いてますか?

  5. プライベートでの開発は挫折しやすい • 最初は風呂敷を広げて夢を見る • でも本業が忙しいとなかなか時間が取れない • たとえ時間があっても何から手を付けようか迷い進まない • 間が空いてしまい、腰が重くなる •

    新しいことに目移りして本来やろうとしたことを見失う • そしてやらなくなる
  6. なぜ挫折するのか? 1. 作ろうとしているものが大きすぎる 2. 完成までの道筋や、やるべきことが不透明でよくわからない 3. ずっと一人でやっていて辛い

  7. リーンに、Just In Timeで やってみよう

  8. リーンとJust In Time • リーンスタートアップ ◦ 新規事業や新規サービスの成功率を高めるモデル ◦ MVP(Minimum Viable

    Product)を定義する ◦ MVPをつかってPlan - Build - Measureの仮説検証サイクルを回す ◦ MVPのフィードバックから学習し、失敗のリスクを低減する • Just In Time ◦ 必要なものを、必要なときに、必要な量だけ作る ◦ カンバンを使ったタスク管理 ◦ スクラムの原型
  9. 作りたいもののMVPを細かく定義する • 作りたいものを細かい機能の集合に分割する ◦ 1~2時間くらいでできる大きさ ◦ 実装のイメージが湧く大きさ ◦ 「名詞」+「動詞」のユーザーストーリー形式でかく •

    例:Nike Runを遠隔でみんなで共有しながらできるアプリ ◦ Google Map APIと位置情報を使って画面に現在地を地図表示する ◦ 位置情報を使って移動距離を測れるようにする ◦ タイマー機能をつけて走った距離とタイムを測れるようにする ◦ テキストを音声で流せるようにする ◦ 経過時間や走行距離を音声で流せるようにする ◦ 他の人の走行距離や経過時間を音声で流せるようにする ◦ ...
  10. 周りからフィードバックをもらう • 実際に作って動かしてみないとわからないことも多い ◦ 実現可能性や設計の妥当性 ◦ 位置情報の精度 • フィードバックから学び、やる気を補充する ◦

    「すごい!」「どうやってるの?」「こうやったらいいんじゃない?」 ◦ アプリの方向性の確認になる • 周りからの「あれどうなってる?」が尻叩きになる
  11. カンバンでJust In Timeにチケットを管理する • To DoとWIPの間にReadyを挟む ◦ To Doは作りたい機能リストを入れる •

    タスクが着手可能な状態にまで詳細化し期限を入れて初めて Ready ◦ チケット名は「名詞」 +「動詞」のユーザーストーリー形式がわかりやすい • WIPが空になるまで次のタスクには手を付けない ◦ 何らかの理由でとん挫したものは別のレーンに入れる • チケットを作って満足しない ◦ 毎日カンバンを見る癖をつける
  12. 私のカンバンボード(Trello)

  13. 自分を追い込む • ◦◦駆動で作業を進める ◦ 締め切り駆動 ◦ イベント、勉強会駆動 • もくもく会に参加して、作業時間を確保する ◦

    強制的に作業する枠を用意する ◦ 周りがやってると自分も作業が進む • 「なんでやるんだっけ」を突き詰める ◦ モチベーションの源泉を再確認し、やる気をひねり出す ◦ 他の作業との優先順位や、やらなくてもいいことが整理できる
  14. で、うまくいってるの?

  15. ぶっちゃけ五分五分 • やっぱり本業が忙しかったり、土日に予定があると進まない • 細切れ時間でも進められるように MVPをもっと小さくするといいかも • やる気があるとき、気分が乗ってきたときに一気にやる • やりだすと意外と進んだりする

  16. 今後やってみたいこと • アプリをストアを経由せずに友人に配布したい (deploygate) • Firebase ごりごり使ってみたい • fastlane等でiOSのCI/CDの仕組みを作ってみたい •

    いつかお仕事でiOS案件を・・・
  17. まとめ プライベートの開発で挫折しないために • リーンにやってみよう ◦ 作りたいもののMVPを細かく定義する ◦ 作ったものを周りに見せてフィードバックをもらう • タスクをJust

    In Timeに管理してみよう ◦ To DoとWIPの間にReadyを挟んでタスクを詳細化する ◦ タスクボードを放置しない • 自分を追い込んでみよう ◦ 勉強会やもくもく会をうまく活用する ◦ モチベーションの源泉を再確認する