mongolyyのブログ

開発(Javascript, Typescript, React, Next.js)や開発手法(スクラム, アジャイル)、勉強したことについて色々書ければと。

PoCのチーム開発のススメ

はじめに

どうも、スクラムマスターのmongolyyと申します。 私のチームでは開発チームでは業務システムを作っています。
その営みの初期に、「PoCを作って、ステークホルダーと作りたいものの方向性の認識合わせをする。」というのをしているのですが、これが、開発者にとっても大きなメリットが有るなーと感じたので共有したいと思います。

メリット1:攻めた技術構成で挑める。技術検証ができる

私のチームではNext.jsを採用しているのですが、tailwindを試しました。
普通のCSSと書き味が異なるので初期は困惑しましたが、次第に慣れ、チームで議論した結果として採用することになりました。
この結果になったのも、開発チームメンバー全員がtailwindを使用して、手触り感を確かめたのが大きかったかなと思っています。

メリット2:コード構成やコーディングルールが決めやすくなる

PoCは
速度 > 機能 >>>>>> 品質
なので、局所最適で作られます(要は動けばOKという考え方で実装される)し、レビュー時に妥協することもあると思っています。
したがって、最終的に完成したプロダクトのコードを見てみると、責務分解の法則性がなく、業務ロジックがいろいろな場所に実装されているコードが散見される状態になることがあると思っています。

PoC開発終盤は、「メンテナンスツライ、、」という状態に陥るため、自分たちの書き方に問題が有ることが把握できます。
PoC開発後にふりかえりを行うと、「〇〇の書き方についてルール決めましょう!」と自然となります。
具体的にどのようなルールにするかという議論も、既存のコードを見ながら話し合えるので空中戦にならずにすみます。

メリット3:本番開発について、車輪の再開発になるので、より良い書き方で作っていける

メリット2とも関連しますが、単純に言語、フレームワークドメインの知識、そのチームでの開発の作法になれるので、本番開発時は効率的に開発を進めることができます。 PoCでは取りあえず動くというのが目標だったのが、次の数スプリントを見越して開発していくことになるので、大規模な設計変更も発生せず、スムーズに開発をすすめることができます。

最後に

上記に色々書きましたが、PoCを作るのは顧客/ステークホルダーとの信頼関係構築だけでなく、開発チームの練度も上げるいい機会になると思っています。 個人的には、初対面だった開発者が、一つのPJが終わったあとのように、手慣れた状態になると思っています。 みなさんも実施できる機会があるようであれば、是非チームでPoCを開発してみてください!オススメいたします!