【プロジェクト概要】
データサイエンティストが事前に PoC をして精度の良かったアルゴリズムモデルを使って、顧客でも試行錯誤できる学習環境の構築。
【担当フェーズ】
提案~システム構築まで。
【業務内容】
・プロジェクトのまとめ
・全体アーキテクチャを設計
・パイプラインの構築
・データサイエンティストを開発に巻き込み、インタフェース設計の折衝
【実績・取り組み等】
・顧客の要望もあり、アジャイル開発風で進めた(スパイラル開発)。経験者がいないため進め方を先導した。
・データサイエンティスとエンジニアの連携が、この会社では常に課題となっていた。問題点を整理して、データサイエンティストと役割分担を折衝し、完走できた。
・Vertex AI Pipelines をこの会社で初めて案件で実用利用した。
・設計書ドキュメント作成に工数をかけず、代わりにマニュアルをしっかり作りこむことで、内外の関係者への情報統一ができた。
・会社としてのレビュー制度や品質制度がなかったため、自発的に社内お披露目会を設け、社内関係者と意思統一を図ったうえで、逐次顧客に提供をした。
・要件定義を細かく決めすぎない代わりに、逐次顧客からあがる要望に対応した。
・Google サポートを積極的に利用して、解決を図った。
【課題・問題】
・メンバーがシステム開発未経験
→情報の透明性(全体図)、役割の明確化、タスクの明確化、密な会話(朝会)を計画 とにかく 1 回目の MVP 作成に注力
→MVP 提出後は、開発サイクルのリズムが出来て安定した
・新人が途中で離脱
→社会人意識が欠けていたため、内省を促した(問いと回答の繰り返し)
→結局、案件中には改善しなかったが、上司には感謝された 新人教育にはなっていたため
・想定外にマニュアル作りの工数が膨らんだ 顧客がそのまま現場に渡せるレベルのマニュアルを期待し出したため しかし本来はそういうものじゃなく対面メンバー向けという話だった
→幸いにも開発後半は余裕があったので、可能な限り要望に応えた。
・9 月に長期休暇(夏季休暇)取得予定だった
→全メンバの休暇予定+予想を加味してスケジュールを立てた。
→休暇中特に何事もなかった。
→随時リリースしていたため、顧客も進行度に心配を持っていなかったと推測。
・開発に集中するため週定例をやらず、代わりに Backlog による週報を出した。
→そもそも顧客にはその時点で動くものをリリースしているため、問題なく進められた。週定例はないが必要に応じた打ち合わせのみ行った。
・当時の Vertex AI Pipelines では、GPU を起動パラメータ指定で変えられないことが途中で発覚した。
→Google サポートに問い合わせるも「出来ない」という回答
→代案として全 GPU 分の分岐を作って対応 結果、フローが見づらくなってしまった
→顧客には承諾いただき、将来課題となった(Google 対応待ち)
【貢献】
・社内案件で初の Vertex AI Pipelines 採用実績(のはず
・データサイエンティストと協業しての開発をスムーズに完遂した(いつもトラブル要因だった) 進め方の事例を築けた
・最終的にできたプロダクト(マニュアル含む)は顧客に好評で、顧客からの信用度を上げられたと推測。
【得た知見】
・完全なアジャイル開発ではないが、スパイラル開発でも様々なリスク回避が行えた。
・MVP で作業 1 巡することで、その後がスムーズに進む(1 巡目が大変だが、問題があっても対応する時間がいっぱいある)
・何度も全体結合するため、問題がプロジェクト期間の前半までに洗い出しやすい。その為顧客との交渉時間が持てる。
・大事な作業から着手できるので、大事な作業を落としにくい。優先度が低い作業(デプロイの完全自動化等)が出来なかったりしたが、言い換えれば、そのおかげで大事な作業は完遂できた。
・要件定義書のほかは、マニュアルしかドキュメント作成をしていない(プロダクト提供物として)
→マニュアルは外部仕様書、外部テスト仕様書になることを実証できた(トムデマルコ著「デッドライン」の内容を実践)
【開発環境】
GCP
Vertex AI Pipelines
Docker
Python
Cloud Build
ほか
【役割/担当/規模】
【役割】プロジ ェク トマネージャー
【プロジェクト規模】4 人