Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁

3,410 views

Published on

個人開発サービス展覧会発表資料
#Service_Hunt_01

Published in: Engineering
  • Login to see the comments

ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁

  1. 1. ほぼ初心者からのマッチング サービス開発のリアル  新米ちゃん♬
  2. 2. ・福岡生まれの福岡育ち ・IT企業で企画・ディレクター  →嫁と一緒に同時多発退社  →ハウススタジオ運営(今も)  →グロースハッカーとして活動  →プログラミングを学んでサービス開発中(今) ・スキル:PHP/JS/Laravel/Vue.js ・学習:DDD/TDD/OS/C言語...etc ・興味:アプリ開発 ・来年1月から転職活動予定 香月 宜浩(かつき よりひろ) Twitter:ピーターパン@エンジニア(@hukuzatsu)
  3. 3. 開発前の僕 ・スキル:HTML/CSS/PHP/JS少々 ・開発経験:自分のハウススタジオのHP作ったくらい
  4. 4. 好きなアイドルで繋がろう アイドルファン限定友達作りサービス
  5. 5. DEMO
  6. 6. きっかけ
  7. 7. 嫁よめ
  8. 8. 嫁は欅坂46のファン ファン同士の繋がりが薄い もっとファン友達を作って いろんなイベントとか楽しみたい よしゃ、いっちょ作りますか
  9. 9. 嫁の欅ファン仲間を増やす 目的
  10. 10. 嫁駆動開発
  11. 11. ・企画 ・事前登録サイト作成 ・設計 ・開発&デザイン制作 ・テスト ・リリース 開発の流れ
  12. 12. ・企画 ・事前登録サイト作成 ・設計 ・開発&デザイン制作 ・テスト ・リリース  脚色せずに、リアルを淡々を話します 今日のお話
  13. 13. 企画
  14. 14. 企画で大事にしたこと  課題の設定  ( 収益は考え無かった )
  15. 15. 嫁に質問しまくる  何が問題なのか  何故そう感じるのか  そう感じるのはどんなシチュエーションか  代替品は何を使っているのか  代替品の不便なところは何か
  16. 16. 課題の設定(初期) 「オタク同士の繋がりがあまりないぼっちなアイドルファン」(ターゲット)が、 「アイドルの握手会やライブなどのイベントの最中」(シチュエーション)に、 「長時間一人でいるのが寂しい」(課題・問題・困り事)という課題を 「日常から絡めるファン友達を増やす」(解決の方向性)ことで解決する
  17. 17. 課題の設定(初期) 普段使っている「TwitterやFacebookコミュニティ」(代替品)だと、 「自分に合った人(同世代、同性、同じようなファン活動をしているetc)を見つけづらく、 見つけたとしても相手も繋がることを望んでいるか分からないので絡みづらい」(代替 品の不満)という不満がある
  18. 18. サービスのポイント 自分に合った人が見つかる / 誘いやすい ↓ アイドルファン特化のプロフ / 誘いやすい仕組み・UI
  19. 19. アイドルファンに特化したプロフィール トレーディングカード ポスタートレード 振りコピ アイテム制作 連番
  20. 20. 誘いやすい仕組み・UI  yentaをパク、、参考にする
  21. 21. 既にやってる 人を狙う
  22. 22. 結局開発で 手一杯になる
  23. 23. 正直、完全にはしっくりきてなかった けど先に進んじゃった 
  24. 24. 設計
  25. 25. 作った設計書 画面フロー ER図 テーブル定義 ルート定義  
  26. 26. 画面フロー
  27. 27. ER図
  28. 28. テーブル定義
  29. 29. ルート定義
  30. 30. 最初は画面フローだけで開発やろうとした DB連携が出てきた時点でテーブル設計考えながら 開発するのがしんどくなった →ER図・テーブル定義作成 開発を進める中で必要なルート(URL)が増えてき て、整理出来なくなってきた →ルート定義作成
  31. 31. 画面フローも出来た! 設計書もある程度出来た! 開発出来る! けどデザインどうする??
  32. 32. 嫁よめ
  33. 33. 嫁 = デザイナーの卵
  34. 34. PhotoShopで 作ってくれた
  35. 35. if($嫁 === null || $嫁 !== デザイナー){ $design = bootstrap * 色の工夫 } ベース、メイン、アクセントを先にざっくり決 めておく
  36. 36. 開発
  37. 37. 開発言語・環境 ・サーバーサイド:PHP / Laravel ・フロントエンド:JS / Vue.js ・開発環境:Vagrant (Homestead) ・本番環境:Heroku 基本的には学習コストと新しさを重視して選定
  38. 38. 開発の基本的な進め方 WBSを作って一つずつ機能を作っていく
  39. 39. 開発の基本的な進め方  WBSを作って一つずつ機能を作っていく ↓  徐々にスケジュールが遅れだす
  40. 40. 開発の基本的な進め方  WBSを作って一つずつ機能を作っていく ↓  徐々にスケジュールが遅れだす ↓ WBS管理のモチベーションが死に始める
  41. 41. 開発の基本的な進め方  WBSを作って一つずつ機能を作っていく ↓  徐々にスケジュールが遅れだす ↓ WBS管理のモチベーションが死に始める ↓ WBSのケイガイカ ↓  でも洗い出したタスクは役に立った
  42. 42. 開発の基本的な進め方  日々のタスクのみ管理する形に変更       夜:明日のタスク整理     次の日:タスク消化     夜:また明日のタスク整理 これの繰り返し
  43. 43. 開発の基本的な進め方 難しい実装とかあると普通に遅れるw でもそれはWBS作っても同じだった WBSの管理が無い分マシ ↓ 正確な見積もり出来るまでは こっちの方がいいかも
  44. 44. 日々のタスクの管理は PC/スマホ両用 ↓ スキマ時間の有効活用 機能性 < 性格に合うか
  45. 45. 事件勃発
  46. 46. 嫁のファン仲間が増え始める
  47. 47. 嫁の欅ファン仲間を増やす 当初の目的
  48. 48. Doする??
  49. 49. 選択肢 1、開発をやめる 2、開発を続ける
  50. 50. 回答 作りきりたかった→開発続行 目的を変更 嫁の欅ファン仲間を”さらに”増やす プロダクトを作りきる 自身のスキルアップ
  51. 51. 嫁駆動開発
  52. 52. 嫁 + 成長 駆動開発 モチベーションの 源泉を追加
  53. 53. 押し寄せる 開発経験の無い機能群
  54. 54. リアルタイム チャット メール通知 マッチング ロジック プロフィール登録の非 同期化 毎日決まった時間に レコメンド
  55. 55. リアルタイム チャット メール通知 マッチング ロジック プロフィール登録の非 同期化 毎日決まった時間に レコメンド Laracast (英語の動画チュートリアル ) Laravelリファレンス Qiita Vue.jsチュートリアル axiosリファレンス Laravelリファレンス
  56. 56. 作りたい機能はだいたい誰かが作ってる 少なくとも似た機能は作ってる
  57. 57. リアルタイム チャット メール通知 マッチング ロジック プロフィール登録の非 同期化 毎日決まった時間に レコメンド Laracast (英語の動画チュートリアル ) Laravelリファレンス Qiita Vue.jsチュートリアル axiosリファレンス Laravelリファレンス 検索しても どこにも載って無い><
  58. 58. 自分でロジック考えた
  59. 59. 僕的なロジックの考え方 ・処理の起点を決める(リクエストとか) ・処理の流れを箇条書きで書く ・処理の流れを図にする ・処理の流れが出来たら細かいところを検討する  (受けわたすデータやテーブル構成等) ・必要なら処理の流れに戻って検討    ※いきなりコードは書かない
  60. 60. (例1)マッチングのロジック
  61. 61. 押し寄せる 訳の分からんエラー群
  62. 62. 対処法 ・エラー文言をちゃんと読む   7割型これでなんとなる ・エラー文言で検索する   9割型これでなんとかなる ・teratailやTwitter等で質問する   9.5割型これでなんとかなる ・諦めて別の実装を考える   10割型これでなんとかなる
  63. 63. 開発を進める中で やってみたこと
  64. 64. テストコードの導入
  65. 65. PHPUnitを使ってテストコード書いてみた 仕様を変える時の安心感が半端ない 変更が起きそうな箇所、実装に自身が無い箇 所は余力があればテストコード書いた方が 後々開発が捗る
  66. 66. リファクタリング の実施
  67. 67. 変更しづらいな、 と感じたタイミングでリファクタリング ↓ リファクタリング前にテストコード ↓ リファクタリングの安心感半端ない
  68. 68. ユーザーテスト
  69. 69. 最後の受け入れテスト的な
  70. 70. テストケースを漏れなく出すの面倒 というか不可能 けど思いつくままにテストしてると不安 自分が安心するためのテストケース
  71. 71. リリース
  72. 72. 本日リリース!
  73. 73. したかった....
  74. 74. Herokuで独自ドメイン設定 簡単なはずなのに ↓ ハマる..orz
  75. 75. ピーターパン@エンジニア
  76. 76. 目的に立ち返ってみる
  77. 77. 目的は達成出来たか 嫁のファン仲間をさらに増やす →リリース前なのでわからない。これから。 けど、サービスのリリースを待たずに嫁の ファン仲間は増えた。
  78. 78. 目的は達成出来たか プロダクトを作りきる →「作りきった」という自信になった
  79. 79. 目的は達成出来たか 自身のスキルアップ 開発前:HTML/CSS/PHP/JS 現在: HTML/CSS/PHP/JS/Laravel/Vue.js/SCSS/Web pack/axios/Vagrant/Heroku/Git/Github/TDD/デ ザインパターン/DDD/UML
  80. 80. 個人開発をしてみて
  81. 81. ・個人開発は自分のモチベーションが頼り ・ぶっちゃけ企画はすっ飛ばしてもいい ・情報はだいたいネットにある ・機能や処理の流れを分解、図示すると実装方法が見える ・「ちょっとコンビニ行って来るわぁ」くらいのノリで「ちょっと新 サービス開発するわぁ」って感じでもいい
  82. 82. ご静聴 ありがとうございました

×