多くの企業が、誰も積極的に管理していないアプリを抱えることになります。最初の開発者や制作会社は離れ、リリースは止まり、アプリストアからは古いSDKについて警告が届き、コードを変更することに誰も自信を持てません。そうなると、パッチを当て続けるか、ゼロから作り直すかのどちらかに傾きがちです。しかし、どちらも直感で決めるべきではありません。このアプリ救済ガイドでは、放置されたアプリを評価し、既存のものをリファクタリングするか作り直すかを、不満ではなく証拠に基づいて選ぶ方法を説明します。
何であるのか
アプリの救済は、実際に何を持っているかを把握することから始まります。つまり、ソースコード、ビルド設定、署名鍵、ホスティングアカウント、アプリストアの掲載情報、サードパーティサービスへのアクセスを取り戻し、次にコードの構造、依存関係、テストの網羅性、既知の不具合を確認し、さらにアプリが現在のOSバージョンでビルド・動作するかを確かめることです。リファクタリングとは、アプリを動作させたまま、既存のコードベースをその場で改善することです。依存関係の更新、不具合の修正、問題のある箇所の再構成、テストの追加などを行います。作り直し(リビルド)とは、新しいコードベースを書くことであり、通常は可能な限りデザイン、データ、バックエンドサービスを再利用し、ユーザーを新しいアプリに移行します。リファクタリングは過去の投資を活かし、リリースが長期間途絶えることを避けられます。コードベースが保守不能である場合、廃れたフレームワークで構築されている場合、あるいは現在の製品に求められるものと根本的に合わない場合は、作り直しの方が適していることがあります。多くの場合、答えは組み合わせです。まず安定化させ、その後に部分ごとに段階的に置き換えていきます。
誰のために
本ガイドは次のような方に役立ちます。
- アプリの開発者や制作会社と連絡が取れなくなった企業
- ビルドできない、新しい端末でクラッシュする、アプリストアで却下されるといった問題を抱えるアプリのプロダクトオーナー
- 前のチームから未完成のアプリを引き継いだ創業者
- 既存のコードベースにさらに投資すべきかを判断しているチーム
明確にするのに役立つこと
体系的な評価により、次の点が明確になります。
- コード、鍵、アカウント、データの完全な所有権とアクセス権を持っているか
- 既存のコードのうちどれだけが健全で、どれだけにリスクがあり、どれだけが欠けているか
- フレームワークと依存関係がまだサポートされているか
- リファクタリング、作り直し、段階的な置き換えのうち、どの道筋がスケジュールとリスク許容度に合うか
含まれる内容
- アクセスを取り戻す:ソースリポジトリ、ビルドファイル、署名証明書とキーストア、クラウドとホスティングのアカウント、アプリストアのアカウント、サードパーティのAPIキー
- 必要に応じて自社のアドバイザーとともに、コードとライセンスの法的な所有権を確認する
- アプリがソースからビルドでき、現在のOSバージョンで動作するかを確認する
- 依存関係に、古い、サポートが終了した、または脆弱なライブラリがないかを確認する
- コードの構造、テストの網羅性、ドキュメントを評価する
- 既知の不具合、クラッシュレポート、ユーザーの苦情、アプリストアの警告を一覧化する
- アプリが依存するバックエンド、API、データをマッピングする
- リファクタリング、作り直し、段階的な置き換えの各選択肢を、工数、リスク、リリースが途絶える期間の観点で評価する
- 大規模な作業を始める前に、緊急の問題に対する安定化計画を合意する
含まれていないもの
- レガシーの問題がすべて発見・解決されるという主張
- 確定した復旧スコープを超える新機能の開発
- 別途スコープを定めない限り、正式なセキュリティ評価やペネトレーションテスト
- コードの所有権や以前のサプライヤーとの紛争に関する法的助言
それを選ぶべきとき
アプリを安全にリリースできなくなったとき、プラットフォームの要件によってストアの規則に適合しなくなりそうなとき、あるいは小さな変更のたびに新たな問題が生じるときに行動してください。アプリがストアから削除されたり、重要なサービスが停止したりするまで待たないでください。ソースコードや署名鍵にアクセスできない場合は、まずそれを解決してください。それらがなければ、コードの品質にかかわらず、作り直しが唯一の選択肢となる場合があります。
私たちのアプローチ
意見ではなく、アクセスと証拠から始めてください。放置されたアプリの多くは、再びビルドできるようになると見た目より良い状態であることが分かります。一方で、問題なく見えても、もはや存続が難しいフレームワークの上に成り立っているものもあります。コード、依存関係、インフラ、製品のニーズを網羅した書面の評価に基づいて判断してください。当社のApp Rescue & Rebuild サービスは、評価と復旧を対象としています。動作するビルドの回復、重大な問題の安定化、確定した復旧の道筋の提案と実行を行い、スコープを定めた復旧記録と引き継ぎ資料を提供します。問題がより広範なプラットフォーム、バックエンド、レガシーシステムに及ぶ場合は、Platform Rescue & Modernisationにより、現状のマップ、安定化計画、モダナイゼーションのロードマップを提供します。復旧後は、アプリが再び同じ状態に陥らないよう、継続的な管理を計画してください。依存関係の定期的な更新、リリースの手順、アカウントと鍵の明確な管理責任です。
よくある質問
関連記事
始めよう
誰も保守できないアプリでお困りですか?
アクセスできるもの、壊れているもの、アプリに今後求められることをお知らせください。書面による評価と復旧のスコープをご提案します。
書面のスコープを依頼する