株式会社iimon / Engineering Div
記事一覧 - iimon TECH BLOG
株式会社iimonで私が執筆した記事一覧になります。
Business social network with 4M professionals
■自己紹介 ご覧いただき、ありがとうございます。 白水 淳也(しらみず じゅんや)と申します。 都内不動産テック企業で「ソフトウェアエンジニア」をしています。
■ 実現したい未来 「IT技術を通じて、社会の中で追い込まれる人や仕組みを減らしたい」
■業務内容 ChromeExtensionの開発に従事し、保守運用から新規開発まで幅広く担当しています。
不動産業界向け新規サービス「物上速いもんシリーズ」の開発に携わりました。賃貸および売買の2サービスにおいて、フロントエンドとバックエンドの両方を担当し、設計から実装、テスト、リリース、保守運用まで一貫して対応しました。 過去のプロジェクトでの反省を踏まえ、設計の整理や開発プロセスの見直しを行いながら、関係者と認識を合わせて進める形で開発を進行しました。 【携わったサービス】 ・賃貸物上速いもん:https://iimon.co.jp/rent-raising(2025年1月〜4月) ・売買物上速いもん:https://iimon.co.jp/buy-raising(2025年5月〜9月) 【担当フェーズ】 要件整理、基本設計、詳細設計、フロントエンド実装、バックエンド実装、テスト 【業務詳細】 ・JavaScript/TypeScriptによるフロントエンド開発 ・Python/Djangoによるバックエンド開発 ・ユースケース図、フローチャート、ER図の作成 ・テストコードの作成およびテスト実施 ・PDMとの週次レビューによる仕様確認 ・リリース対応および保守運用、機能追加 【取り組み①:設計の可視化による認識齟齬の防止】 ◇課題 前案件である売買物確の開発では、PdMが意図する「こうして欲しい」という業務ロジックの考慮が十分にできておらず、開発完了後に「想定していた挙動と異なる」という差し戻しが発生していました。PdMとエンジニアの間で仕様理解にずれが生じ、考慮漏れによる品質低下や、ロジックが担当者の頭の中に残ったままになることで属人化も進み、保守運用や引き継ぎの難しさにつながっていました。 ◇対応 上記の反省を踏まえ、物上速いもんシリーズでは「設計の可視化」を開発の前提として進めました。draw.ioを用いて主要ロジックを細かい粒度まで洗い出し、認識合わせの期間として約5日間をかけてフローチャートを作成しました。あわせて、ユースケース図で利用者視点の業務フローと価値提供の流れを整理し、ER図でデータ構造を明確化しました。これらの図をもとにPdMとの週次レビューを継続し、文章だけではずれやすい認識を、図を使って一つずつ確認しながら進めました。 ◇結果 設計段階でロジックや仕様の意図を共有しやすくなり、開発完了後の差し戻しや仕様認識漏れを抑えた状態で進行できました。また、ロジックの背景やデータのつながりが資料として残るようになったことで、保守運用フェーズでの引き継ぎも進めやすくなり、属人化を防ぐ形につながりました。 【取り組み②:テストファースト開発による品質担保】 ◇課題 従来は仕様の確認が不十分なまま実装に入ることで、後から考慮漏れが見つかり、修正対応が発生することがありました。特に業務ロジックが複雑な機能では、実装時点では問題が見えにくく、リリース直前やリリース後に不具合として表面化する懸念がありました。新規サービスでは、限られた期間で開発を進めながらも、手戻りを抑えた状態で品質を保つ進め方が必要でした。 ◇対応 物上速いもんシリーズでは、仕様を実装前に整理し、テストを先に用意するテストファースト開発を徹底しました。期待される挙動をテストコードとして明文化し、その内容に沿って実装を進めることで、仕様をコードレベルで確認できる状態を作りました。単にテストを追加するのではなく、設計時に整理したユースケース図やフローチャートの内容と照らし合わせながら進めることで、業務要件と実装内容のずれが生じにくい形を意識しました。テストカバレッジも80%以上を目安として維持しました。 ◇結果 実装前に期待値を整理した状態で開発を進められるようになり、後工程での修正や確認の負担を抑えやすくなりました。また、仕様がテストとして残ることで、保守や機能追加の際にも確認しやすい状態となりました。結果として、2プロジェクト連続で予定通りにリリースし、リリース後も致命的なバグが発生しない形で運用につなげることができました。 【環境】 ◇OS Mac ◇言語 JavaScript TypeScript Python ◇フレームワーク Django ◇DB MySQL ◇インフラ AWS ◇その他 Git GitHub Vite ESLint Prettier Jest 【チーム規模】 1名 【役割】 メンバー
エンジニアリング全般に関わる業務改善プロジェクトに携わりました。 過去の炎上プロジェクトの振り返りをもとに、開発における課題を整理し、特に見積もりやスケジュール認識のずれに着目して改善施策を検討しました。 PM、エンジニア、ビジネスサイドの間で共通認識を持てるよう、見積もり方法の整理とテンプレート化を行い、社内への展開および運用定着に取り組みました。 【担当フェーズ】 課題分析、業務整理、設計、標準化推進、社内展開 【業務詳細】 ・炎上プロジェクトの振り返りおよび課題の整理 ・見積もり項目およびプロセスの整理 ・見積もりテンプレートの設計および作成 ・社内勉強会の実施および運用方法の説明 ・各職種間での認識合わせに関する調整 【取り組み①:見積もりテンプレートの作成と標準化】 ◇課題 炎上プロジェクトの振り返りを行う中で、PM、エンジニア、ビジネスサイド間でリリース日に対する認識がずれていることが、進行遅延の要因となっていました。見積もりの前提や粒度が人によって異なり、タスクの抜け漏れやバッファの考え方にも差がある状態で進行していたため、結果としてスケジュールのずれが発生していました。 ◇対応 見積もりの進め方を整理し、複数人での見積もりを前提としたテンプレートを作成しました。タスクの細分化や依存関係の整理、バッファの考え方を明文化し、誰が見ても同じ前提で見積もりができる形に整えました。また、作成したテンプレートについて社内勉強会を実施し、具体的な使い方や背景を説明しながら共有しました。 ◇結果 見積もり内容を共通のフォーマットで整理できるようになり、関係者間での認識のずれを減らした状態でプロジェクトを進めやすくなりました。社内で標準的に利用される形となり、その後のプロジェクトにおいてもスケジュールの認識を揃えた状態で進行できるようになりました。 【取り組み②:社内展開と運用定着の支援】 ◇課題 テンプレートを作成するだけでは運用が定着せず、従来のやり方に戻ってしまう可能性がありました。また、利用者によって理解度に差があると、意図した形で活用されない懸念がありました。 ◇対応 社内勉強会を通じてテンプレートの背景や使い方を説明し、実際の業務にどのように組み込むかを具体的に共有しました。質疑応答の場を設けることで疑問点を解消し、利用しやすい形を整えました。また、自身のプロジェクトでもテンプレートを活用し、運用イメージを 示しました。 ◇結果 テンプレートの理解が進み、各プロジェクトでの活用が広がりました。PM、エンジニア、ビジネスサイド間でスケジュールに対する認識を揃えた状態で進められるようになり、プロジェクト進行の安定につながりました。
新規サービス「売買物確速いもん」の開発プロジェクトにおいて、前任者退職により炎上状態となっていた案件の立て直しに携わりました。実装状況とスケジュールに大きな乖離がある中でプロジェクトを引き継ぎ、現状の整理からスコープの見直し、体制の再構築、技術的な改善までを段階的に対応しました。フロントエンド開発に加え、PM的な立場で関係者との調整も行いながら、リリースに向けた進行管理を担当しました。 【携わったサービス】 ・売買物確速いもん:https://iimon.co.jp/buy-conffirm 【担当フェーズ】 課題分析、要件整理、再見積もり、フロントエンド実装、バックエンド実装、テスト 【業務詳細】 ・実装状況の整理およびタスクの洗い出し ・スプレッドシートによる進捗と工数の可視化 ・ステークホルダー(CTO、PM、PDM)との調整 ・MVPの再定義およびスコープ調整 ・前任者実装のリファクタリングおよびコード整理 ・JavaScript/TypeScriptによる機能開発および修正 ・チーム体制の再構築および役割分担の整理 【取り組み①:現状可視化とMVP再定義によるプロジェクト立て直し】 ◇課題 前任者の退職により、仕様の約70%が未達成の状態でプロジェクトを引き継ぐことになりました。また、見積もりが不十分なまま進行していたため、実装状況とリリース予定に大きな乖離があり、全体像が把握できない状態でした。加えて、セミナー開催が決まっており、期限内でのリリースが求められる状況でした。 ◇対応 まず、実装済み・未実装・修正必要のタスクをすべて洗い出し、スプレッドシート上で整理しました。そのうえで各タスクの工数を算出し、進捗と残作業を可視化しました。可視化した内容をもとにステークホルダーへ説明を行い、現状の共有と合意形成を進めました。また、全機能の実装が難しい状況を踏まえ、MVPとして必要な機能に絞り込み、優先順位を整理したうえでスコープの再定義を行いました。 ◇結果 プロジェクトの全体像と優先度が明確になり、関係者間で同じ認識を持った状態で進行できるようになりました。現実的なスケジュールに基づいて開発を進めることができ、再設定したリリース日に間に合わせる形で本番化まで対応しました。 【取り組み②:体制再構築と役割分担の明確化】 ◇課題 当初は1名体制で進められており、作業の集中や優先順位の混在により進行が滞りやすい状況でした。また、誰がどの領域を担当するのかが明確でなく、対応の抜けや重複が発生する可能性がありました。 ◇対応 開発体制を3名に拡大し、機能追加、バグ修正、技術検証といった役割ごとに担当を分けました。各メンバーの担当範囲を明確にしたうえで、進捗状況を共有しながら調整を行いました。また、ステークホルダーともこまめに連携し、進行状況を共有しながら優先順位の見直しを行いました。 ◇結果 各メンバーが担当領域に集中できる状態となり、作業の進行が安定しました。タスクの重複や抜け漏れを防ぎながら開発を進めることができ、全体としてスムーズに進行できる体制を整えることができました。 【取り組み③:既存コードの整理と技術的課題への対応】 ◇課題 前任者の実装では、責務分離が十分でなく、1つの関数やクラスに処理が集中している状態でした。そのため、コードの可読性が低く、修正時の影響範囲を把握することが難しい状況でした。また、CORS回避のためにブラウザタブを切り替える実装となっており、画面のちらつきが発生するなど、ユーザー体験にも影響が出ていました。 ◇対応 既存コードについて、責務ごとに処理を分割することを意識しながらリファクタリングを行いました。処理単位で構造を整理することで、コードの見通しを改善しました。また、技術的な課題については検証を行い、実装方法の見直しを進めました。影響範囲を確認しながら段階的に修正を行うことで、既存機能への影響を抑えつつ改善を進めました。 ◇結果 コードの構造が整理され、修正や機能追加の際に影響範囲を把握しやすい状態となりまし た。開発中の不具合対応や追加開発を進めやすくなり、全体の開発効率の改善につながりました。また、最終的にはリリースまで対応し、セミナー実施にも間に合わせることができました。 【環境】 ◇OS Mac ◇言語 JavaScript TypeScript Python ◇フレームワーク Django ◇DB MySQL ◇インフラ AWS ◇その他 Git GitHub Vite ESLint Prettier Jest 【チーム規模】 3名 【役割】 メンバー 開発 兼 調整役
Ruby
Recommended by 矢野 康平 and 2 more
Ruby on Rails
Recommended by Eiji Yukihiro, toshiyuki iwaki
HTML + CSS
Recommended by Eiji Yukihiro, toshiyuki iwaki
Java Script
Recommended by Eiji Yukihiro, toshiyuki iwaki
TypeScript
Receive Scouts from companies
株式会社iimon / Engineering Div