2011年10月20日木曜日

Excelの列数と品質管理


作業標準化で品質は向上するか?
会社ではQMS(品質管理システム)と言う大運動会の時期です。「品質管理」という仕事を「やらされ」て思うのは、「属人化」した個人能力に頼るのではなく、プロセス改善により「組織的」に品質を担保することが、日本の会社では重視されていることなんだということです。つまり、野中郁次郎さんが言うところの、「暗黙知」から「表層化」された「形式知」で品質が管理されているかが重要視されている。理由として考えるならば、日本の会社は、実力主義を好まないムラ社会的な組織が多く、要は実力がないヒトでもある程度の品質が確保されるよう、作業を標準化(形式知)が必要となったのではないかと考えます。
さて、本当に作業標準化によって品質とは確保されているのでしょうか?

日本企業とExcel文化
日本企業では非常にExcelが好まれています。前にインドのプログラマと話をしていた時に、日本人から5mm四方のさいの目が並ぶExcelのドキュメントを渡された時に、その方が「クレージー」と思わずこぼしてしまったと言っていました。これほどまでに日本人がExcelが大好きなのは、やはり縦の横の枠にはめ込まれることを「日本人」の血が望んでいるのでしょう。
今回の私の仕事場での品質活動において、ある問題(トラブル)1件(1行)あたりに、Z列まで存在する項目を埋めるExcelの品質文書が届きました。これを埋めることで品質プロセスが担保されるということでしょう。そのExcelの歴史は長いらしく、どっかよそのプロジェクトで利用されているが「改善」され、私のプロジェクトに流れ着いてきました。1件の内容に対して、チェックする列が多く網羅性が高いことから、品質が向上するというロジックなのです。
さて入力してみると、ある列についてはほとんど同じ内容が入るか、もしくは適当にならざるを得ない項目が多く存在することに気づきます。それを入力している内に、その作業の単純さに怒りが覚えてきます。ある項目については当たり前すぎる内容だったため(OSがWindowsの製品にも関わらず「OS」という区分が存在するため)空白にしたのですが、そしたら品質担当のAさんが言うに「とりあえず埋めないと品質を確保したことにならない」とのこと。いや、本当に「クレージー」です。

増え続けるExcelの列数
品質管理する人にとっては、Excelの列を増やすことが「改善」になっているという意識が高いようで、その結果何かのプロセス改善を行えば、Excelの列が増えることになります。しかし本当に品質を確保するためには、列数を追加するときに一緒に列数を削除しなきゃいけない。開発者はそこまで時間に余裕があるわけではないし、市場はタイムリーに製品を要求してくる。お客様のニーズ・ウォンツを満たすためには、製品を効率的にリリースするということが最重要課題なわけです。それであれば、本当に大事なのは、必要のない無駄な「列」をいかに省けるか、必要のない仕事を以下に減らせるかが、本当の意味での品質活動になると考えるのが筋ではないか?
今回私が「クレージー」だと思った品質管理者は、きっと埋まってないと気が収まらないという性格なのでしょう。きっと、私が埋めたExcelを見て壮観だったのではないかと。本当に良い「管理」とは、「管理」されることなく、効率的に組織が機能するように仕組むこと。より列数が多いExcelを埋めることが「管理」したことにはならない。今回の例で言えば、単なる品質管理者のマスターベーションに私がつきあわされたということです。

前例主義による列の増大
日本の会社において、「列」を増やすより減らすことが難しい理由は、「前例主義」によるものと考えます。「前例」を破ってまで良くすることにリスクがある、またはリスクがあるように思われているのでしょう。かくいう私も、以前、問題点管理をExcelからTracというOpenなWebツールを使うようにした時には、「会社で前例がないもの使わない方が良い」と言われ、それどころか「おれが君の頃には土日出勤して工程表を手書していたんだ!」という精神論を聞かされる始末でした。つまり、前例を破って「失敗」したときのリスクを考えた場合には、前例を守ってやり過ごした方が、結局楽ということなんでしょう。このサラリーマン精神で、本当に製品の品質は良くなるのでしょうか?絶対に違います。常に向上する気持ちを持って、変化し続けるものしか残れないのが自然の摂理なはずです。

