変更を想定しないシステムはダメなのか

こんにちは。今日は久しぶりに新聞記事を採り上げます。日経新聞の企業面(10面)に今日から「消費増税の焦点」という連載が始まりました。

「消費増税」という表現には違和感を覚えますが、これは2014年4月と2015年10月に予定されている消費税率の引き上げの事を指しているようです。(といっても巷ではほとんどこの言い回ししかされていないようですが)

コンピュータシステムの中でも勘定系や決済系のシステムでは諸税法の改正などにより日々のメンテナンスを余儀なくされます。基準日や割合(率)、基準値の境界などの定数を書き換えなければなりません。ただ変えれば良いのではなく、新しい率がいつから適用されるのか、またどの範囲に適用されるのかといったことを緻密に管理していかなければなりません。

今日の新聞記事で採り上げられていたのは東日本旅客鉄道のIC乗車券といえばお馴染みの Suica です。記事によると Suica のシステムは、サービスインの期日を優先するため消費税率の変更機能の作り込みを見送ったそうです。おそらく見送った機能はそれだけではないと思いますが、それでも、今度の税率引き上げ期日までに消費税率変更機能を実装するには1年以上の期間と数十億円の費用を見積もっているとのこと。

記事はここまでの状況を淡々と伝えるにとどまり、このことについてどう評価すべきかについては何も書かれていません。これは非常にげんなりする状況です。だからといって設計者や当システムのオーナーを簡単に責めるべきではないと思います。サービスインの期日を優先するということはビジネス戦略上の判断だったと思います。2000年問題の時もそうでした。多くのシステムでは将来の改修費用よりも現在のストレージ費用の節約を選びました。しかしその一方で、必ずやって来る2000年を想定して最初から年を4桁で格納するように設計されたシステムも存在していたのです。

最初からあらゆる変更に対応できるように、あるいはあらゆる業務に対応できるように汎用的なシステムを望むユーザーは多いです。しかしそのためにはシステムの設計からテストまで費用も時間もかかってしまうし、汎用的であるということは裏を返すと「どの局面においても使い勝手がイマイチ」となるリスクもあるのです。重要なことはあらゆる変更や変化を想定した上で、どこで折り合いをつけるかというトレードオフであるということ。そして判断には少なからず責任が伴うということではないでしょうか。


「パーフェクトソフトウェア」ジェラルド・M・ワインバーグ著

皆さんはシステム障害のニュースを耳にしたとき、どのように思われるでしょうか。私はこれまで何度もソフトウェアのテストを行ってきましたが、それでもシステム障害のニュースを聞くとつい「本当にテストしたの?」と思ってしまいます。これは本書の前文に紹介されているエピソードと丁度重なります。そしてその反応は「テストをすれば完璧な製品ができる」という誤解からくるのだと指摘されています。実際、全くテストをせずにリリースされるソフトウェアというのは存在しないでしょう。しかし、テストの結果を正しく使えていないソフトウェアというのはそこそこあるかも知れません。本書はそんなソフトウェアのテストについての誤解を解き、ソフトウェアのテストについて様々な示唆を与える著作です。

本書に何度か出てくるテクニックとして、バグの分類が挙げられます。実際の開発現場ではバグ(障害)をどのように分類するかということがしばしば議論になります。(もっとも何も議論せずに決められているパターンも残念ながら多いです)よくある分類は重要度や優先度でしょう。ところが重要度や優先度はどちらかというと主観的な基準であるため、誰かが統一的な判定を下すのでなければ基準が曖昧になり、せっかくの分類が機能しなくなってしまいます。そこで弊社では本書で薦められているバグレベルによる分類を次のようにアレンジして現場に適用しています。

  • レベル0 ・・・他テストを妨害
  • レベル1 ・・・業務遂行不可
  • レベル2 ・・・作業効率低下
  • レベル3 ・・・頻発すれば問題

