もうすっかりお屠蘇気分は抜けたでしょうか?1月のアメリカはスーパーボールに向けて熱気が高まっているところです。

 「一年の計は元旦にあり」と,私は年頭計画を一生懸命に実行しているところです。皆さんは今年はどんな計画を立てましたか?

 「一年の計」は,New Year’s Resolutionsと言います。このResolutionは国連決議のResolutionと同じもの。私は例年,「ダイエット」「ジョギング」「毎日ブログを書く」という計画を立てますが,全て三日坊主。今年は「ヨガ体操」「締め切りまでに入稿する」を決意したのですが,早くも挫折の気配が・・・・・・(sigh)

きちんと伝わる障害報告を書く

 さて,障害発生時に使う英語シリーズも3回目を迎えました。今回は単語レベルではなく,バグを説明するセンテンスを推敲してみたいと思います。まず,日本人技術者が書いた次の障害報告の文章を見て下さい。

例文1:

Unknown protocol packets cannot be forwarded in particular condition when the new feature is enabled.

 ふ~む,こんな障害報告を受けた担当者は,きっと首を傾げてしまうでしょうね。この文では「パケットが転送されない」ことしか伝わりませんよ。文法的な問題はさておき,どのような状況下でパケットが転送されないのか,全く転送されないのか,それともある特定のパケットだけが転送されないのかが,上記の文では説明されていません。

 そのまま訳せば,「新機能がオンになっていて,かつある特定の条件が揃うと,何らかのプロトコルのパケットが転送できなくなる」となります。書き手はそのように意図していなかったにしても,この英文ではそう解釈されてしまいます。

 まずin a particular conditionを具体的に説明する必要があります。読み手は「トラフィックが輻輳している時」や,「ある特定の条件を設定した場合(コンフィギュレーション)」などを推定するでしょう。再現条件の鍵にもなりますので,in a particular conditionをできるかぎり詳しく説明すると,その後の切り分けがスムーズに進みます。

 「この障害が発生する条件は不明であるが,場合によってパケットが転送されないことがある」と言いたい場合は,Packets are not always forwarded. もしくは Sometimes packets are not forwarded. というのがよいでしょう。cannot be forwardedという表現だと,オペレータが転送(forward)しようとしたけれども転送できなかったというニュアンスを感じます。「転送されていかない」という状態を伝えたい場合は,packets are not forwardedの方がいいです。

 「パケットが転送されないが,どのタイプ(プロトコル)のパケットであるかは把握できていない」と言いたい場合には,次のような文章が適当です。

Some packets are not forward when the new featured is enabled. We have not identified packets of which protocol are affected.

 このように,上手な英語での障害報告には「英語的(具体的)な発想」が不可欠です。

 もう一つやってみましょう。Let's try another one.

例文2:

Global Active Timer is reset upon retry timeout to the server. There seems to be a problem when number of server is below two. Note that primary server only case cannot be problem as there is no failover.


 「サーバーが2台以上ある(冗長構成になっている)場合,サーバーへのアクセスをリトライしてタイムアウトすると,Global Active Timerがリセットしてしまう」という障害報告をしているようです。でも,その意味が伝わっているでしょうか。

 第1文のtimeout to the serverは英語では意味を成しません。re-try timeout to the serverは,re-tried access to the server times outと言うべきでしょう。この場合のTimeoutは名詞でtimes outのtimeは動詞です。

 When the number is below twoは,number is oneに置き換えられますよね。英語は「単純かつ明快」な表現がモットーですので気をつけましょう。

 第2文は,このままだと「サーバーの数が2未満だと問題があるようです」という意味になり,第1文とつながりません。リンクさせるには次のように言い換えるとよいでしょう。

This problem happens when there is only one server.

 「障害報告はできるだけ具体的に書く」というのが鉄則です。この例の場合,リトライがタイムアウトするのは,フェールオーバーがかかる前なのか,かかった後なのか,主系/冗長系どちらのサーバーにアクセスしようとしているのかを明確に書くと,このメッセージを受け取ったエンジニアはすぐに状況を把握することができるはずです。

 例えば,次のような英文であれば,障害の状況は伝わりやすいでしょう。

The global active timer resets when a re-tried access to the server times out. This problem happens when there are two servers. This problem should not happen when there is only one server.

 「この問題はサーバーが冗長構成になっていなければ発生しないのでしょうか?」と質問したい場合は,次のように表現します。

Would this problem happen if there was no server redundancy for failover?

 この場合のWouldは,couldでもOKです。

 いかがでしたか?障害報告を行う場合は,文法を心配するよりも,発生条件や事象を具体的かつ明確に記述するように心がけましょう。もともと日本語は曖昧な言語なので,頭を英語的発想に切り替えてから作文する訓練が必要ですね。


今年の冬は世界的に温暖というのに,アメリカの中西部は記録的な寒波に見舞われている。カリフォルニアの農業地帯では,収穫直前のアボガドや柑橘類が被害に遭い,被害総額は数百億円にのぼるという。
[画像のクリックで拡大表示]