Creators or Servers
作業標準化により本当に品質が良くなるかという議題に結論を出すのは難しいですが、未来における作業標準化の必要性について語ってみます。IBMの人工知能コンピュータ「ワトソン」は米国のクイズ番組で76週連続チャンピオンに買ったそうです。クイズではもう人間はコンピュータには勝てないのです。コンピュータの得意とする仕事は「標準化」された作業です。もし今、標準化されて品質が保たれているような作業は、10年もしないうちにコンピュータでやらせた方が良いという時代になる訳で、そうなれば人間にやらせる必要はないはず。「標準化」された時点でアルゴリズムにしてしまえば、「標準化」Excelツールは必要ないということです。
で、長くなりましたが、私が言いたいことは、「品質文書を俺のプロジェクトに適用するんだったら、適用される「お客様」の気持ちにたって、創造性を十分に発揮して、こだわりを持った作品に仕上げて、ツールを適用しろ!」ということです。いまどきIT企業がExcelって。。。

2011年9月6日火曜日

GWT Maven Pluginでマルチプロジェクト

マルチプロジェクトでGWTを動作させたかったのだが、なかなかうまくいかなかった。 が、<compileSourcesArtifacts>を使用して初めて動作したので、備忘録の意味でも残しておく。

  • 参照するプロジェクト(artifactID=gwt-sample)
  • 参照されるプロジェクト(artifactID=gwt-module)

  • <!-- GWT Maven Plugin -->
    <plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>gwt-maven-plugin</artifactId>
     <version>2.3.0-1</version>
     <executions>
      <execution>
       <goals>
        <goal>compile</goal>
        <goal>test</goal>
        <goal>i18n</goal>
        <goal>generateAsync</goal>
       </goals>
      </execution>
     </executions>
     <configuration>
      <runTarget>Sample.html</runTarget>
      <hostedWebapp>${webappDirectory}</hostedWebapp>
      <i18nMessagesBundle>
       jp.tkym.labs.gwt.client.Messages;
      </i18nMessagesBundle>
      <!-- 参照するプロジェクトを指定します. -->
      <compileSourcesArtifacts>
       <!-- [group-id]:[artifactId]を指定します. -->
       <compileSourcesArtifact>
        jp.tkym.labs:gwt-module
       </compileSourcesArtifact>
      </compileSourcesArtifacts>
     </configuration>
    </plugin>
    
    module側にはsource.jarを生成するようpomを設定する
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
         <execution>
          <id>attach-sources</id>
          <goals>
           <goal>jar</goal>
          </goals>
         </execution>
        </executions>
       </plugin>
    

    2011年8月17日水曜日

    Holstee Manifesto

    Holstee Manifestoポスターが届いたので、早速部屋に飾ってみた。
    さっすがオシャレだし、書いてある内容もシンプル。



    これはあなたの人生。だから、いつでも大好きなことをしていよう。
    何か気に入らない点があるなら、変えればいい。
    いまの仕事が気に入らないなら辞めればいい。
    時間が十分にないならテレビをみるのを止めればいい。
    愛する人を探さなくていい。
    自分の大好きなことに夢中になっているあなたを、愛すべき人が待っていてくれます。
    穿ったものの見方は止めればいい。そう、人生はシンプル。
    感情は全て美しい。何かを食べるときは、最後の一口まで味わう方がいい。
    考えも、腕も、心も、全て新しいコトやヒトに向けよう。
    お互いの違いを許容して、僕たちは結ばれている。
    出会った人には「あなたの情熱はなに?」って聞いてみよう。そして自分の夢も共有しよう。
    旅はするべき。道に迷うことで自分自身を発見するのだから。
    どんなチャンスも一度きり、だからチャンスを確実に掴もう。
    人生とは、あなたが会う人と創り出すもの。
    だから今すぐ何かを創り始めよう。
    人生は短い。だから夢を生きよう、情熱を持って。

    2011年8月14日日曜日

    電子立国日本の自叙伝



      10年前くらいに放送されていたNHKスペシャル「電子立国日本の自叙伝」を最近NHKオンデマンドで見る機会があったのですが、その内容が非常に面白かったのでご紹介。

      1960年代後半、当時コンピュータといえば、机と同じくらいのサイズが当たり前の状況。日本では「そろばん」という文化があり、世界でも珍しく卓上計算機のニーズが高く、当時の複数の日本大手電機が電卓開発にこぞって乗り出すこととなり、そして日本国内で「電卓競争」が始まる。「電卓競争」が激化する中、計算装置や半導体装置の小型化が進む。そして世界最初のLSIを搭載した小型計算機を「ビジコン」が開発する。だが、厳しい競争に耐えきれず「ビジコン」は倒産。当時「ビジコン」とLSIを共同開発していたIntelが、「ビジコン」から独占販売権と基本特許をそのまま買い取り、Intelが世界No.1の半導体企業として誕生することとなる。

      大学在学中、当時授業を教えてくれていた教授が番組の編集に協力していたことから、この番組を授業で流していたのを思い出す。世界の覇権を握るくらいのイノベーションを簡単に海外に流出させてしまう、当時の経産省を批判していたような思い出があります。Intelの覇権が現在に至っても続いていることを考えると、とんでもない確かにトンでもないことです。

     さて、最近は、原発の事故もあったため、自然エネルギーやスマートグリッドが注目されていますが、それらを実現するための最重要技術が電池・バッテリーと技術となります。一昔前は、そのほとんどが日本メーカで提供されていましたが、これがもう昔の話。今は韓国が1位で2位も中国に奪われています。日本の大手メーカは、バッテリー産業を21世紀版「産業の米」と捉え、いち早く研究開発費を投入し、また、ハイブリット車などの需要もあったため、バッテリーでは世界のトップを走り続けていました。それが21世紀に入ると、サムスンがメモリや液晶でやってきたやり方と同じ手法でバッテリー産業に参入してきています。つまり、日本の研究者を高額な報酬で引き抜きを行うアノ手法です。ちなみに、5年ほど働くだけで、日本での一生分の給料となるそうですから、引き抜かれた日本人を非難できないです。

     本来、バッテリー技術者の流出を止めるためには、まず、特定の研究者の給料をあげる等の優遇を行う必要があるわけですが、そんなことは日本企業では難しいのが現実のようです。ちなみにこの話は、私が勤める会社の元副社長がブログで書いていた内容です。元副社長は「日本は妬みの文化なので、このような格差を生むと会社がバッシングを受けるだろう」のようなことを書いてました。なるほど、確かに今のマスコミの報道を見る限りだと、そのように思います。

     「技術立国」だと言われている日本ですが、2つの事例を見返す限り、「技術」を簡単に手放しすぎていると思うわけです。せっかく生まれたイノベーションを上手にオペレーションできないところが日本ってことなんでしょうね。

    2011年8月6日土曜日

    Macbook Air を買ってみた。

    Desctop PCとNotebook PC

    長年、デスクトップPCを継続して愛用していました。やはり性能に対するコストパフォーマンスがノートPCは悪かったというのが最大の理由です。わざわざ、外に持ち出してまでパソコンなんて触ることないし、外出中はほとんど電車に乗っているか、歩いているかなので、スマートフォン程度のサイズで十分だという理由で。
    さらに言うと、スターバックスで襟を立てたOLさんがノートPCで、さも誇らしげにタイピングしている姿を見た日には、「かっこいい思ってるのか、この薄っぺらい人間が!」と心の中で毒づいています。
    やっぱ男だったら、PCはWindows、エディタは秀丸、メーラーはBecky。そんな男を満足できるのは、最高の実行性能を計測するCPU、マザーボードのスロットを埋め尽くす大容量メモリ、無尽蔵のディスク容量を搭載した男気溢れるデスクトップPCだと確信していたのです。
    そうは言っても、近年のノートPCの価格破壊ぶりには、大きく興味を抱いていたのは事実。さらにディスクにSSDを搭載した製品が出回ってきているこの1、2年、浮気心がくすぶり続けられます。そんな、neutralな気分でいた先月、最新型の「Macbook Air」が発売されました。最新型のIntel CoreシリーズCPUと、128GのSSDを標準搭載。さらに驚かせたのは、88,000円~という驚きの価格。その時の私は「スティーブ・ジョブスになら抱かれても...」と心が倒錯し、Macbook Airの購買欲にとりつかれたという次第であります。


    見かけだけじゃないMacbook Airの実力

    Macbook Airが届いたその日、私は一心不乱にセットアップ作業を進めようと思ったのですが、そこはApple、やはりさすがだなと感心しました。通常Windows PCを買ったら、ネットワーク接続等から、「ダサい」ソフトウェアのアンインストール作業までの地味な作業を延々とやることにある。
    Macの場合、電源をつけてからの始まりがまるで映画のような演出で、さらにインストール作用も最小限になってました。これがコンシューマ市場で圧倒的に支持される理由なのだと、改めて感心したしたのです。

    今回、まずインストールしたのが仮想化ソフトウェアParallels(http://www.parallels.com/jp/)。そしてその仮想環境上で、Windows 7、Linux ubontsu、Crhome OS、Andoroidmulatorを矢継ぎ早にセットアップしていき、最終的にWindows 7にMSDNをインストールでセットアップ完了しました。
    ここまでで感じたことが、仮想環境上のWindows 7の性能が快適過ぎることです。Windows 7なのに起動時間が全然違う。そのため、我が家のWindows デスクトップPCが全く登場しなくなりました。「何故ここまで?」と思い立ったので、簡単なプログラムを作成し、MacbookとデスクトップPCで実際に比較してみましたのですが、意外にも実行速度はあまり変わりません。なるほど、この快適な性能を実現しているのは、SSDによる高速なディスクアクセス性能が影響してるのでしょう。見た目だけじゃない、最も基本的な機能である「速さ」を低コストで実現できるのは、OSから自社研究している高い技術力、世界屈指の部品調達力、ユーザ視点の設計思想がAppleに存在するという証明でしょう。

    Mac OS Lion のインタフェースへのこだわり
    もともと、MicrosoftはMS-DOSを背景としたCUIの上に、GUIを乗っけているという思想であるため、すべての操作をキーボードで行えるように設計されています。対極的にAppleはマウス等のGUIを中心としたインターフェースを重点的に設計しています。それが今では、それがマルチタッチという新しいインタフェースに活用されているということだと思います。(このワタクシ、徹底的にマウスを使用せずに、変態的なまでにショートカットキーを操るWindowsユーザなんです。やはりキーボード操作位はなんとかならんのかと思いました。。)
    そんなWindowsで育った肉食系な私ですが、最新のMac OS Lionのマルチタッチの出来映えは秀逸に感じられました。3本指スワイプによるアプリの切り替え、Safariでの2本指スワイプによる「戻る・進む」(履歴の移動)は非常に直感的で操作しやすいです。Google Chrome は、今後Lionへの完全対応に向け、従来3本指スワイプだった「戻る」のジェスチャーを、2本指に変えると発表していました(http://headlines.yahoo.co.jp/hl?a=20110729-00000023-mycomj-sci)。3本指スワイプの恩恵を受けた私にとって、Chromeの仕様変更を応援しています。
    また、OSバージョンアップにより縦方向の2本指スワイプによるスクロール方向が上下逆転したそうです。iPhone, iPad等のインタフェースを共通化が目的とのこと。iPhoneを使用している私にとってはありがたい話ですが、Macbookを継続利用している人にとってはたまったものじゃないと思うのです。しかし、そんな仕様変更を(設定もなしに)大胆に実行してしまうのがAppleらしいというとこでしょうか。Appleのインタフェースへの異常なまでのこだわりに感心と驚きを感じた次第です。

    革新と互換性のトレードオフ
    スティーブ・ジョブスは「革新にとって互換性は最大の障害である」と言っていたとか。私もソフトウェアを設計・開発するにあたり、この言葉をよく思い出します。長年使用してもらっているお客がいる限り、互換性は重要視されますが、そこだけにこだわると革新的で本当に「欲しい」と思えるものは決して出来上がりません。モノを作る際に「互換性」だけを重視すると、開発者は「どうあるべき」かも考えず、創造することを辞退します。これはモノ作りを生業とする人間にとってサボタージュに値する。こんな低いモチベーションでは、よいモノは決して出来ない。
     「何かと似ているものを作った場合、使う人は互換性に文句を言うが、創造性に溢れ、全くの革新的なものであれば、互換性について文句を言う人はいない」が私の持論です。人間新しいものを作ったようで、実は何かに似ていることが多いし、既存のものをちょっと変えたようなものはやはり互換性を使う人は言ってくると思う。
    だが、互換性がどうのこうの言われたときこそ、さらにゼロベースで本質を捉え直し、もっともっと創造的で革新的に考えて、初めて創造性のある作品に仕上げる必要があると私は思います。Macbook Airが出来上がるまでに、様々な開発者の思いやドラマがあったのであろうと思いながら触ると、それは感慨深く感じられ、一つの仕様変更さえ愛らしく思うものです。

    ----
    PS:天王洲のスターバックスでコーヒーを飲みながら、Macbook Airで「創造性」を語る今の私は、薄っぺらい人間だと自認しようと思う訳で。








    2011年7月30日土曜日

    プログラマー飲み会

    お世話になった協力会社のメンバーを送別する飲み会に参加してきた。飲み会の会場は京急蒲田の商店街の真ん中にあり、300円均一の料理、発泡酒の生ビール、不自由そうにメニューを繰り返す中国系スタッフと、デフレな世の中をまざまざと感じるお店でした。

    さて、今回送別した方は私が尊敬するプログラマです。ズバ抜けてコーディング技術が高く、さらにJavaの知識も深く広い。彼の書いたコードはとてもシンプルで分かりやすく無駄がない。インテリジェンスとモノ作りに対する愛情がコードからにじみ出ている。
    宴もたけなわになり、そのスーパープログラマが飲み会の最後にスピーチし始めたのだが、酔いも手伝って内容が非常に熱かった。
    「ソフトウェアエンジニアとは労働者ではなくアーティストだ」
    「製品を作っているのではなく、作品を作っている気持ちが必要だ」
    飲み会の席でこんな言葉を語れるプログラマに出会えることは非常に稀な経験だ。

    日本のソフトウェア産業はクラウドという時代を迎え、大きく変わりつつある。企業は自前で「作る」ことをせずに、世界中で使われている優れたサービスを「使う」時代となった。そんなクラウドの時代では、Google, Microsoft, IBMのトップベンダー、そして世界中の新興企業との競争相手となり、より「使われる」サービスを提供した企業が勝ち残る。 このまま今の日本のITゼネコンベンダーが、旧態依然と過ごしていけば間違いなくビジネスを縮小させていくだろう。
    まさに今までの日本のソフトウェア業界は江戸末期。多重請負構造という封建制度。日本語の壁という鎖国制度。
    今後は日本古来の請負ビジネスが縮小し、中小ソフトハウスの倒産が発生する。出来ないプログラマは自然淘汰されていく。(ましてやプログラムを読めないシステムエンジニアっていう部類は真っ先に淘汰されると思う。)「使われる作品」を提供できるエンジニアでなければ、この世界は生き残れない時代になってしまった。

    「作品」を提供できるプログラマーはあの飲み会の中で何人くらい出てくるのだろうか?
    我々は良い「作品」を作らないと、10年たって発泡酒も飲めなくなってるかもしれない。

    2011年6月27日月曜日

    人に上下なし。工程にも上下なし。

    「超上流」という言葉が一昔前流行していた。多分データさんが普及させている考えだと思われる。設計作業等を「上流」と呼ぶ傾向があり、さも「製造工程」(プログラミング)が「下流」であるかのような言い方である。この「上流」、「下流」の言い回しが日本のソフトウェア業界をダメにしている。

    ある社内会議に参加していた時に、開発品質について議論となった。その社内会議では、様々な製品を担当するプロジェクトリーダー級の担当者が品質状況を報告し、重要な情報はその場で横展開するという場となっている。
    最近は上級幹部も参加しており、あたかも、公開処刑の場のように幹部は担当者に指摘を浴びせる。公開処刑のやり方変わってきて、最近の主流はトヨタ流のなぜなぜ分析だ。「コーディング誤り」、「設計考慮漏れ」等に障害を分類し、どの「工程」で失敗かを議論するやり方。

    ただ、この分析であまりにも「ソースコード」が見えてこない。プロセス改善はいいことだが、本当に本質的な改善なのか疑問に感じる。コードが一度も資料として出てこないのに、設計書の書き方や、レビューチェックシートを追加するとか、訳の分からない議論をして満足している。調理をあまりしないコック長が、食材そっちのけで、レシピの書き方を改善してても、そんなレストランにお客さんを来ないと思うのだが。

    これはまさに「上流」であるプロジェクトリーダが「下流」のソースコードを理解できないまま、プロジェクトが運営されていることの象徴であると考えるわけで。日本のソフトウェアがダメになっているのはまさにこういう文化だと思う。つーか「上流」、「下流」っていう、この言葉自体をなくさないといけない。




    2011年6月1日水曜日

    誰がコーディングに工程を持ち込んだ?

     本当に使い勝手の良い製品には、説明はいらないはずである。つまり、マニュアルなんて必要なく使えるものがユーザビリティが高い製品と言える。カタログも必要ない。使って見れば勝手に流行る。それは、とても魅力のある製品であり、そこに説明が必要ないから。
     本当に作りやすい構造には、設計書なぞいらない。それ自体の構造が最適化されているため、改修もしやすく、構造自体が作り手にさらなる創造を与えるから。
     本当に美しいコードには、他に何も必要としない。それ自体が全てを語る。

     コードを書くとは、知性、感性、創造の活動と考える。本当のプログラマーのコーディングとは、設計、製造、テストという工程というものは存在しない。ただ感じ、考え、書いて、確かめるという、単純な創作活動だ。誰がコーディングに工程を持ち込んだ?

     ソフトウェア開発において品質専門組織というのが存在する会社があると思うが、そんな組織になんの価値がある?本当にお客さんに評判の料理を出すレストランでは、多分レシピの書き方にこだわっているレストランがあるとは思えない。素材、技術、調理法に重点をおいて、調理人が切磋琢磨しているはずで、マネージング力だけでおいしい料理が出来上がるとは思えない。日々の調理技術を磨き、湧きたつアイディアを何度も試作し、試行錯誤した結果、本当においしい料理ができあがるはずだ。そして本当の有能なマネージャはそうした思考試作を数多く経験した人間ではないか?