アイオワ州党員集会アプリはチャンスを逃した アイオワ州党員集会アプリはチャンスを逃した

アイオワ州党員集会アプリはチャンスを逃した

アイオワ州党員集会アプリはチャンスを逃した

IowaReporterアプリはApp Storeでは見つかりません。たとえ見つかったとしても、評価が低すぎてダウンロードしたい人はいないでしょう。このソフトウェアは今週のアイオワ州党員集会の混乱において重要な役割を果たしましたが、詳細を知れば知るほど、そもそもチャンスなどなかったように思えてきます。

本来は党員集会の結果報告をよりシンプルに、より迅速に、そしてより透明性の高いものにすることを目的としていたが、いずれの場合もその逆の結果となった。アプリを開発したShadow社は、約6万ドルを請求した後、肝心のアプリの開発に約2ヶ月しかかけられなかったと報じられている。こうした数字は、この種のソフトウェア開発で生計を立てている人々にとって、直ちに警鐘を鳴らすものだ。

「過去10年間のソフトウェアの問題の一つは、多くのクライアントがアプリの選定と計画に十分な重きを置いていないことです」と、アプリ開発会社Unified InfotechのCOO、サプタルシ・ハルダー氏は語る。IowaReporterAppのような比較的シンプルなアプリでさえ、テキストフィールドと、完成した結果シートの写真を送信するためのシンプルなメディアアップロード機能しか備えていない。ハルダー氏によると、開発者が実際にアプリの開発を始める前の計画プロセスには、最低でも1ヶ月はかかるという。「画面、フィールド、必要な出力内容などを考慮する必要があり、時間がかかります」と彼は付け加える。

ニューヨークに拠点を置くモバイル開発会社 Utility の CEO、David Cohen 氏も、これほど重要な計画プロセスには数か月かかることもあると同意しています。

IowaReporterAppのようなアプリの実際のコーディング部分は、高度な機能を必要としないため、それほど複雑ではありません。Halder氏は、このようなアプリの実際のコードをまとめるのに2ヶ月は妥当な期間だと示唆しています。しかし残念ながら、それではテストにほとんど時間をかけることができません。

アプリのパフォーマンスがいかに優れているように見えても、必ず不確定要素が出てきます。チャド・ウルフ国土安全保障長官はFOXニュースに対し、国土安全保障省はアプリのテストに協力を申し出たものの、断られたと述べました(民主党全国委員会はこれを否定しています)。開発者の身元を秘密にしておくのは、ハッカーによるアプリの発見と侵入を防ぐための計画の一環であったと報じられており、外部企業、たとえ政府機関であっても、協力を得ることは考えにくかったでしょう。

アプリのテストは、閉鎖された環境で正常に動作することを確認するほど単純ではありません。コーエン氏が指摘するように、IowaReporterAppは必ずしも完全に失敗したわけではありませんが、報告によると結果に部分的なデータしか提供されなかったとのことです。これは、アプリ側、あるいはインフラのサーバー側、クラウド側のいずれかで、データ転送に関連する何らかの要因が抑制されていたことを明確に示しています。「すべてのデータを取得し、部分的にしか転送しなかったかどうかはわかりません」とコーエン氏は言います。これは、テストをクリアした後でも、現実世界のシナリオで発生する可能性のある問題です。

一部の報告によると、ボランティアは記入済みのシートの写真をアップロードするという最後のステップを踏もうとした際に、頻繁にエラーメッセージに遭遇したとのことです。「単純なメディアのアップロードでさえ、綿密なテストが必要です」とコーエン氏は言います。「特に全員が同時に結果を提出することを考えると、サーバーに送信する前に、携帯電話でメディアファイルをどの程度圧縮するか、そしてどの程度圧縮を優先するかを決める必要があります。私たちが携帯電話で撮影する生の写真ファイルは、皆さんが想像するよりもはるかに大きいのです。」

