見出し画像

フリーランスが200万円案件で実践したベストプラクティス | vol.002

こんにちは、エンジニアの「すえ」(@sueTech_)です。

前回は、過去に自分が経験した受託案件での失敗談をお話しさせていただきました。

400万円のご予算でお仕事を受けるも、案件がご破算になるまでの経緯を公開しています。リアルな受託体験談をお楽しみください。笑


今回も、前回と同じく自分がお仕事させていただいたケースのお話しをさせていただきます。
こちらは「炎上案件」では無く、良かった点・改善点を皆さまにお伝えしたいと思います。


こんな案件でした。

今回のクライアント様は建設業界の企業様です。ざっくりですが、こんな企業様でした。

・創業から数十年
・社員数: 100名弱
・年間売上: 10~20億円
・生活インフラの設計などを行なっている

社内では、案件の進行をExcelで管理していらっしゃったようです。
ただ、社員ごとにExcelのフォーマットが異なっていたり、ファイルベースでは社内での共有が大変ということで、リプレイスをご検討されていらっしゃいました。

既存のSaaSもご検討されていたようでしたが、要件をピッタリと満たすものが見つからず、200万円のご予算で開発のご依頼をいただきました。


SaaSとスクラッチ開発の違いをお伝えする。

既存のSaaSでは自社要件を満たせず、スクラッチ開発へ踏み出されるケースですが、クライアント様がSaaSとスクラッチ開発のメリット・デメリットを把握されているか確認しましょう。
もし、今ひとつご理解いただけていない場合にはしっかりと事前にご説明されることをおすすめします。


下記のポイントの認識がすれ違っていると、思わぬ手戻りが発生する可能性があります。

SaaSの方が優れている
・イニシャルコスト
・ランニングコスト
・利用開始までのリードタイム

スクラッチ開発の方が優れている
・機能の柔軟性
・継続的な改善


IT業界にお勤めの方には常識かもしれませんが、SaaSとスクラッチ開発のコスト差(特にランニングコスト)に驚かれるクライアント様がいらっしゃいます。

システムを稼働させ続けるためには、「サーバー」が必要不可欠です。
一般的にサーバー代は、利用者が増えれば増えるほど利用者当たりのコストが下がっていく「スケールメリット」が働きます。

そのため、SaaSとして広く提供しているサービスと比べて、自社内のみで利用するサーバーを用意した場合、利用者当たりのランニングコストは割高になります。

💡発注者の方へ
利用開始までの速度・コスト最優先・「チャンレンジ的取り組み」の場合は、基本的にまずはSaaSをご検討されることをおすすめします。

【スクラッチ開発がおすすめケース】
・必須の要件をどうしても満たすことが出来ない
・継続的に改善していきたい


デモ環境を用意する。

最近は、Zoomなどによるオンライン会議が一般的になってきて、画面共有しながら進捗報告されることも多々あると思いますが、なるべく早い段階でデモ用サーバーをご用意することをおすすめします。

今回の案件では、Heroku でデモ用サーバーをご用意しました。手軽に構築出来るので個人的にはおすすめです。

自分の場合は、クライアント様が目で見て触って確認できるような進み具合になったタイミングでインフラを構築することが多いです。

デモ用サーバーを用意する理由ですが、1時間のオンライン会議で操作デモに費やす30分を省略するためです。
基本的に「対面」でのコミュニケーションは、インタラクティブな情報・意見交換に徹底することで、時間当たりのパフォーマンスが高くなると思います。


クライアントの担当者様は、システムの進捗管理が本業ではありません。何かしら本業のお仕事があって、その合間合間に外注先とのコミュニケーションにお時間を割いていらっしゃいます。
受託側も複数のクライアントを持ち始めると、何でもかんでも会議を開催していると手が回らなくなってきます。

システム・機能の複雑度にもよりますが、一方的に操作方法と画面表示をお見せする「授業式」会議よりも、機能の改善点や改善方法の議論、小難しいIT知識をお伝えする時間にしましょう。


また、クライアントの担当者様は社内の上長に進捗を報告する業務があります。会議でお見せするだけでは、上長へ報告するためにそれらの情報を整理するという作業が発生してしまいます。
デモ環境があれば、クライアント様内での情報共有もスムーズに行えるようになります。