この分類のメリットは基準がどちらかというと客観的だということです。それでも最初は迷うこともありますが、それぞれどういうケースかということを考えていけば自ずと分類は決まってきます。例えばログのメッセージが不適切というケースでは、障害時の原因究明に余計な時間がかかってしまうということで「作業効率低下」に分類できます。例えばサイズ0のファイルをDBに登録できてしまうというケースでは、通常の操作ではサイズ0のファイルを扱うことがないと考えれば「頻発すれば問題」に分類できます。このバグレベルのおかげで分類作業の効率が上がりました。これは一種の優先度による分類ですが、紛れもなくレベル0のバグは優先して対応すべきものです。極端な話、レベル3のバグであれば状況により対応を見送るという判断もあるでしょう。

本書でも紹介されているように、ソフトウェアの開発に理解がない(あるいは理解があると自認している)管理者や営業担当者が、開発者に対してバグゼロを要求するケースを何度も見てきました。しかし、何がバグであるかが自明なケースもあれば、ビジネス環境に応じてバグの基準は変化することもあり、仮にリリース時点でバグがゼロであったとしても(それもあり得ないのですが)それを将来に亘って保障することはできないのです。本書はテストを担当する技術者のみならず、開発チームに関わる管理者や営業担当者の方にも読んでいただきたい一冊です。

――――
書名:パーフェクトソフトウェア
副題:テストにまつわる幻想
著者:ジェラルド・M・ワインバーグ
発行:日経BP社/2010年5月31日
ISBN:978-4-8222-8429-9

社員を雇うべきか、雇わざるべきか?

昨日24日はIC協会の月例セミナーがあり、久しぶりに参加してきました。テーマは「ICから『社員を雇う』タイミングとは?そして、その陥りがちな落とし穴」というものでしたが、今回は少人数だったので全般を通して参加者同士の活発な意見交換ができました。去年「案件確保と料金設定」というテーマについての講演がありましたが、その続編という位置づけだとのことです。

初めにアイスブレイクとして参加者全員がそれぞれ「どんな話を聴きたいか」という点について順番に発言しました。参加者の中には社員の雇用を検討したことのある方だけでなく、過去に実際に社員を雇用されていた方もおり、序盤から生々しい話になりました。ですので、アイスブレイクを終えたばかりの段階で「もう結論は出てるよね」といった雰囲気になりました。

私は法人化してから「会社を大きくしないのか」とか「社員を雇わないのか」といった質問をされることが増えてきました。やはり「会社経営」という言葉の持つイメージがそういったものなのでしょう。ただ、何も考えずに社員を雇うというのはあまりにもリスキーで、社員を雇うべきかどうかというのはきちんと考えておきたいものです。また、一人で捌ける仕事量には限りがありますので、例えば多少大きな案件に取り組みたいと思った時、社員を雇った方がいいのか、協業という形態でチームを組んだ方がいいのかは悩むところです。そんな背景もあって私は参加しました。

講演者の実体験、また参加者の実体験を聴いている中で、社員を雇うことのメリット及びデメリットの比較があったのですが、どう見てもデメリットの方が大きい。少なくともデメリットの穴を埋めるほどのメリットはなさそうに思えました。別にIC協会のセミナーだからそういう結論になったのでは必ずしも無いと思いますが、クロージングでの参加者の感想を聴く限りでは皆さん同様の思いだったようです。少なくともICとして活動している人は一人で好きなように仕事をしたいからICになったというケースが多いはずなので、社員を雇って別の制約に縛られるくらいなら一人のままでいた方が良いというのは自然な思いではないでしょうか。

仮に社員を雇うとしても、今一人でやっている仕事を拡大していくということではなく、全く別の新しい事業を立ち上げて、初めから従業員を雇うという前提でビジネスを構築していく時ではないのかなと思いました。もちろん、そんな時が来るのかどうかは定かではありません。しかし、そのような心の割り切りができたことは大変有意義でした。

