Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜

mai miya
April 23, 2024

 一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜

4/23(火)Money Forward Tech LT大会 vol.1
https://moneyforward.connpass.com/event/296578/
「一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜」

mai miya

April 23, 2024
Tweet

More Decks by mai miya

Other Decks in Technology

Transcript

  1. ©Fusic Co., Ltd. 2 宮崎 真⾐ Miyazaki Mai(27) 名前で呼んでください! @maimyyym

    ◉ I am - IDDM(Insulin Dependent Diabetes Mellitus) 3歳発症 〜Now - 元百貨店スタッフ(Beauty Counselor) - 管理栄養⼠(養成校卒業・資格保持のみ) - 2023年10⽉〜Fusicにjoin🎉 ◉ Skill - PHP / AWS / TypeScript ◉ Comment - 家計事情:来⽉はエンゲル係数を下げたい ⾃⼰紹介 はじめに 技術開発部⾨ エンジニア 株式会社Fusic
  2. ©Fusic Co., Ltd. 6 ⼀⽣に⼀度の「初めての実務案件」 前提、私の初案件のあらまし ▼ 初案件の概要 - Laravelを⽤いたWebシステム開発

    - Fusicの特徴は併⾛型のサービス開発 - 要件定義から保守運⽤まで全てFusicで担当することが多い - 本案件も、もれなく! - 開発期間は3ヶ⽉半、私は2ヶ⽉⽬からjoinしました
  3. ©Fusic Co., Ltd. 10 やっていたこと、ぶつかった壁 前提、私の初案件のあらまし ▼ 何をやっていたの? - 最初の1週間は簡単なCRUD機能を実装

    - 1⽇1PR、でサクサク進んだ。・・・簡単かも? - その後は最後まで、とある機能にかかりっきりに
  4. ©Fusic Co., Ltd. 11 やっていたこと、ぶつかった壁 前提、私の初案件のあらまし ▼ 何をやっていたの? - 最初の1週間は簡単なCRUD機能を実装

    - 1⽇1PR、でサクサク進んだ。・・・簡単かも? - その後は最後まで、とある機能にかかりっきりに - どんな機能? - 「誰がやっても時間がかかる」 - 「システムのコア機能で特に難しいところ」
  5. ©Fusic Co., Ltd. 12 やっていたこと、ぶつかった壁 前提、私の初案件のあらまし ▼ 何をやっていたの? - 最初の1週間は簡単なCRUD機能を実装

    - 1⽇1PR、でサクサク進んだ。・・・簡単かも? - その後は最後まで、とある機能にかかりっきりに - どんな機能? - 「誰がやっても時間がかかる」 - 「システムのコア機能で特に難しいところ」 本来解決したいことを⾒失ったPR ロジックが複雑になり、読みづらいコード
  6. ©Fusic Co., Ltd. 13 壁は乗り越えた 前提、私の初案件のあらまし ▼ たくさん助けてもらった、学ばせてもらった - リファクタの嵐で嬉しかった

    - PRを出したらマージ前にコードを改善 - 同じ⽬線でディスカッションできた - コードの設計・構造・⽅針の認識合わせで 決して置いていかれることがなかった
  7. ©Fusic Co., Ltd. 14 壁は乗り越えた 前提、私の初案件のあらまし ▼ たくさん助けてもらった、学ばせてもらった - リファクタの嵐で嬉しかった

    - PRを出したらマージ前にコードを改善 - 同じ⽬線でディスカッションできた - コードの設計・構造・⽅針の認識合わせで 決して置いていかれることがなかった 何より感じたのは、「システム開発=コミュニケーション」
  8. ©Fusic Co., Ltd. 18 とにかく認知負荷を下げる 「開発者同⼠のコミュニケーション」のためのシステム開発 - 読めば分かる命名、適度な改⾏ - メソッドを切り出す

    - 単⼀責任の原則はコードの⾒通しも向上させる - 細かいことでも書き⽅を統⼀ - 重箱の隅をつくことは⼤事 - プロジェクト全体の⽅針に従う - メンバーのことを考える=認知負荷減少=バグ対策
  9. ©Fusic Co., Ltd. 19 他のメンバーが理解できるコードを書く 「開発者同⼠のコミュニケーション」のためのシステム開発 - そのコード、明⽇記憶を失っても理解できる? - 開発メンバーの⼊れ替わりはある。他の開発者や新しくjoinする⼈、

    ひいては明⽇の⾃分が理解できるか⾃問⾃答しよう - 不必要なコメントは書かないが、必要なコメントは書き残す - それが何をしているか?は読めば分かるコードを書く - そのメソッドや書き⽅が必要となった背景・理由はコメントを残す - つまり「分かりやすい」=認知負荷減少
  10. ©Fusic Co., Ltd. 23 開発者同⼠だけの仕様理解に陥らないこと 「使う⼈へのコミュニケーション」のためのシステム開発 - 開発者は仕様を理解しすぎている - 何度も⾏う動作確認により開発者にとってはその仕様が当たり前

    - こうすればこう動く、をユーザーは本当に理解しているか - 必要に応じてUIの変更・追加を検討しよう - 知識の呪い(Curce of Knowredge)に陥るな! - 開発メンバーの誰も気づけない可能性は0ではない - そのためのE2Eテストでもあると感じた
  11. ©Fusic Co., Ltd. 24 コードを書かないための仕様理解・運⽤フローの検討 「使う⼈へのコミュニケーション」のためのシステム開発 - ロジックが難しくなったら、仕様を振り返る - その機能=PR(≠コード)によって解決したいことは何?

    - 難しい条件分岐はいらないかも - 運⽤フローを変える選択肢を考える - 難しい実装より運⽤フローの改善 - ユーザーを理解する・歩み寄ることがコードの減少 =実装スピードの向上につながる
  12. ©Fusic Co., Ltd. 32 まとめ 新⽶エンジニアが初案件で学んだ「システム開発=コミュニケーション」 エンジニアとして初めての案件、たくさんのリファクタとディスカッションを通してシステム開発を学んだ Point 01 ⾃分含め開発メンバーが理解できるコードを書こう。⽅針に従おう。認知負荷を下げることはバグ減少への道

    Point 02 ユーザーを理解し、歩み寄ることでコード量を減らそう。そして知識の呪いに陥らないこと! Point 03 ⼈のための実装を実現するために技術⼒は必要不可⽋!⾜りない技術⼒は会話で補う。相互作⽤で⼒を伸ばそう Point 04
  13. ©Fusic Co., Ltd. 33 Thank You We are Hiring! https://recruit.fusic.co.jp/

    ご清聴いただきありがとうございました