💡発注者・エンジニアの方へ
定例進捗報告会議など、いたずらに時間をロックするような方法は見直されることをおすすめします。
相手の見えない作業コストにも気を使った優しい進め方を検討しましょう。


サーバー選定の理由を整理する。

オンプレ環境では無い場合、サーバー選定もする必要があります。特定の要件が無い場合、選択肢としては3大クラウドが候補になるかと思います。

AWS(Amazon Web Service)
・Amazonが母体となり提供。世界シェア No.1
・マルチな要望に対応できるサービス提供数の多さが魅力。
Microsoft Azure
・Microsoftが提供。近年シェア拡大中
GCP(Google Cloud Platform)
・Googleが提供。
・Googleの最新技術が利用できるビッグデータ解析や機械学習機能が用意されている。

画像クレジット:Synergy Research

自分はAzure・GCPでしか満たせない要件がある場合以外は、基本的にAWSをおすすめするようにしています。(一部例外的に、HerokuやNetlifyをご提案する場合もあります)


クライアント様は、選択肢を網羅的に検討するよりも、日々のランニングコストがどのくらいなのか、可用性・冗長性はあるのか、セキュリティはどうかといったポイントを気にされている方が多いです。
なぜならば、決裁を通す際の「ツッコミポイント」になるからです。

そのため、広く選択肢を提供するよりも、しっかりとAWSについてご説明する時間を取るようにしています。IT業界内では一般常識となっている知識でも、ご存知ない場合がほとんどだからです。

💡エンジニアの方へ
クライアント様が欲しがっている情報がしっかりと伝えられるように、資料・コミュニケーションに労力を費やすようにしましょう。


また、AWSは日本語での参考情報が多く、経験あるエンジニアが多いという点も重要なポイントです。
クライアント様と長くお付き合いできることがもちろん理想ではありますが、自分から手離れした後でも運用に支障をきたさないようにも配慮するようにしています。

ちなみに、今回の案件では Azure を採用しています。
当初はAWSでお話しを進めていたのですが、「Amazonはネットショップの会社」というイメージを持たれている方もIT業界以外では多くいらっしゃいます。
結果、Microsoftが提供するサービスの方が信頼できるということで、Azureが採用されることになりました。


プラスαを提供する。

クライアント様から伝えられた通りに開発して納品するだけでは、仕事振りとしてあまり良くありません。どんなにクライアント様が時間を費やした資料でも、エンジニアの視点から見るとやはり漏れている点はあるものです。

・登録機能はあるが、削除機能が無い
・「タグ」的データなのに、文字列保存になっている
・ユーザーのパスワード再設定フローが無い

例えば、上記に挙げた中で、「タグ」のようなデータを保存する機能で文字列保存となっているとどうでしょうか?

入力される方によって、「株式会社すえ」「(株)すえ」「すえ」などバラツキが出てきてしまうかと思います。
そういう場合には、「会社」のマスターデータを用意して、「すえ」にヒットした選択肢から選んで登録してもらう方がベターです。

そうなると、「会社」マスターデータの一覧画面や登録・更新・削除機能が必要になってくるため、エンジニア側からご提案するような流れになります。

💡エンジニアの方へ
エンジニアとして、ベターなアイデアを見つけられるように取り組み、提案していきましょう。


以上、今回は実際の現場での自分なりのベストプラクティスをご紹介させていただきました。いかがでしたでしょうか?
少しでもITに関わる人たちのお役に立てれば、幸いです!

それでは、また次の記事で!



Twitterやっています!アカウントはこちら

😚お仕事のご依頼お待ちしております!ご連絡はこちらのフォームから。


🤗無料のITご相談を受け付けております。お気軽にご連絡ください!


🤔システムや新規事業の外注・受託での体験談を募集しております。あなたのエピソードをお待ちしております!

・30分インタビュー(Zoom or 都内23区内にて対面)にご協力いただける方には、3,000円のAmazonギフトカードをプレゼントしています。
・フォームご応募いただいた方の中から、インタビュー対象となる方へご連絡差し上げます。


この記事が気に入ったらサポートをしてみませんか?