ホワイトペーパー・記事
カスタムソフトウェア開発に関する記事は、順次公開され次第こちらに表示されます。
View Moreカスタムソフトウェア開発
Webアプリケーションとポータル、AIを組み込んだプラットフォーム、API、社内業務とERPのツール、クラウドネイティブなサービス。引き継いだチームが、当社に連絡せずに変更できる状態でつくります。
本当のコスト
構築には終わりの日付と金額が付きます。だからこそ、誰もがそこを比べます。そのあとに来るものには、どちらもありません。誰も見積もらなかった変更、保守されなくなる依存、そしてそれを理解していた一人が辞めること。これはカスタムソフトウェアのリスクではありません。カスタムソフトウェアとはそういうものであり、その大部分は、最初の版がどう書かれたかで決まります。
御社のスタックの中にある、範囲の定まったシステム。何をするのかを語るテストと、当社がいなくなる前提で書かれた引き継ぎつき。おもしろいエンジニアリングは、当社が去ったあとに起きることの側にあります。
必要のないところで凝っていて、書き残しがなく、一人しか知らない手順でデプロイされるもの。納品の時点では割安に見えて、動かし続けるかぎり税金であり続けます。
提供内容
六つの領域です。すべての案件にすべてが必要なわけではありませんし、範囲は着手前にお客様と合意します。
顧客と社員がログインして使うシステム。難しいのは画面ではありません。アカウント、権限、更新しても消えてはいけない状態、そして手元では再現できない遅い回線で何が起きるか、です。
あとから画面を付けたAIの案件ではなく、内側にモデルを持つプロダクト。モデルがやることは仕事全体のうち小さい部分で、その周りのすべてが、運用できるかどうかを決めます。
RESTとGraphQLのエンドポイント。ドキュメントを読まない人に使われる前提でつくります。バージョンの付け方とエラーの形は最初に決めます。何かが依存し始めたあとでは、ほぼ変えられないからです。
誰もデモで見せず、全員が使うシステム。顧客向けのソフトウェアとは別の軸で評価されます。心地よいかどうかではなく、その日四十回目の作業をしている人が、道具と戦っていないかどうかです。
コンテナ化され、再現可能に配置され、実際に動かす規模に合わせたサービス。問題の形がそれを正当化するときはKubernetesを、そうでないときはもっと素朴な構成を。後者のほうが、提案される頻度よりは多いはずです。
読めるコード、書き残された判断、テスト一式、そしてチームの誰でも実行できるデプロイ。これは厚意ではなく成果物であり、二年目にいくらかかるかを決めるのはここです。
進め方
たいていは、この仕事でいちばん価値のある一時間です。要件の一覧にはほぼ必ず、すでに製品として存在するものが混ざっています。それを自分でつくるのは、手に入れる方法として最も高くつきます。
システムを端から端まで通る経路を一本、御社の環境で動かします。ホワイトボードでは決着しない議論が決着しますし、予算を確定する前に決着します。
御社のクラウド、御社のリポジトリ、御社のIDプロバイダ、御社のレビュー手順で。当社のものでも、隔離された環境でもなく、最後に移管が必要な場所でもありません。
三段階目で、それは御社の環境で動きます。 残りの二つが、それを当社のものではなく御社のものにします。
そのシステムが何をするはずなのかを記述したテストを、変更のたびに動かします。これがなければ引き継ぎは願望です。次の担当者は、自分の変更が二画面先で何かを壊したかどうかを判断できません。
当社のためではなく、保守する人のために書かれたドキュメント。御社のチーム自身が実行するデプロイ。そして、当社にとって手放すのが都合の悪い部分も。この仕事は、終わるように設計されています。
はっきり言うと
いま話しておられることの大半をすでに製品がやっているなら、正直な助言は「その製品を買って、差額を本当に御社のものである部分に使う」です。カスタムソフトウェアが働きに見合うのは狭い場所です。既製のツールに合わせると、実際に稼ぎを生んでいるものを変えることになってしまう、その場合だけ。それ以外の場所では、払い続けることを自分で選んだ請求書であり、当社はそれを書くより、やめておきましょうとお伝えするほうを選びます。
その前に
決めたあとではなく、決める前に聞いてください。いま話しておられる作業をすでに製品がカバーしているなら、買うほうが二重に安く済みます。ライセンスは構築より安いですし、そのあと保守するのは御社ではありません。つくる価値があるのは、既製のツールに合わせると、事業の稼ぎ方そのものを変えることになる場合です。
フロントはReactとNext.js、その後ろはNode.jsかPythonとFastAPI、データはPostgreSQL、配置がそれを正当化するならDockerとKubernetes。一覧そのものより、その理由のほうが重要です。これは御社が採用でき、読める人がいるスタックだからで、好みではなく意図的に置いている制約です。
ソースは御社のリポジトリに、御社のライセンスで。デプロイは御社のパイプラインから動き、ドキュメントは当社のためではなく引き継ぐ人のために書かれています。御社の技術者が当社に連絡せずにシステムを変更できないなら、請求書に何と書いてあっても、引き継ぎは失敗しています。
Webデザインは表層です。文字の大きさの体系、余白、階層、どう読めるか。こちらはその後ろにあるもの——アカウント、データ、権限、API、デプロイです。実際の案件は多くの場合その両方を必要としますが、別のページになっているのは、別の技能であり、片方だけで足りることもあるからです。Webデザイン。
たいていできますし、つくり直すよりそちらを選びます。書き直しは、この業界でもっとも頻繁に提案され、もっとも稀にしか正当化されない答えです。まずやるのは、いまあるものを読んで、どの部分が残す価値があるかを正直にお伝えすることです。ときにはその答えが「ほとんど全部」で、それは想定より安い答えになります。
次に
つくろうとしていたものを送ってください。何をつくる価値があり、何がすでに製品として存在し、最初の一筋は何であるべきかをお返しします——たいてい、その一覧より短いものになります。