品質が高い基幹システムとはなにか?
2021年において某銀行システムのATM障害、某携帯会社の回線障害などシステム障害がメディアで取り上げられました。システムベンダーである私にとってこれらのニュースは他人事と思えず、とても胃が痛くなるニュースでした。
正直な話をしますと基幹システム導入にはトラブルがつきもので、大小様々ですがトラブルが発生しないプロジェクトは存在しないと考えています。私はトラブルを発生させないため、トラブルリスクを低くすることを第一に考え品質を高めることを心掛けています。今回は品質が高い基幹システムとはいったい何なのか、品質を高めるために何を心掛けるべきかをお話ししたいと思います。
基幹システム品質を高めるには何をすべき?
トラブルがなく品質が高い基幹システムと聞くと、多くの人はバグがないシステムと思う人が多いと思います。
確かにシステムトラブルは開発時のバグが起因するものが多く、開発者はテストを何日もかけて何パターンも実施しています。ではバグが1つもない基幹システムは本当に品質が高いシステムと言えるでしょうか?
例えばバグが1つもなかったとしても操作が難しく、使い勝手が悪い基幹システムは果たして品質が高いシステムと言えるでしょうか?
システムは利用者が求める要件を満たし、使用することで導入効果を発揮して初めて価値のあるものと言え、開発者が作りたいものを作るのではなく、利用者が使いたいものを作るべきなのです。
そういった意味ですとバグがあることは利用者の要求どおりに動かないのでシステム品質が低いと言えます。
今回は私が考える品質が高い基幹システムを作りあげるために心がけていることをお話しさせていただきます。
バグを減らし品質の高い基幹システムをめざす
利用者が要求するとおりに使用できないというトラブルを避けるため、バグをなくすことがシステム開発の基本となります。会社で定める開発・テストルールを順守することはもちろんですが、バグをなくし品質を高めるために2つのポイントを意識しています。
・1つめはバグが発生しないようなシンプル設計とすることです。
利用者が求める要件を満たすことを前提として複雑なつくりとせずシンプルなシステム構造とするようにしています。シンプルな構造とすると開発工数を抑えられテストに多くの時間を費やせます。また仮にバグが発生しても調査がしやすく修正も容易に対応でき保守性を高められます。
その他には、導入後に追加改修が発生した際も改修内容を組み込みやすく拡張性を高める効果もあります。
・2つめは基幹システム開発においてバグは発生するものと割り切り、発見に最善をつくすことです。
標準テスト技法により抜け漏れなく網羅的なテスト実施をしていますが、やはり人間誰でもミスはするもので、「バグを出さない!」と目標を掲げるだけでは全く効果はありません。
ですから私はバグを出さないのではなく、バグは発生するものと割り切りテスト時にいかに発見できるかを重要視しています。仮にテスト結果でバグが1つもなかったと報告があった場合、逆に疑い再テストを指示します。
また、1人でテストを完結するのではなくテストパターンの洗い出しやテスト結果を複数人でのレビューを実施することで品質を高めています。
基本的な操作、処理が動くのは当たり前で、思いもよらない操作や例外的なデータ発生時にも想定どおり動作することの確認が大切です。複数人で実施し、あらゆるテストパターンを洗い出せます。
使いやすさを追求して品質の高い基幹システムをめざす
いくら高度な技術を使い画面にありとあらゆる情報を表示させても、利用者の求めているものではない場合は開発者の自己満足でシステムとしては品質が低いものになってしまいます。
利用者の運用を理解し、利用しやすい操作感、必要な情報の表示をしてわかりやすいシステムであることが大切です。
私たちは小売業に特化したシステムベンダーであり標準的な運用、仕様の情報を積み重ねています。そのノウハウを生かし運用提案もしながら使いやすい基幹システムを作ることを心掛けています。
顧客ごとにオリジナルシステムを1から作るのではなく、他社の運用事例も活かし標準運用に合わせていただくことをおすすめしています。
厳選された運用・仕様をきちんと説明して利用者に理解してもらい、パッケージのまま利用していただきます。そすれば改修をなくしてバグの発生やトラブルリスクを軽減させることができます。もちろんコストも抑えられます。
トラブルリスクを低下させ品質の高い基幹システムをめざす
プロジェクトの進め方として要件定義・外部設計で方針・仕様を確定し、内部設計・開発・テストで仕様どおりに基幹システムを作りあげることで品質を高めています。
そしてシステムが完成したら、いよいよ利用者に利用してもらうために導入説明を実施していきます。
私は基幹システム導入プロジェクトで、導入説明をする導入フェーズをもっとも重要視しています。
多くの人は、システム開発は上流工程で利用者が求める要件を正しくまとめ、プロジェクトの計画精度を高くすることが成功のカギと思うでしょう。
確かに要件定義で利用者の要求を正しく理解し、計画どおりに開発してシステムを作り上げることは重要です。しかしせっかく計画どおり作り上げたシステムでも、導入フェーズで機能・運用をきちんと説明できず、稼働時にトラブルが発生するケースがあります。そうなるとすべてが台無しとなり、失敗プロジェクトと印象がついてしまいます。
また、要件確定時にすべての利用者が参加できない場合もあるので、導入説明できちんと理解していただかないと導入効果も発揮できなくなります。
そんなもっとも重要と考える導入フェーズにおいて私は以下3つのポイントを心がけています。
・1つめは利用者目線で説明をすることです。
利用者に機能・操作説明をする際は利用者の立場で考え理解しやすいような説明を意識しています。
たとえば機能ごとに1つ1つ説明をしても運用イメージがつかずわかりにくいため、運用の流れに沿って説明をしています。
他には基幹システム入替えのプロジェクトの場合は、現行基幹システムと新基幹システムの機能・運用比較リストを作成して説明する工夫もしています。
・2つめは機能の利用者を把握して説明することです。
操作説明の前に、誰がどの運用・機能を実施するか把握して説明を実施しています。
新しいことを覚えるとなった際はからだが無意識のうちに緊張してしまいなかなか理解できません。また説明が長いと疲れて集中力も落ちてしまいます。どこが自分にとって重要な箇所でもっとも集中して聞くべきかを事前に把握してもらうことでより理解していただけます。
・3つめはトラブルの発生を予測(計画)することです
基幹システム導入にトラブルはつきものです。トラブルが何も発生しないプロジェクトは存在しないと考え、トラブルも計画するようにしました。要するにトラブル内容と対処を事前に予測し定義づけておきましょう。
そうするとトラブルが発生したとしてもすぐに解決できマイナス印象を抑えることができます。
まとめ
品質が高い基幹システムを作り上げるために心がけているポイントを説明させていただきました。
私はバグがなく、使い勝手もよく、スムーズに稼働できる基幹システムをめざし、できることは他にないか日々考えプロジェクトを進めています。
さいごに1番重要視しているポイントをお話します。それは、利用者の満足を第一に考えていることです。長い期間をかけてプロジェクトを進めていきますが、利用者の喜ぶ顔を見ること、感謝の言葉をいただくことが一番のやりがいであり、その目標を達成するために今日もシステム品質を高めています。
2022/1/7