東日本大震災から一年、改めてBCPを考える

今日はJSDGの東京ミニ研修会が開催され、参加してきました。今回のテーマはBCPです。東日本大震災から早一年が経ちまして、当時を振り返ると直接的な被害だけではなく、交通や物流の問題、在庫や仕入の問題、電力供給の問題等ビジネス環境に様々な影響をもたらしました。そこで急に注目を浴びたキーワードがBCP(事業継続計画)です。

今回は発表が2つありました。1つ目はBCMS(事業継続マネジメントシステム)についての発表でした。特に複数の拠点を持つ企業の場合、個々の拠点でBCPを策定していたりすると、それはそれで良いのですが、会社全体としては足並みが揃わないということがあり得ます。そこで、BCMSを規格化する動きが出てきているという要旨でした。ちなみにBCPとBCMの関係ですが、BCPは計画、BCMは運用でして、運用のための仕組みがBCMSということになります。ですのでBCPはBCMSにおいて用いられるものということです。災害対策、防災訓練は重要ですが、それ以上にマネジメントが重要なのですね。

尚、ここでいう規格というのは国際標準規格(ISO)のことで、ISO22301という規格がおそらく今年中には正式に発行されるのではないかということです。また、上位に当たるリスクマネジメントの国際規格としてISO31000というものも紹介されました。

2つ目は、東日本大震災発生時に実際にシステムダウンを体験された方の発表でした。震災を機に社内システムをクラウド化する動きも加速しました。しかし、クラウドサービスというのは原則としてどこにサーバが在るかは知らされていません。(中には国内にサーバが在りますと謳っているものもありますが。)特に海外にサーバが在る場合には、サーバが在る国の法律の制約を受けるという説明がありましたが、正直なところ私は余り意識していませんでした。問題になる頻度としては低いけれども影響を想定しておく必要はありそうです。最終的にクラウドサービスを選定し、社内サーバをクラウドに移行するに当たり、震災後検討に3箇月、準備と移行に1箇月かかったそうです。

その後休憩をはさんで意見交換・情報交換が行われました。普段聞くことができない事例をたくさん聞くことができ、大変有意義な研修会となりました。ここには全てを記載しきれませんが、一部ご紹介します。

  • やらなきゃいけないことは分かっている。では、本当にどこまでコストをかけられるのか。最後は経営判断でしかないが、その判断材料は充分に集める必要がある。
  • どこまでリカバリーを想定するかを判断し、その範囲を超える場合の覚悟を決めておかなければいけない。
  • BIA(ビジネスインパクト分析)は通常は起こりえないけど、起こったら大変なこと困ることは何かを考えることから始める。
  • 災害に限らず、原因はどうであれ何らかの理由で事業の一部が行えなくなった時に代わりにどうやるかを考えることが重要。原因型のBCPではなく機能停止型のBCPでないといけない。
  • 東京では地震の時のBCPよりもインフルエンザの時のBCP(社員の大半が出勤できない時の対応)の方が役に立ったそうだ。

作業に詰まったときの処方箋

仕事に取り組んでいると何かに詰まって作業が止まってしまうことがあります。私自身も時々そうなってしまうことがありますし、一緒に動いているメンバーがそうなってしまったことに遭遇したこともあります。

しかし、何かに詰まってしまった時、視野が狭くなって全く何も見えなくなってしまう人がいる一方で、そのような時でも自分を客観的に見ることの出来る人がいます。もちろん後者の方が建て直しが早く、まるで全てが順調に見えることすらあります。

作業に詰まるレベルにはどのようなものがあるか予め洗い出しておくことで、そういう状況に陥った時に気付きやすくなるのではないかと思い、やってみることにします。上から詰まり度合いが高い状態です。

  • 何をすれば良いか分からない。(取っ掛かり)
  • それは分かるが、どうすれば良いか分からない。(方法論)
  • やり方も分かるが、作業中に問題が発生した。(制約)
    • それは未知の問題である。
    • それは既知の問題である。
  • 問題はないが手際が悪い。(不慣れ、習熟度)
  • スムーズだが分量が多い。(捗っているように見えないだけ)
  • 時間が取れない。
  • モチベーションが低い。

