SAP の保守・開発業務で心がけていることについて

プロアクシアコンサルティングでオープンソリューション事業部に所属しています T.I です。
普段の業務では SAP の保守を中心にアドオンの改修や開発を担当しています。本ブログでは私が日々の業務の中で心がけていることについて共有したいと思います。

プロアクシアでの役割とこれまでの経験を教えてください

現在、オープンソリューション事業部に所属していますが、SAP の保守を中心に稼働後の機能拡張や機能変更に対応するためのアドオン開発などを担当しています。

1999年から SAP に携わっており要件定義、アドオン設計、ABAP 開発、データ移行・シスム保守まで、上流から下流まで一連の業務を担当してきました。その中でもアドオン設計、ABAP 開発で帳票に携わることが多く、納品書や請求書、物流作業の作業用帳票などを担当して来ました。

保守作業で心がけていることについて

保守業務を円滑に進めるためには、日々接しているユーザーと信頼関係を構築するのが重要だと考えています。信頼関係を構築することで、障害時や改修時なのどの作業について円滑に進めやすくなります。

このためにも、日々の保守業務においてユーザーからの問合せなどの対応を実施する際は、ユーザーの疑問点を解消できるまで丁寧な説明を心がけています。また、期日を厳守することや、適切なコミュニケーションをとることもユーザーから信頼していただくためには重要なことだと思います。

アドオン開発作業で心がけていることについて

開発業務の各フェーズで多少内容は異なってきますが、ユーザーやメンバーといかにうまくイメージや情報を共有するかが一番重要だと考えています。
それぞれのフェーズで、どのような点を重視しているか説明していきたいと思います。

要件定義フェーズ

要件定義フェーズでは、ユーザーと対応内容と方針を共有することが重要だと考えています。

要件定義でユーザーにヒアリングする場合は、望まれている機能だけではなく、なぜその機能が必要なのかの背景や意図の確認を行ない、システム全体を見て適切な対応方法を決定する必要があります。

また、実業務を担当されていない担当者と調整する場合は、ユーザーの業務負荷を危惧されることが多いので、使い勝手が今までとどのように変化するのかを中心に、業務負荷の変化についても説明を行うことを重視しています。

保守段階での追加開発においては、実現するための必要工数も重要な判断材料となるため、できるだけシンプルな方法で要件を満たせる対策を提案することも重要です。

設計フェーズ

設計フェーズでは、ユーザーと設計者と開発者で開発方針を共有することが重要だと考えています。

帳票開発のプログラミング自体はそれほど複雑ではないのですが、完成した物がイメージと異なるとユーザーから指摘をいただくことがあります。このため、設計の段階から出来るだけ実際に出力されるイメージに近いものを Excel などを利用して作成することで、ユーザー、設計者、開発者で完成形を共有し認識齟齬をなくす努力をしています。

同じくレポート機能の設計においても、設計の段階で入力例付きで画面遷移を説明したり、入力項目のチェックタイミング(エンターキー押下時 or 保存時) など、業務のイメージが付きやすい資料を作成することを意識しています。        

また、設計書にはロジックを記載するだけでなく、補足資料としてロジックのマトリックスを利用して発生する条件ごとの処理結果を図示することで、ユーザーや開発者に処理内容をイメージしてもらい易くなる工夫やテストパターンの漏れを防ぐ工夫を行っています。

開発フェーズ

開発フェーズでは、設計者と開発者で開発内容を共有することが重要だと考えています。

設計者の立場では、設計した画面で実現したい処理内容とデータのパターンを整理して、インプットとアウトプットに重点を置いて共有するようにしています。特にデータのパターンについては、表にしてそれぞれの動作を説明することで、テストの際に動作の確認漏れをなくすよう注意しています。

開発者の立場では、動作だけでなくパフォーマンスを考慮して設計書を確認するようにしています。そのうえで、自分でインプットとアウトプットを整理して設計者と認識合わせを実施し、認識違いがないように注意しています。

開発を行う際は、他の開発者と開発内容を共有できるように、保守しやすい形での開発を心がけています。プログラムソースにはコメントをきちんと記載するようにし、処理内容だけでなく引数、定数、変数などにも説明を残すことで、他の開発者が見ても容易に理解できるように意識しています。

また、コーディングの方法ついては、サブルーチンを活用してできるだけ部品化し、それぞれの処理をシンプルに記載するようにすることで、メンテナンス性を向上するようにしています。

テストフェーズ

テストフェーズでは、実施したテスト内容を分かりやすく共有することを心がけています。

テスト結果については出力結果だけでなく、入力内容も含めてどういった条件で得られた結果か分かりやすいエビデンスを残すようにしています。画面上で処理結果が確認できないものについては、どのような手順で結果を確認したかについても整理して残しておくようにしています。

それ以外で特に注意している項目として、外貨からの換算処理での小数点以下のデータの取扱いがあります。
外貨を円に換算する際に小数点以下の値が発生する場合があるので、切り捨て、切り上げ、四捨五入など小数点以下の値について、適切な取扱い方法で処理されているか確認するためのテストデータを準備してテストするようにしています。特に複数のデータを集計する場合は、それぞれのデータ毎に処理するのか、データを集計した後に処理するのかで結果は異なってきますので、処理を実行するタイミングについてもシステム全体の方針を確認してテストを行なうようにしています。

今後どのような案件に携わっていきたいと考えられていますか

現在は保守業務を中心に担当していますが、今後は新規導入案件にも積極的に参画していきたいです。できるのであれば、上流工程の部分でお客様の業務を SAP のシステムに適応させるための設計に携わっていきたいです。

今後エンジニアとして、どのように成長していきたいとお考えですか

保守業務を中心に担当していると、どうしても担当しているシステムに目が行きがちです。しかし、SAP の世界も日々新しいサービスや開発方法が追加されてきていますので、最新技術の情報収集を欠かさず新しい分野でも成長していきたいです。