目次
こんにちは。SMHCでエンジニアとして働いているY Yです。
私は現在、大手通信事業者が提供する電話音声自動応答システムの開発・保守に携わっています。
電話をかけると音声案内が流れ、利用者の操作に応じて必要な手続きや問い合わせ先へ案内される――。多くの人が何気なく利用しているサービスですが、その裏側では、既存の仕組みを正しく理解し、品質を守りながら機能を追加していく開発が行われています。
この現場で大切なのは、技術力だけではありません。
分からないことを早めに相談すること。相手が答えやすいように情報を整理して質問すること。そして、自分一人で抱え込まず、周囲と協力して課題を解決することです。
今回は、電話音声自動応答システムを支える仕事の内容や、現場で身についた力、実際に働いて感じる難しさについて紹介します。
多くの利用者を支える、電話音声自動応答システム
私たちが開発・保守しているのは、通信業界で使われる電話音声自動応答システムです。
利用者からの電話を受け付け、音声案内や入力内容に応じて、必要な情報や手続きへ導く役割を担っています。
「こちらは○○です。××をしたいかたは1を、△△をしたいかたは2を押してください」のような音声案内のことです。
私の担当は、稼働中のシステムに対する機能追加と保守開発です。
すでに多くの機能が動いているため、新しい機能だけを見て開発すればよいわけではありません。既存の処理や業務上のルールを理解し、変更による影響を確認しながら、安定して使い続けられるシステムをつくる必要があります。
約20名で取り組む、長期継続プロジェクト
プロジェクト全体は約20名のチームで進められています。
SMHCからは、社員とパートナーを合わせた4名が参画しています。
短期間で納品して終了する案件ではなく、継続的に機能の追加や改善を行う長期プロジェクトです。そのため、目の前の作業を終わらせるだけでなく、これまでの経緯や既存仕様を理解し、チーム内で知識を共有していくことも重要になります。
長く関わるからこそ、担当できる範囲が少しずつ広がり、自分自身の成長も実感しやすい現場です。
私自身も、参画当初から現在と同じ範囲を担当していたわけではありません。最初は一つの案件における工程の一部からスタートし、経験を重ねるなかで、少しずつ任される仕事が増えていきました。
要件整理からテストまで。開発工程を一貫して経験する
私の担当範囲は、要件整理、設計、開発、テストです。
決められた設計書のとおりに実装するだけではなく、「何を実現する必要があるのか」、「実現するためにはどう作業を進めていくか」を整理する段階から関わります。
日々の業務では、主に次のような作業を行っています。
- 要件の確認と整理
- 設計書の作成・修正
- ローコードツールを使った実装
- Javaによる実装
- テストケースの作成と試験
- 不具合の原因調査と修正
- チームメンバーとの相談や作業調整
案件によっては、自分の担当作業だけでなく、ほかのメンバーへ作業内容を伝えたり、進め方を調整したりする役割も担っています。
会話と確認を重ねながら進める1日
一日は、チームの朝会から始まります。
その後は担当する設計や開発を進め、プロジェクトの定例会、自社チームのミーティングなどを挟みながら作業を続けます。
会議では、進捗を報告するだけでなく、認識のずれや不明点を早い段階で解消することを意識しています。
特に既存仕様が複雑な場合、推測だけで作業を進めると、後になって大きな手戻りにつながる可能性があります。
「ここまでは確認できている」「この部分の判断材料が足りない」と状況を整理し、適切な相手へ質問することも、開発業務の大切な一部です。
ローコードとJava、それぞれの良さを生かす開発
このプロジェクトでは、ローコードツールとJavaの両方を使って開発しています。
ローコード開発というと、画面上の操作だけで簡単にシステムをつくれる印象があるかもしれません。しかし、実際には業務要件や既存仕様を理解し、処理の流れを正しく設計する力が必要です。
ツールの使い方だけを覚えても、品質の高いシステムはつくれません。
一方で、ローコードだけでは対応しにくい処理については、Javaによる実装も行います。データベースにはPostgreSQL、ソースコードの管理にはGitLabを使用しています。
大切なのは、技術を使い分ける判断力
この現場で身につくのは、特定の技術の操作方法だけではありません。
要件や既存システムの構成を踏まえて、ローコードで実現する部分と、プログラムとして実装する部分を判断する力が求められます。
また、要件整理からテストまで幅広く担当するため、自分の実装が前後の工程にどのような影響を与えるかも意識するようになります。
一つの工程だけを見るのではなく、システム開発全体を見渡す力を伸ばせることが、この案件の魅力です。
一部分の担当から、案件全体を動かす立場へ
参画当初は、一つの案件における工程の一部を担当する予定でした。
しかし、経験を重ねるなかで任される範囲が広がり、現在は要件整理からテストまで案件全体を担当しています。さらに、ほかのメンバーへ指示を出しながら、複数の案件を並行して進めるようになりました。
担当範囲が広がった背景には、技術面だけでなく、報告・連絡・相談や問題解決への取り組み方もあると感じています。
実装だけでなく、設計や要件整理、さらに周囲と連携しながら案件を進めるところまで経験できていることは、自分自身のキャリアを考えるうえでも大きな経験になっています。
「自分で全部やる」ことが、自立ではない
仕事に慣れてくると、自分の力だけで解決しようとしてしまうことがあります。
しかし、複数のチームや担当者が関わるプロジェクトでは、一人で長く悩み続けることが、必ずしも良い結果につながるとは限りません。
自分で調べるべきことと、周囲へ確認すべきことを見極める。相談するときは、状況や試したこと、確認したい点を整理する。
こうした動きができるようになったことも、この現場で得られた大きな成長の一つです。
この案件で感じる「品質」の難しさ
このシステムには、比較的高い品質が求められます。
決められたテスト項目を確認するだけでは、十分とはいえません。通常の操作だけでなく、想定外の入力や処理の組み合わせ、既存機能への影響など、さまざまな観点から確認する必要があります。
電話音声による案内は、画面を見ながら操作するシステムとは異なります。
利用者がどのような順番で操作するのか、案内を聞き逃した場合にどうなるのか、途中で異なる操作をした場合にも正しく進められるのか。利用者の立場を想像しながら品質を確認することが重要です。
最初は、業務知識と既存仕様を覚えることから
参画して最初に苦労したのは、業務知識と既存仕様の多さです。
長く使われているシステムには、これまで追加されてきた機能や、それぞれの仕様が存在します。一度にすべてを覚えることは難しく、資料を確認しながら、分からない点を周囲へ質問して理解を深めていきました。
現場には親身になって話を聞いてくれるメンバーが多く、相談しやすい雰囲気があります。
SMHCの参画メンバーによる定例会も開いているため、プロジェクト内では相談しにくい悩みや、仕事の進め方について話す機会もあります。
客先のプロジェクトに参画していても、自社のメンバーとのつながりがあり、現場だけで悩みを抱え込まずに相談できることは、安心して働ける理由の一つだと感じています。
一人で抱え込まず、チームで答えを探せる人へ
この案件で特に活躍しやすいのは、周囲と協力しながら仕事を進められる人です。
- 不明点をそのままにせず、早めに質問できる
- 相手が答えやすいよう、状況を整理して相談できる
- 自分の担当範囲だけでなく、チーム全体を意識できる
- ローコードとプログラミングの両方に興味を持てる
- 品質に対して、さまざまな角度から考えられる
- 新しい業務知識や既存仕様を粘り強く学べる
反対に、一人で黙々と作業することだけを望む方や、与えられたタスクの範囲だけをこなしたい方には、合わない部分があるかもしれません。
このプロジェクトでは、チームや関係者との確認、相談、調整が欠かせないからです。
もちろん、最初からすべてができている必要はありません。私自身も、実際の仕事を経験し、周囲と協力しながら、少しずつできることや任される範囲を広げてきました。
電話の向こうにいる利用者を、チームで支える
電話音声自動応答システムは、普段はその裏側を意識されることの少ない仕組みです。
それでも、多くの利用者が必要な情報や手続きへたどり着けるよう、開発チームは機能の一つひとつを設計し、実装し、さまざまな観点から品質を確認しています。
ローコードとJavaを組み合わせた開発に挑戦したい方。
要件整理からテストまで、開発工程を幅広く経験したい方。
そして、一人で完結するのではなく、仲間と相談しながら課題を解決していきたい方。
私たちのチームには、そうした方が力を発揮し、担当範囲を広げていける環境があります。
今できることを生かしながら、実装から設計、要件整理へと少しずつ担当領域を広げていきたい方にとっても、さまざまな経験につながる現場だと思います。
チームとして良い雰囲気をつくりながら、一緒にサービスを支えてくださる方をお待ちしています。