他にもあるでしょうし、もちろん人によっても観点や粒度は異なるでしょう。一度こうやって整理しておくと、何で詰まっているのかが見えやすくなります。何で詰まっているのかが分かれば対処もしやすくなるのではないでしょうか。

雇われないシスアド

昨日はJSDGの研修会が金沢であり、発表者の一人として参加してきました。金沢での研修会は5年ぶりで、とても楽しみにしていました。先月の後半から全国的に寒くなってきましたが、日本海側は特に雪が積もっていました。私は上越新幹線と特急はくたか号を使って行きました。途中の越後湯沢付近はとても雪深く、その景色は圧巻でした。それでも新潟や富山に比べたら金沢は雪が少ないようで、駅から会場までの道中、そして研修中も吹雪く時間帯もありましたが、それ以降は晴れることはないものの天気が崩れることもなく、大変楽しい研修旅行となりました。

さて、研修会では私の他に2名の方が発表されました。トップバッターは私が担当させていただきまして、2人目は北陸電力で水力発電のダムを担当されている方の事例発表、3人目は会社の辞令(?)でスマートハウス(スマハ)についてレポートするため1か月間青森で生活された方の事例発表でした。具体的な内容は事情がありここには書けないことになっていますので割愛いたします。

一方、私は「インディペンデント・コントラクター」についてお話しさせていただきました。私はシスアドの会(JSDG)とICの会(IC協会)の両方に所属していて、実はシスアドとICってぶつからないよなぁと予てから思っていたのです。だったらJSDGのメンバーにICについて知ってもらったらいいのではないか、と考え今回のテーマを決めました。最初はICとは何かという話から始め、ICの持っている特性を紹介して、JSDGの皆さんはそのような特性をお持ちですよね、という風につなぎました。このテーマについては追々このブログでも触れていけたらと思います。

この話に端を発して幾人か共感のコメントや質問をしてくださいました。今回参加されたメンバーも仕事における立場やスタイルは様々ですので、もしかしたらピンと来ない方もいらしたかもしれません。ですが、まずは存在を知ってもらうことから始めて、そのうち「自分もICになってみようかな」と思う人が一人でも出てくれば嬉しい限りです。とはいえICに成ることが全てではありませんし、人によって向き不向きがあるのは事実です。でもそういった自分の性格を見極められるのもシスアドの素養の一つではないかなと思っています。


NPO法人インディペンデント・コントラクター協会
http://www.npo-ic.org/

プリンシプル・コンサルティング株式会社(IC協会初代理事長・秋山進さんの会社)
http://www.principleconsulting.co.jp/

株式会社田代コンサルティング(IC協会現理事長・田代英治さんの会社)
http://www.tashiro-sr.com/

常識という壁の向こう側

1月16日付の日本経済新聞1面(及び11面)に不確定性原理が成り立たないケースが発見されたという記事が掲載されていました。私は普段の仕事の上では直接関係のないトピックではありますが、理系の学部で量子物理学をかじった者としてはなかなか衝撃的で興味深いニュースです。どのくらい衝撃的かというと、物理学の教科書が書き換わるくらいと記事には書かれています。

不確定性原理なんて私たちの日常生活では耳慣れない言葉ですよね。しかもなんだか難しそう。詳細な解説は専門書に譲りますが、大雑把にいうとミクロの世界では「観察」すなわち「測定」という行為そのものが対象に関与してしまうため、正確な測定ができないという原理です。よく歌を歌うとき、一人で練習の時は歌えるのに、みんなの前に出るとうまく歌えなくなるのに似ていますね。似ていませんか?失礼しました。とにかく原理というのは「そういうものだ」として片づけられてしまうものであり、いわば「常識」です。

