フリーランスが200万円案件で実践したベストプラクティス | vol.002
こんにちは、エンジニアの「すえ」(@sueTech_)です。
前回は、過去に自分が経験した受託案件での失敗談をお話しさせていただきました。
今回も、前回と同じく自分がお仕事させていただいたケースのお話しをさせていただきます。
こちらは「炎上案件」では無く、良かった点・改善点を皆さまにお伝えしたいと思います。
こんな案件でした。
今回のクライアント様は建設業界の企業様です。ざっくりですが、こんな企業様でした。
社内では、案件の進行をExcelで管理していらっしゃったようです。
ただ、社員ごとにExcelのフォーマットが異なっていたり、ファイルベースでは社内での共有が大変ということで、リプレイスをご検討されていらっしゃいました。
既存のSaaSもご検討されていたようでしたが、要件をピッタリと満たすものが見つからず、200万円のご予算で開発のご依頼をいただきました。
SaaSとスクラッチ開発の違いをお伝えする。
既存のSaaSでは自社要件を満たせず、スクラッチ開発へ踏み出されるケースですが、クライアント様がSaaSとスクラッチ開発のメリット・デメリットを把握されているか確認しましょう。
もし、今ひとつご理解いただけていない場合にはしっかりと事前にご説明されることをおすすめします。
下記のポイントの認識がすれ違っていると、思わぬ手戻りが発生する可能性があります。
IT業界にお勤めの方には常識かもしれませんが、SaaSとスクラッチ開発のコスト差(特にランニングコスト)に驚かれるクライアント様がいらっしゃいます。
システムを稼働させ続けるためには、「サーバー」が必要不可欠です。
一般的にサーバー代は、利用者が増えれば増えるほど利用者当たりのコストが下がっていく「スケールメリット」が働きます。
そのため、SaaSとして広く提供しているサービスと比べて、自社内のみで利用するサーバーを用意した場合、利用者当たりのランニングコストは割高になります。
デモ環境を用意する。
最近は、Zoomなどによるオンライン会議が一般的になってきて、画面共有しながら進捗報告されることも多々あると思いますが、なるべく早い段階でデモ用サーバーをご用意することをおすすめします。
自分の場合は、クライアント様が目で見て触って確認できるような進み具合になったタイミングでインフラを構築することが多いです。
デモ用サーバーを用意する理由ですが、1時間のオンライン会議で操作デモに費やす30分を省略するためです。
基本的に「対面」でのコミュニケーションは、インタラクティブな情報・意見交換に徹底することで、時間当たりのパフォーマンスが高くなると思います。
クライアントの担当者様は、システムの進捗管理が本業ではありません。何かしら本業のお仕事があって、その合間合間に外注先とのコミュニケーションにお時間を割いていらっしゃいます。
受託側も複数のクライアントを持ち始めると、何でもかんでも会議を開催していると手が回らなくなってきます。
システム・機能の複雑度にもよりますが、一方的に操作方法と画面表示をお見せする「授業式」会議よりも、機能の改善点や改善方法の議論、小難しいIT知識をお伝えする時間にしましょう。
また、クライアントの担当者様は社内の上長に進捗を報告する業務があります。会議でお見せするだけでは、上長へ報告するためにそれらの情報を整理するという作業が発生してしまいます。
デモ環境があれば、クライアント様内での情報共有もスムーズに行えるようになります。
サーバー選定の理由を整理する。
オンプレ環境では無い場合、サーバー選定もする必要があります。特定の要件が無い場合、選択肢としては3大クラウドが候補になるかと思います。
自分はAzure・GCPでしか満たせない要件がある場合以外は、基本的にAWSをおすすめするようにしています。(一部例外的に、HerokuやNetlifyをご提案する場合もあります)
クライアント様は、選択肢を網羅的に検討するよりも、日々のランニングコストがどのくらいなのか、可用性・冗長性はあるのか、セキュリティはどうかといったポイントを気にされている方が多いです。
なぜならば、決裁を通す際の「ツッコミポイント」になるからです。
そのため、広く選択肢を提供するよりも、しっかりとAWSについてご説明する時間を取るようにしています。IT業界内では一般常識となっている知識でも、ご存知ない場合がほとんどだからです。
また、AWSは日本語での参考情報が多く、経験あるエンジニアが多いという点も重要なポイントです。
クライアント様と長くお付き合いできることがもちろん理想ではありますが、自分から手離れした後でも運用に支障をきたさないようにも配慮するようにしています。
プラスαを提供する。
クライアント様から伝えられた通りに開発して納品するだけでは、仕事振りとしてあまり良くありません。どんなにクライアント様が時間を費やした資料でも、エンジニアの視点から見るとやはり漏れている点はあるものです。
例えば、上記に挙げた中で、「タグ」のようなデータを保存する機能で文字列保存となっているとどうでしょうか?
入力される方によって、「株式会社すえ」「(株)すえ」「すえ」などバラツキが出てきてしまうかと思います。
そういう場合には、「会社」のマスターデータを用意して、「すえ」にヒットした選択肢から選んで登録してもらう方がベターです。
そうなると、「会社」マスターデータの一覧画面や登録・更新・削除機能が必要になってくるため、エンジニア側からご提案するような流れになります。
以上、今回は実際の現場での自分なりのベストプラクティスをご紹介させていただきました。いかがでしたでしょうか?
少しでもITに関わる人たちのお役に立てれば、幸いです!
それでは、また次の記事で!
Twitterやっています!アカウントはこちら!
😚お仕事のご依頼お待ちしております!ご連絡はこちらのフォームから。
🤗無料のITご相談を受け付けております。お気軽にご連絡ください!
🤔システムや新規事業の外注・受託での体験談を募集しております。あなたのエピソードをお待ちしております!