僕たちの立ち位置

via
アルファギークと学生の討論会 featuring 197Xs - GoTheDistance
2008-06-24
アルファギークと学生の討論会についての197Xsの立ち位置 - GoTheDistance

最初の表現で物議をかもしたようだけども、外に伝える言葉を持っていないというのを
まさにやってしまったんじゃないのかなと思えた。下手にバズワード気味な言葉や内輪
表現を使うべきではないと思う。
ブクマコメ見てても対比構造になってしまいそうな流れなのはちょっと残念な気がする。

スカラじゃなくてベクトルで考えないといわゆるIT業界=おそらくWeb系の人から反発
を食らう表現になるし、これだからSIerは、みたいな感じに言われたりしてしまう。

アルファギークというのは理想かどうかはわからないけどコードや言葉で先を示すのは
確かだろう。"アルファ"なんだし、こんなものが出来るのかとか、わくわくさせてくれ
るはずだ。でもそういう人たちばかりで世の全てのコンピュータシステムは成り立って
いないし、成立出来ない事情がある。

そこには利用者であり、発注者であるクライアントの存在が非常に大きい。利用者は
あくまで利用者としてのコンピュータリテラシがあれば実業務には十分なわけで、
開発者と同等もしくはほぼ同一の表現が通じるほどに詳しくなければならないわけで
はない。その橋渡しになるために言葉のニュアンスを含めた翻訳者としていわゆる
上流工程の担当者がいる。

ソフトウェアテストをしていれば誰でも感じるところだと思うが、インターフェイス
境界でのバグは非常に多いし、難しいものだ。それはソフトウェアに限った話ではな
く、情報を伝達することという問題に一般化される。だからクライアントと開発者の
間に立つ者がいればそれだけ多重度が上がる話になる。そこには汎化出来ないその場
その場での難しさがある。

それを面白いと思えるか?

コミュニケーションが生じるので、いろいろぎくしゃくしてしまうところはあるが、
基本的にサービス業なので「お客様に満足を提供する」というミッションを面白く
感じる人なら基本的には面白いだろう。これは使う人を意識した喜びである。

これとは別に、コードを紡いでいて、うまくいったとか、これは面白いとか、
Rubyをキメると楽しくなる」((C)Matz/RubyKaigi2008)みたいな感じになるときもある。
これは使う人を意識するというよりは作っている自分自身が得られる喜びである。

この2つは自製プロジェクトであれば両立し得るものだし、各個人でも普通に受け入
れられるものだ。

SIerの立ち位置というもので問題となっているのは、結局のところどちらかの面で
インターフェイスが欠けている人が多くなってしまっていることにないか。
欠けさせる理由として「プログラムなんて誰が作っても同じ」あるいは「誰が作っても
同じプログラムを作る必要がある」といういつの時代だかからの大上段からのお言葉で
あったりする。

これも本当はある一面で真理がある。僕はソフトウェア工学の講義を取った時に最初に
言われたことは次のような言葉だ。

工学とは属人性を排除し、一般化できることを目指す学問とも言える。
従って、ソフトウェア工学の目指すゴールは
「誰でも一定以上のレベルのプログラムを作れる方法を確立すること」
である。

当時のメジャーな業務システムはおそらくCOBOLで記述されるようなものが多かった
と思われる。COBOLをまともに見ていないので又聞きになるけれど、いわゆるフロー
チャートを上から順番に翻訳していくような流れになっていたそうだ。
そのあたりからすれば業務をわかっている人がこんな風に書け、と言えばそれは
誰でも同じコードを書けたろうし、同じコードでなければならなかったろう。
そのため、いつしか次のように曲解されてきたのではないか。

システム開発とは、誰でも同じコードを書かなければならない。

一定以上のレベルとは品質の問題であり、それは今でもソフトウェアテストの手法
からテストを設計に織り込むというBDDという形で発展し続けている。
だが、既存業務の運用保守や、システムリプレイスといった案件にまみれていた
間にSI事業の中では文化が定着してしまい、本来の理念から齟齬が生じた。
今SIの現場の多くはそういった文化と、取り巻く周辺事情が非常にカオスな形で
混在しており、それを非常に際立たせる形で対比されるようになったのがインター
ネットであり、そこを基盤にしたWebサービスの勃興であったと思う。

はしょっている部分や、勉強不足なところは多々あるだろうが、このような背景が
現在の大きな枠で見た"IT業界"であると僕は思っている。

かなり大回りをしたが、本筋に戻ろう。

こんな背景の中で、SIerは今後も同じ業態を続けるのだとしたら、それはさぞ
魅力に乏しいものに見えてしまう。プログラミング言語も「言語」である。
表現という側面に属人性はある程度出てしまうものだ。それを否定するのは
仕事としての喜びが大きく殺がれてしまうだろう。SIerの位置にいて、今叫べる
のは基本的にサービス業としての楽しさがあること。今の問題は職人としての
プログラマの地位が業界的には低く見られている現状がある(と思われる)こと。
改善していくために自分たちはもちろん、これから来る新人とともに文化を変えて
いく行動が必要だということ。技術者としてのくくりで見ればWeb系とかSIerとか
関係なくコミュニケーションが取れるようでなければならないこと。

イベントの討論がどのようなものになるかわからないけれど、パネリストの方には
下手にバズな言葉を使わずに、真摯に表現をしてもらいたいと思う。
いつだったかのエントリにも書いた気がするけど、以前の上司は組み込み系プログ
ラマ出身の方だったが、常々言われていたことがある。

言葉のリンクテーブルを持ちなさい。
相手に伝えるための表現は相手にあわせてしないといけない。
技術を知っている人にはそのまま用語を使っていいが、そうでない人には
それなりの表現を常に意識すること。

そう考えればSIerのSEと呼ばれる職種は非常に幅広い知識と表現力と技術力の塊だ。
本来目指すべきものはそこにある。

足らないものだらけだけれど、少しずつ身につけているものは増えていると思う。
そう信じて今を生きている。