しかし、その常識が覆ったというのです。不確定性原理という殻を破ることができれば、例えば電子などの微粒子の正確な位置が測定できるということになります。電子の正確な位置を知ることができれば、研究及び実験によって電子を細かくコントロールすることができるかもしれません。電子をコントロールできればいったいどんな世界が待っているのでしょうか。なにしろこれまで常識では不可能とされていたことが、ある条件の下では可能となったのです。

今後この分野の研究は急激に進むでしょう。コンピュータが当たり前のように私たちの生活の中に入り込んできたように、この分野の研究の成果も当たり前のように私たちが利用する日が来るかもしれません。もし常識だからという理由で原理という壁に挑戦しなかったなら、このような発見はなかったと思います。私たちも是非見倣って常識とされていることに疑問を持つことから始めたいですね。

2012年仕事始め

あけましておめでとうございます。
本年もどうぞよろしくお願いいたします。

さて、私は仕事柄、稼動の日程はクライアント先に依存するのですが、今年はクライアント先の仕事始めが1月4日なので(以前のクライアントより早いです)、ちょっと早いですけど本日を仕事始めとしました。もちろんまだ体を慣らす程度です。ちなみに元日だった昨日は完全にオフラインの日で、一切ネットに接続しませんでした。年に1日くらいはそういう日が有っても良いかなと。

皆さんは一年の初めに計画を立てるタイプでしょうか。私の場合は計画と言うには忍びないものですが、ざっくりとした計画は立てています。昨年の仕事納めの後に、昨年の計画と実績を振り返りました。昨年は東日本大震災という大きな出来事もありましたし、仮にそこまで大きく無かったとしてもそれこそ想定外の出来事によって年初に立てた計画が頓挫することは良く有ることですよね。かといって全く何も達成できなかったということも無いと思うのです。――中にはそれではダメだと言う主義の方もいらっしゃるかもしれませんが、私はそれでも良しとしています。

ですから私は、達成出来た事と出来なかった事とをちゃんと振り返って新しい年の計画に反映するようにしています。出来なかった事については、何故出来なかったかという原因を探ると同時に、そもそもそれをやりたかったのか、今からでもやりたいのかということを考えるようにしています。それほどやりたくないもの、あるいはやる必要性が感じられないものは新年の計画から外します。中には当初必要性を感じていたが、状況の変化により必要性を感じられなくなったり、優先度が下がったものもあります。振り返ると言ってもあまりクヨクヨせずに、それはそれと割り切ってしまうことも必要でしょう。――何せ私はクヨクヨしやすいタイプなので――

昨年の最初のエントリーは「1年後の自分をイメージする」というタイトルでした。今年も1年後の自分のイメージを目指してスタートを切って行きたいと思います。

今年を振り返り、来年の目標を

今日は私が加入しているインディペンデント・コントラクター(IC)協会の忘年会に参加してきました。

私が座っていたテーブルにて「ビジネスパートナー(BP)をどのように見つけるか」というテーマを投げかけてみました。裏返すと「どのように自社をBPとして見つけてもらうか」というテーマとも通じるものがあるようですね。

何故私がこのような問いかけをしたかというと、新しいことをしようと思ったときに、自社だけでは力不足であった場合に、やはり頼れるBPの存在が必要になるのではと思っているからです。

議論を交わしているうちに思わされたことは、弊社はまだ事業内容を充分にアピール出来ていないということです。言うなれば「分かる人には分かる」というレベル。これではBPどころの話ではないなと。また、それが出来れば、反対にどの会社あるいはどの人が、どんなことが得意であるのかという事を把握して、弊社のニーズにマッチするパートナーを探すフェーズに移行できるのではないかと。