ハルダー氏も写真アップロード機能について同様の懸念を抱いていました。「メモリ使用量が多すぎるとアプリがクラッシュする可能性があります」と彼は言います。「デバイスや設定によっては、エラーが発生する可能性があります。」彼によると、テスト段階により、アプリが承認基準を満たすまでのビルド期間が少なくとも1ヶ月長くなるとのことです。

IowaReporterAppのピーク時のユーザー数はわずか1,700人程度と比較的小規模でしたが、大規模な運用負荷下でのパフォーマンステストは極めて重要です。Apache JMeter、Loadrunner、IBMのRational Performance Testerといった外部アプリケーションは、アプリケーションの実際の動作環境をシミュレートし、実際のユーザーがデータを入力した際に正常に動作するかどうかを検証します。これらのアプリケーションは、数十万、あるいは数百万人規模のユーザーをシミュレートすることが可能です。Shadowがこの種のテストをどの程度実施したかは不明ですが、コーエン氏とハルダー氏はいずれも、1ヶ月のテストでは最低限の要件を満たす程度にしかならないと示唆しています。

通常、テストが終了すると、企業はApp StoreやGoogle Playストアなどの公式チャネルを通じてアプリを申請し、承認と正式な配信を求めます。このプロセスには数日、場合によっては数週間かかることもあり、承認を待つ間、アップデートの配信に時間がかかります。

IowaReporterAppの場合、Shadowは、通常はテスト用に設計されたエンタープライズ環境を使用することで、このプロセスを回避しました。エンタープライズ環境は、重要な実世界アプリの運用プラットフォームとしては決して使用すべきではありません。Viceの報道によると、ShadowはAndroidアプリの配信にTestFairyを使用しました。iOS版のTestFlightと同様に、TestFairyはユーザーがデバイスの管理された環境でアプリケーションの試作版を実行できるように設計されています。

TestFairyやTestFlightのようなプラットフォームを使用すると、プロセス全体に複雑さと変動性が加わります。多くの報告では、ユーザーがアプリをダウンロードすることさえ困難だったと報告されており、そもそもIowaReporterAppを正常にダウンロードできたのはボランティアの約4分の1に過ぎなかったという推定もあります。

こうしたプロジェクトの予算については、作業範囲や担当者が不明なため、正確な費用を見積もることは困難です。ハルダー氏によると、6万ドルという予算額は、作業が米国内で完了した場合、全く意味をなさないとのことです。インドのような国に外注し、平均時給が30ドルから40ドルとはるかに低かった場合、この予算はより妥当なものになると彼は述べています。連邦選挙委員会(FEC)への提出書類によると、ネバダ州はShadowのアプリの使用を見込んで5万8000ドルを支出していますが、すべてが計画通りに進んでいた場合、アプリの異なるバージョンが合計でどれだけの収益をもたらしていたかは不明です。

コーエン氏は、アプリのバックエンド操作についてあまり詳しくないにもかかわらず、このようなものに必要な計画と徹底したテストに対応するには、6 桁の予算が必要であると提案しました。

これらすべては計画・開発プロセスの中にあり、そもそもアプリを実際に使いこなせるようにトレーニングしたり、導入後に問題を抱えるユーザーをサポートしたりするための追加の労力と費用は考慮されていません。報告によると、ReportIowaAppのサポートラインは、問題が起こり始めた際に十分なサポートが受けられなかったため、「パンク状態」になったとのことです。

IowaReporterAppの内部と背後で何が起こっていたのか、正確には分からないかもしれないが、ネバダ州で予定されていた党員集会では、当初計画されていたShadowのアプリは使用されないだろうということは確かだ。州がどのようなアプリを使用する予定なのかは不明だが、集会は2月22日に行われるため、別の選択肢を準備してテストする時間はあまりない。しかし、もしそのために旧式の方法で結果を記録する必要があるとしても、IowaReporterAppのクラッシュとそれに続く悪評の波を考えると、それは小さな代償のように思えるかもしれない。