レガシーソフトウェアのモダナイゼーションサービス
事業を支えていながら、事業の足かせにもなっているシステム向けのレガシーソフトウェアのモダナイゼーション:他チームが書いたコードの引き継ぎ、現行リリースへのアップグレード、旧モジュールの段階的な置き換えを、一括の全面書き直しなしで行います。これまでに他のチームから引き継いだシステムは9件で、最も古いものは2008年に書かれたものです。
レガシーシステムのモダナイズの進め方
まず読み取り専用のレビュー
コード、依存関係、デプロイ、データを、1行でも変更する前に端から端まで読み込み、本番への影響順にリスクの書面リストを作成します。
既存の動作を固定するテスト
現在のシステムの動作を癖も含めて固定する特性テスト(キャラクタライゼーションテスト)で、以降のすべての変更を、記憶ではなく実際の挙動に対して確認します。
フレームワークとランタイムのアップグレード
.NET Frameworkから現行の.NET、Java 8から現行のLTS、PHP 5からPHP 8、Python 2から3、AngularJSからAngularへ、1ステップずつ、各ステップを単独でリリースします。
ストラングラーフィグによる置き換え
新しいモジュールを、ルーティング層の裏で旧システムの隣に構築し、旧コードを停止できるまで1機能ずつ引き継いでいきます。すべてが変わる単一の日はありません。
データベースのモダナイゼーション
ストアドプロシージャからテスト済みのコードへ移すビジネスロジック、バージョン管理されたマイグレーションに変えるスキーマ変更、サポート切れのデータベースバージョンのデータを突合レポート付きで移行します。
セキュリティ負債の返済
サポートが終了した依存関係の置き換え、既知の脆弱性の修正、設定ファイルからボールトへのシークレットの移行、そして負債が戻らないようにパイプラインでの依存関係スキャンを行います。
レガシーシステムのエンジニアを採用する
専任のレガシーシステムのエンジニア
御社のチームにフルタイムで参画し、御社のツールとプロセスの中で働き、御社のリードに報告するレガシーシステムのエンジニアです。面接は御社が行い、ウクライナでの雇用契約、給与支払い、請求書発行、休暇管理は当社が担います。
モダナイゼーションプロジェクト
スコープと固定の計画が定まったモダナイゼーションの一区切りの業務です。当社側の担当リードが成果に責任を持ち、進捗は御社のチャネルで報告します。
継続的なモダナイゼーション
モダナイゼーションを継続サービスとして提供します。毎月同じメンバーが担当し、優先順位は御社がバックログで決め、稼働時間は当社のポータルと請求書で確認できます。
スペシャリストが御社のチームに参画する方法は専任チームのページで、プロジェクトのデリバリー、引き継ぎ、料金の考え方はアウトソーシングのページで説明しています。
御社のモダナイゼーションを担当するメンバー
テクニカルリード
レビュー、リスク一覧、作業の順序を担当
.NET、Java、PHPエンジニア
システム自身の言語でのアップグレードとリファクタリング
クラウド・DevOpsエンジニア
パイプライン、Infrastructure as Code、旧サーバーからの移行
QAエンジニア
特性テストとリグレッションテスト
一括の書き直しではなく、段階的にモダナイズする
全面的な書き直しは、数か月にわたって納品を止め、誰も書き残していない挙動を失いがちです。当社は代わりに段階的にモダナイズします。各ステップはリリースできるほど小さく、以前のシステムの動作に対してテストし、取り除くリスクやコストで選ぶため、システムが変化する間も事業は動き続けます。
引き継ぎは、修正の前に、読み取り専用のレビューとリスクの書面リストから始まります。そのリストで、あるモジュールは書き直したほうがよいと分かることもあり、その場合は理由を書面で添えてお伝えし、同じテストの裏で書き直しを計画します。
その他の提供ソリューション
MVP開発
創業者とプロダクトチーム向けのMVP開発サービス:スコープの設計、Figmaプロトタイプ、WebまたはモバイルのMVP構築とリリースを、次のバージョンまで支えられる技術スタックで行います。専任のMVP開発者またはプロジェクト単位でご提供します。
SaaS開発
SaaS開発サービス:マルチテナントアーキテクチャ、サブスクリプションと課金、エンタープライズ向けシングルサインオン、サポートツール、ダウンタイムなしのリリースを、専任のSaaS開発者またはプロジェクト単位でご提供します。
Webアプリケーション開発
Webアプリケーション開発サービス:顧客ポータル、社内ツール、ダッシュボード、プログレッシブWebアプリを、バックエンドとホスティングを含めて、専任のWeb開発者またはプロジェクト単位でご提供します。
API開発
API開発と連携のサービス:REST・GraphQL API、サードパーティ連携、イベント駆動メッセージングとWebhookを、すべての接続を監視しながら、専任のAPI開発者またはプロジェクト単位でご提供します。
クラウド移行
クラウド移行サービス:ワークロードの評価、Terraformによるランディングゾーン、データベースとアプリケーションのAzure、AWS、Google Cloudへの移行を、計画した切り替えで行います。専任のクラウドエンジニアまたはプロジェクト単位でご提供します。
TelegramボットとViberボット
企業向けのTelegramボットとViberボット:注文、予約、LiqPay・WayForPay・monobankでの決済、注文状況の通知、スタッフ向けボットを、御社のWebサイト、CRM、会計システムと連携して構築します。
企業・機関・慈善団体向けチャットボット
サポート、予約、注文、メーター検針値の受付、入学手続き、公共サービス、慈善活動向けのチャットボットを、Telegram、Viber、WhatsApp、Facebook Messenger、Instagram、Webサイト上に構築します。SendPulse、Botpress、Copilot Studio、またはコードで開発します。
ウクライナのサービスとの連携
御社のWebサイト、ストア、CRMを、Nova Poshta、Ukrposhta、LiqPay、monobank、PrivatBank、Checkbox、Vchasno、Paperless、Prom.ua、Rozetka、KeyCRM、Prozorro APIと連携し、データの再入力をなくします。
CRM開発
御社のプロセスに合わせて、CRMの設定、拡張、新規構築を行います。KeyCRM、SalesDrive、HubSpot、Pipedrive、Salesforce、Dynamics 365、自社専用CRMに対応し、連携と定型業務の自動化も行います。
レガシーのモダナイゼーションに関するご質問
書き直すべきですか、モダナイズすべきですか?
通常はモダナイズです。書き直しが意味を持つのは、挙動がよく理解されていて、そのコードがあらゆる変更の妨げになっているモジュールです。それ以外は、段階的なアップグレードとストラングラーフィグによる置き換えのほうが早く価値を生み、旧コードに作り込まれた知識も残ります。レビューで、その判断をモジュールごとに書面で提示します。
元の開発者が退職しました。それでも引き継げますか?
はい。コード、データベース、デプロイ、そして今もシステムを使っている方々から把握します。何を変更するかを決める前に、書面のリスクリストで当社が見つけたことをお伝えします。
モダナイズの間、旧システムは動き続けますか?
はい。稼働中のシステムへの修正とセキュリティパッチは期間中ずっと続き、各モダナイゼーションのステップは単独でリリースされるため、事業が新バージョンを待つ期間は生じません。
レガシーシステムのエンジニアは、どのくらいで開始できますか。
適任のモダナイゼーションエンジニアがすぐに対応可能な場合、開始までの条件は、御社の面接と、NDAおよび知的財産権の譲渡契約の締結のみです。そうでない場合は人材を探索し、通常は2〜3週間以内に候補者のプロフィールをお出しします。御社が承諾するまで、誰も業務を始めません。
BigTree108を通じてレガシーシステムのエンジニアを採用するには、どうすればよいですか。
必要な業務内容、シニアリティ、稼働時間をお知らせください。1〜2名の候補者をプロフィールとともにご提案し、御社が自社で採用する場合と同じ形で面接を行います。契約はBIG TREE 108 LLCとの1本、請求書は月1通です。
成果物の権利は、誰に帰属しますか。
御社です。すべてのスペシャリストはBigTree108と署名済みの契約を結び、成果物のすべてを会社に帰属させています。さらに、御社との契約により、その権利は御社に引き継がれます。コード、デザイン、ドキュメントは、当社だけが変更できる場所ではなく、御社のリポジトリとツールに納品します。
誰も触りたがらないシステムを運用していますか?
リポジトリ、またはシステムの説明をお送りください。1営業日以内に、レビューの計画と、その後の最初のステップをお返しします。