負債を減らした新人の話

 負債を減らした新人の話

Dive into mixi night! #3 (2018.08.22) で発表した資料です.

Fe7df352e467912afd5039212242cbb4?s=128

Hagihara Ryosuke

August 22, 2018
Tweet

Transcript

  1. 負債を減らした新人の話 minimo事業部 プロダクト開発G 開発T 萩原 涼介 Dive into mixi night!

    #3 2018.08.22
  2. minimo 使ってる人

  3. ありがとうございます!

  4. 自己紹介

  5. 萩原 涼介 - Hagihara Ryosuke Name 萩原 涼介 - Hagihara

    Ryosuke HN らりょす (raryosu) 所属 minimo事業部 業務 サーバサイド・Webフロントエンド 出身校 津山工業高等専門学校 出身 広島県福山市 生年月日 1997年10月7日(20歳)
  6. None
  7. None
  8. None
  9. None
  10. このプレゼンの内容

  11. はなすこと・はなさないこと はなすこと はなさないこと ・ ミクシィの新卒エンジニアのはたらきかた ・ むずかしい技術の話 ・ 非公開の情報

  12. minimoのプロダクト

  13. minimo の展開 スマホアプリ iOS: Obj-C, Swift Android: Java, Kotlin SALON

    TOOL React.js Webアプリ Perl (Mojolicious) 掲載者向けオウンドメディア 裏方担当 WordPress
  14. minimo の展開 スマホアプリ iOS: Obj-C, Swift Android: Java, Kotlin SALON

    TOOL React.js Webアプリ Perl (Mojolicious) 掲載者向けオウンドメディア 僕がメインで担当 裏方担当 WordPress
  15. minimoの掲載について

  16. minimoへの掲載 掲載者 掲載を作成 お客さん 掲載を閲覧 minimodel.jp minimoアプリ

  17. 掲載の公開設定 掲載者 掲載を作成 お客さん 掲載を閲覧 minimodel.jp minimoアプリ is_enable is_open

  18. どうしてこうなっている?

  19. Web検索に引っかかると
 困る掲載者さんもいる お店にナイショでminimoをやってる人もいる

  20. 何が問題だったか

  21. is_open 問題 CSから下記のような問い合わせが多くなっていると相談を受けた ⇒ Webの公開設定を分けることによる不都合のほうが多くなってしまった

  22. 対応の方針 minimodel.jpでの公開設定も アプリでの掲載設定 と一致させる

  23. 既存掲載の対応方法案 1. DB上の is_enable=0 & is_open=1 のものを is_open=0 に書き換える 2.

    Controller で is_enable=0 のものを呼び出されたときに404を返す 3. is_open を参照せずに is_enable フラグだけを使うようにする
  24. 対応方法案 1. DB上の is_enable=0 & is_open=1 のものを is_open=0 に書き換える 2.

    Controller で is_enable=0 のものを呼び出されたときに404を返す 3. is_open を参照せずに is_enable フラグだけを使うようにする
  25. どうやって進めていくか

  26. 当初の考え 実装 リリース

  27. 実際 仕様変更による影響について関係部署と打ち合わせ リリース 実装方針のすり合わせ(アプリ・Web・サロンツール・サーバサイド) 実装(苦難の連続) リリースタイミングの調整

  28. 関係部署との打ち合わせ 仕様を追加・削除・変更する ⇒ CSや営業担当にも影響が及ぶことも…! ・ 本当にその仕様をなくしていいか
 ・ なくなることで困るユーザさんはいない?
 ・ 想定されるお問い合わせの内容共有・対応相談


    ・ 掲載者への案内の方法 今回の場合
  29. プロダクト開発担当チームとの打ち合わせ ・ ディレクター ・ エンジニアのトップ ・ アプリエンジニア ・ サーバサイドエンジニア ・

    サロンツールを作っているエンジニア ・ minimodel.jp や 管理ツール・掲載代行ツールを作っているエンジニア(ぼく)
  30. プロダクト開発担当チームとの打ち合わせ ・ is_open を廃止して, is_enable を参照するようにする ・ is_open の書き換えをできないようにする
 ・

    Web 公開設定を変更できるバージョンのアプリではエラーを返す ・ is_open の値を必要とする場面では is_enable を is_open に擬態して返す
 ・ これは暫定処置 決めたこと
  31. プロダクト開発担当チームとの打ち合わせ ・ is_open を廃止して, is_enable を参照するようにする ・ is_open の書き換えをできないようにする
 ・

    Web 公開設定を変更できるバージョンのアプリではエラーを返す ・ is_open の値を必要とする場面では is_enable を is_open に擬態して返す
 ・ これは暫定処置 決めたこと
  32. いざ実装!

  33. しかし…

  34. 一筋縄ではいかない 掲載のプレビューを閲覧できる機能で is_open を利用していた サロンツール Android スナップフォトをシェアするかどうかの判断に is_open を利用していた iOS/Android

    is_enable = 0 から 1 に変えたときも is_open を変更しようとしてエラーが返る
  35. 仕様調整 掲載のプレビューを閲覧できる機能で is_open を利用していた サロンツール うまいこと修正してもらった

  36. 仕様調整 サロンツール うまいこと修正してもらった Android スナップフォトをシェアするかどうかの判断に is_open を利用していた ( is_enable を参照するようにしてもらった)

  37. 仕様調整 サロンツール うまいこと仕様変更した Android is_open を 0 → 1 に変更するときにはうまく行ったように見せかけてなにもしない

    iOS/Android 掲載を非公開→公開 に変えたときも is_open を変更しようとしてエラーが返る
  38. 実装完了

  39. 流れの確認MTG @ 7/11

  40. リリーススケジュールについて相談 7/17, 18 QAタスクの作成・レビュー・リリース 7/19 リリース 営業・CS担当のチームに日程の共有・相談

  41. リリース当日 @ 7/19

  42. None
  43. None
  44. None
  45. 翌朝 @ 7/20

  46. None
  47. なんかエラー出た
 ( is_open を受け取らないように変更したメソッドに is_open を渡そうとしていた)

  48. まとめ

  49. 仕様をなくす施策を進めるのには勇気がいる 新しく付け足すのは比較的簡単でも, すでにあるものをなくしていくのはけっこうたいへん

  50. 仕様をなくす施策を進めるのには勇気がいる だけど,それによって仕様が把握しやすくなった 開発しやすくなった

  51. ぼくはまんぞくです

  52. 新卒に任せられる仕事の幅が広い

  53. 業界を変えることができる ワクワクするプロダクトに関われる

  54. None