最近まで、ネット上のIT系ニュースで度々システム障害で我々にネタを提供してくれる某巨大都市銀行の次期システム開発に下請けとして新卒から参画していた。
「某巨大都市銀行の次期システム」という時点でどこの銀行かピンとくると思う。
次期システムとは大雑把にいうと80年代に構築され今なお稼働しているシステムのうち、外為、内為、預金などの業務にて稼働するサービス(実際のプログラムになる)を疎結合化してそれぞれのサービスを部品として再利用性やメンテナンス性の向上を図る、いわゆるSOA(サービス指向アーキテクチャ)で作り直そうというものだ。
この辺も心当たりのある銀行と次期システムとかでググれば出てくると思う。
銀行システムをSOAで構築するのは日本では初めて!!すごい!!先進的!!!という触れ込みだったらしいが、立ち上げからいるわけでもなくSOAの利点も結局実感できぬままこの業界から去ってしまったので本当に謎である。
そもそもどんな体制であったのか、巨大だったし関心も薄かったので全貌は知らないが、まずユーザは銀行の行員さん。
ユーザを客としてシステムを開発するのにSIerとして銀行のグループ会社のシステム開発会社がいて、その下にベンダーとして国内でも名の通っているIT企業がおり(いわゆるマルチベンダー)、その下に各派遣会社がいるというよくある構図だったと思う。
なお、SIerは、IT業界の就職偏差値なんかでぐぐると偏差値65という社会的にも名の知れているであろう人たちだったりしている。
前提として、このプロジェクト自体が技術の上に成り立つシステム開発であるということだ。そして、システムを開発するのは人間である。
人間がシステムに無関心であれば当然まともなシステムができるはずがない。人間がシステム、もっと一般化すれば仕事を遂行するのに必須なのがモチベーションである。
そのモチベーションが金銭なのか、知的好奇心の充足なのかそれは人によると思うがとにかく何かしらのトリガーがあって仕事が進む。
こんなこと、当たり前であるが、この当たり前であることがそうでない現場も世の中にはあるという。
ということで、このプロジェクトで得た大変素晴らしい高尚な経験についてのお話をしたい。
断っておくと、私はSIerではないのでSIerの情緒がわからないため、あくまで客観的な末端の感想を書いている。
まず、SIerはほとんど公務員みたいな銀行員様をユーザとして高い金をもらって仕事をしているため、ユーザにお伺いを立てつつ政治力を発揮する必要がある。そして、偉大なるSIer様から高いお金をもらっている現場の各社はユーザとSIerにお伺いを立てねばならない。これらはシステムには本質的に全く無関係な完全なる大人の事情である。我々を率いるリーダーはその重圧に耐えながらプロジェクトの成功、というか家庭円満のために奔走するのである。そして末端の実際に手を動かす我々現場の人間は、事情もよくわからずにそのご恩を承り頂戴するのである。
また、もっと上のレベルになると国の機関からも突っつかれるなどしてここでもまさに本物の政治力が必要となる。
事なかれ主義というのは本当に大事で、長いものに巻かれるという処世術を身につけることができた。
上記の理由から、国やユーザ、末端の人間から見た場合はSIerの決定は絶対である。反論の余地や権利など存在しない。
まずこのプロジェクトは当初のスケジュールよりもすでに1年遅延しているという事情がある。スケジュールには敏感なのである。
私は現場の上司に「新人が大規模なシステム構築で上流から経験を積むなんてできないよ。いい経験になる」と言われ、参画したわけだが本当に素晴らしい経験をできた。
つまり、スケジュール駆動開発という革新的な開発手法を知ることができたのである。
・依頼者の都合に合わせた最速のスケジュールが依頼者から提示される。
↓
・ノーなど言えないのでなんとか間に合わせる。
至極単純明快で且つ確実である。納品したものの質などどうでもよい。スケジュールにさえ間に合えばいいのだ。
進捗の管理というのはどんな業界でも重要な情報を持つ視覚化されたデータになる。
ここでもスケジュール駆動開発の利点が発揮されるのだが、どこにマイルストーンを置くかによって、表面的ではあるが柔軟なスケジュールの変更が可能になる。
例えば、Aという作業が依頼され、納期が今から10営業日。ユーザ確認を含めると5営業日しか作業の時間がない。そんな時はチームの都合でタスクを分断化する魔法を使えばいい。
すると不思議なことに「われわれのチームではこれこれこういう事情で(進捗管理するリーダーにしか理解できない高尚な事情)依頼された作業は実質無理だから、ここまでやればいいでしょ」という完璧な進捗を叩き出すことができるのである。
なお、ここでいう進捗とはまったくシステム構築に無関係の「スケジュールがどれだけ進んでいるか」の進捗である。この切り分けを文字で伝えるのは容易いものではない。
おそらくこの魔法は各所で使われていると思うが、私のいた場合は本当に理解不可能でものすごく大胆なときがあったため、本当に勉強になった。
守秘義務があるので詳しくは言えないが辛いのだが、つぶしの効かない謎ツールや長い間世界中の人々に愛され続け今では時代錯誤となったレガシーOSを搭載した端末を支給されていた。
主につかうツールはもちろん天下のExcelである。Excelは本当にすごくて、たくさんのセルを大きくしたり小さくしたり、はたまた黄色く塗ったりしたのである。本当に有益であった。
また、上述したようにスケジュール駆動開発などから分かる通り数字への執着が尋常でない。
このプロジェクトを大成功させるために奔走するSIerは確定したスケジュールを遂行する工数を計算するのに命を削っている。それはその下にいる各チームリーダーも同じことだ。
そして、工数が明らかに非常識な場合はどうするか。歴史的に見ても人間を増やすしかないのは自明である。確実だし、たくさんのプロジェクトで行われてきたのだから当然だ。
増えた人間はすでに人でいっぱいの現場に来ることになる。当然物理的な拡張はなかなか難しいからフロア内でうまくやりくりすることになる。
たとえば、2つのデスクに3人座るのである。どうであろか、ぜひ参考にしてほしい。
当然、トイレの大便器の数も増えることはない。トイレの大便器を探し求めて有能な人間たちが最先端のオフィス街を彷徨う光景などそう簡単に目にすることなどできない。
このような開発環境では皆が修行僧。細かいことにはいちいち愚痴を言わなくなる。本当に徳を積むことができた。
よくある話っぽい上に読みづらい文章で大変申し訳ないしまだまだ書き足りなさはあるのだが、これらの経験から得たものとしては、「思考停止こわい」である。
それと、フォローするわけではないが、SIerやベンダー、各下請けの会社で働く人々に憎しみは持っていない。この目に見えないプロジェクト自体をひどく憎んでいる。