私自身はこれまでも充分に発信してきたと思っていたけれど、人柄とか考え方とか、そういう人間性の部分しか理解してもらえないような内容ばかりだったと思います。人間性も大事だけれど、BPとして見てもらう為には、少なくともビジネスの領域で弊社の強みは何か、得意分野は何かという事が分かるような内容でなければならないということを再認識しました。

もっと、普段どういった仕事をしていて、例えばITの支援といっても具体的にどんなことをしているのかということを、こまめに発信していく必要があると感じました。現実を目の当たりにして愕然としましたが、見方を変えれば、これで一つ来年の目標が出来たわけです。それだけでも今日の忘年会に参加して良かったと思います。

IC協会には今年も大変お世話になりました。来る年も、より活発に参加していきたいと思います。

「デスマーチ」エドワード・ヨードン著

本書はもう何年も前に一度読んだのですが、今年から「炎上プロジェクトから学ぶセミナー」というのを始めたこともあり、改めて読んでみようと思い立ったのです。

デスマーチ・プロジェクトと炎上プロジェクトは印象はよく似ているのですが、厳密には違っています。まず、デスマーチというのは著者のエドワード・ヨードン氏が「プロジェクトのパラメータが正常値を50%以上超過したもの」と定義しているものです。例えば、納期や予算が通常の見積の半分以下であるといった場合です。

それに対して炎上プロジェクトというのは、手を打たなければ約束を守る(契約を履行する)ことができない状況に陥ったプロジェクトのことで、誰かが定義したというよりはもっと俗っぽい言い方です。ヨードン氏の表現ではデスマーチ・プロジェクトは政治的な背景により意図的に作られたものですが、一方で、プロジェクトが炎上する原因はマネジメントの欠如です。そしてデスマーチ・プロジェクトは必ずしも炎上するとは限りません。同様に、炎上するプロジェクトが全てデスマーチとも限りません。そこははっきりと区別すべきだろうと思います。

見方を変えると、デスマーチ・プロジェクトは(火を点けられて)最初から炎上しているプロジェクトとも言えるでしょう。しかし、本書は単にデスマーチ・プロジェクトの実例を取り上げて、その悲惨さ・異常さを揶揄(やゆ)するのが目的ではありません。むしろ本書ではデスマーチを肯定的に捉えており、デスマーチ・プロジェクトをどのようにマネジメントして成功に導くかというテーマを真剣に展開しているのです。

普通のプロジェクトではマネジメントに多少不備があるくらいでは成功率はそれほど下がらないかもしれませんが、デスマーチ・プロジェクトの場合ではほぼ間違いなく失敗します。本書では、デスマーチ・プロジェクトの処方箋として「トリアージ」という考え方を提唱しています。(他にも、予防策として「プロマネ版フライト・シミュレータ」を用いた訓練を提唱していますが、興味のある方は読んでいただきたいと思います。)

トリアージというのはもともと野戦病院での限られたリソースの中で最高のパフォーマンスを導き出すための考え方です。全ての事項に対処できないので、基準を決めた上で4段階の優先順位をつけ、優先度の高いものから対処していくのです。このことは炎上してしまった普通のプロジェクトでも効果があります。ここで重要なのは利害関係者が「全ての事項に対処できない」という共通の認識を持つことです。「全部やるのが当然」という根深い完璧主義の文化が、容赦なく足を引っ張ることになるからです。

その文化についてですが、デスマーチをマネジメントするにあたっての大きな障害に成り得るとヨードン氏は指摘しています。そして文化を変えることはできないが、文化から隔離することはできる、とエールを送っています。いずれにせよ、本書で紹介されているいずれの方法も特効薬ではなくただの薬であり、何よりもマネジメントを継続していくということが肝要ですね。

――――
書名:デスマーチ 第2版
副題:ソフトウェア開発プロジェクトはなぜ混乱するのか
著者:エドワード・ヨードン
発行:日経BP社/2006年5月8日
ISBN:4-8222-8271-6