罪と罰(4) プロジェクトA
三度、プレゼンテーションルーム内にざわめきがあふれた。
「AdobeのAIR?あのAIRですか?」
武田さんが挙手もしないで叫ぶように訊いたが、五十嵐さんは冷静に答えた。
「そう、あのAIRだよ」
「それはちょっと......どうですかねえ」
武田さんとしては、懸念と疑問を精一杯柔らかく表現したらしいが、あいにく五十嵐さんはその手の配慮が嫌いなようだった。
「そんな抽象的な表現ばかりしていないで、エンジニアなら何が気になるのか、具体的に反論してみたらどうだ?」
「じゃあお訊きしますが、AIRってもう終わってしまったんじゃなかったでしたか?」
「別に終わっちゃいないよ」五十嵐さんは冷静な顔で答えた。「現にAIRランタイムは更新が続いているし、開発ツールもバージョンアップされている」
「でも、あれでしょ、つまりFlashですよね?」
「どういう意味だ?」
「Flashのデスクトップ版ですよね?iOSってFlash使えないんじゃなかったですか?」
「ああ、そういうことか」
冷笑するように返された言葉が、まるでできの悪い生徒を前にした教師のようだったので、武田さんはムッとしたように訊き返した。
「何が"そういうこと"なんですか?」
「いかにも素人っぽい質問だなあと思っただけだよ。武田くんさあ、技術者の端くれなら中途半端な知識を口にするなよな。同じ技術者相手にそれは失礼だろ」
「素人って」武田さんの顔が赤くなった。「私は一応プロなんですが」
「だったらなおさら知らないことは、素直に知らないと言う勇気を持ちたいもんだなあ。君はAIRについて何も知らないんだろ?」
「確かによくは知りません」
「そうだろうな。簡単に言うとAIRはFlashと同じ技術でアプリケーションが作成できるが、Flashを使ってるわけじゃない。だから、iOSでも問題ない。わかったか?」
武田さんは疑わしそうに五十嵐さんを見ていたが、やがて渋々ながら謝罪の言葉を口にした。
「すみません。確かにそれについては知識がありませんでした。でもそれにしたってAIRってのは、どうも......」
「要するに武田くんは、AIRはFlashと同じオワコンだ、と言いたいわけかい?」
面談のときの会話が想起され、思わず頬が緩んだ。
「......まあ、そうですね。なんか、今さら、って感じですよ」
「もう一度訊くけどね」どこか楽しんでいるような顔で、五十嵐さんは言った。「武田くんは、AIRを使ったことがあるの?」
「......いえ、ありませんが......」
「それじゃあ、これから私がなぜAIRというメジャーとは言い難い開発プラットフォームを選んだのかを話すから、まずは真摯に耳を傾けてくれないかな。その上で反論があれば自由に発言してくれ」
「はあ。どうぞ」
「まずAIRを選んだ第1の理由は、先ほども言ったように、1つのソースでiOSとAndroidの両方に対応するアプリケーションをビルドできることだ」
「でも、それは」武田さんは早速反論した。「Webアプリケーションとして作成しても同じですよね」
五十嵐さんはウンウンと同意するように頷いたが、特に何も答えずに続けた。
「第2の理由はネイティブアプリケーションを作成できるという点だね。まあ今どきネットにつながるのは当たり前で、LTEなんかの高速通信のインフラも充実してきているから、Webアプリケーションとしてサービスを提供するのが普通になっているよな。しかし、ネイティブアプリケーションのサクサク感は、やっぱり捨てがたいものがある。他がやっていないことを、あえてやることが差別化になるんだよ」
「......」
「さらに言うなら」五十嵐さんは苦笑した。「ここのメンバーは、まともにHTML5とCSSを身につけていないようだからな。今どきのブラウザなら昔ほどクロスブラウザ問題があるわけではないけど、まだまだブラウザ間での差違は存在しているよな。メジャーなものだけに絞っても、全てのデバイス、全てのブラウザでテストするのは容易じゃない。それにはある程度、時間をかけてノウハウを積み上げていかなきゃならん。経験値を上げるためにも、そういう勉強も並行する必要はあるだろうが、新製品には間に合わないだろうな」
HTML5やCSS3関係のノウハウがないのは、私もそれなりに懸念していた問題だったのだが、武田さんや村瀬さんなど上の人たちがあまり気にしていないようだったので、何となく真面目に勉強する必要はないか、と思ってしまっていた。HTMLのレイアウトは基本的にTABLEタグで済ませてしまい、せいぜいborderの指定にCSSを使うぐらいでお茶を濁してきたのだ。私と同じような自覚があるのか、武田さんは五十嵐さんを注視していた視線を床に移動させた。
「3つめの理由は、ここにいるメンバーの持つスキルで、開発が可能だということだ」五十嵐さんは両手を広げた。「モバイルのAIRアプリケーションは、いくつか使えるコンポーネントに制約があるものの基本的にFlexの知識でコーディングできる。また、サーバサイドはJavaで開発できる。どちらもここのメンバーが、今現在、持っているスキルだよな」
何人かの視線が、私の方に向けられた。Flexを一番やったことがあるのは、私だからだろう。武田さんの反論の材料もその点だった。
「Flexの知識といっても、使えるのは箕輪さんぐらいでしょう。あとは守屋、木下、足立ぐらいですが、箕輪さんのヘルプをしたぐらいです。他のメンバーの学習の時間だって必要になるんじゃないですか?」
「そこはもちろん考慮しているよ。Flash BuilderにはVisual Editorがついているから、画面のレイアウトなどはすぐに憶えられる。ActionScript も、Javaを知っている人間なら、学習にそれほど時間はかからないよ」
「そりゃ、言うだけなら簡単ですけどね......」
「他にも細かい理由はあるが、まあ、それはいいだろう。要するに、限られた時間、限られたリソースで、新しい製品を開発するというスキームには、AIRが最適だということだよ」
久保さんが躊躇いがちに手を挙げた。
「はい、久保くん」
「そこが少し疑問なんですが......」久保さんは視線を天井付近に泳がせた。「今、副部長は限られた時間と仰いました。確かに、副部長がこの部にいらっしゃるのは1年間ですが、ぼくたちはそれ以後もずっといるわけです。つまりですね、ぼくたちには限られた時間という理由があてはまらないと思うんですが......」
久保さんは語尾を濁したが、時間にこだわっているのは五十嵐さんだけではないか、という意味のことを言いたかったのではないだろうか。五十嵐さんにもそれは伝わったようだが、答えた口調は春の海のように穏やかなものだった。
「つまり久保くんは、私がここに在籍している間に何らかの成果を出すことにこだわっている、と言いたいわけだな」
「はあ......」
「それは否定しない」五十嵐さんは悪びれずに答えた。「私はこの会社に雇われている契約社員で1年後にはいない。誰かが訊くかもしれないから先に言っておくと、そのままこの会社に正式に雇用されるということもない。契約では延長を認めない、ということにしてあるし、何よりもイニシアティブが目指しているのは、IT業界全体の底上げであって、特定の一社の利益だけに尽力することではないんだからな」
その言葉を聞いて、武田さんや久保さんは安堵した表情を見せた。五十嵐さんがこのまま居座る可能性を心配していたのだろう。
「確かに私は成果を出したい。経験値ゼロのチームが新商品開発を達成できれば、次の契約先への実績になるからな。一技術者としてもスマートデバイスでの業務アプリの可能性には興味がある。それを自分の懐を痛めずにやれるなんておいしい話だろう?」
冗談なのか本気なのか判別しかねる表情に、私たちは呆気に取られた。それを見た五十嵐さんはクスクス笑って続けた。
「と言えば、私がいかにも自分勝手に君たちを振り回しているようにも聞こえるだろうが、今言ったのは1年で成果を出したい第2の理由にすぎない。じゃあ、第1の理由はなんだと思う?」
その質問は久保さんに向けられていた。久保さんは少し考えてから首を横に振った。
「すみません。わかりません」
「だろうな。じゃあ言うが、この話はこの部の外には出さないようにしてくれよ」
そう言うと五十嵐さんは、瀬川部長に問いかけるような視線を投げた。それまで黙って成り行きを見守っていた部長は、顔を上げて小さく頷いた。
「実は」五十嵐さんは乾いた声で告げた。「この会社としては、Webシステム開発部の廃止を真剣に検討しているんだ。4期連続の赤字がその理由だ」
意外にも衝撃は少なかった。きっと、その可能性を心のどこかで危惧し続けていたからだろう。これまで意識の表面に浮かばせたことはなかったが、ずっと利益が上がらない部門をそのまま遊ばせておくほど、うちの会社は寛容ではない。なによりH&Gコンピューティング株式会社自体の業績がそれを許さないだろう。
「もちろんこれは間違った考えだ」五十嵐さんは続けた。「充分なリソースをつぎ込んでもいないのに、結果が出ないことだけを重視しているんだからな。むしろWebシステム開発部の規模こそを拡大すべきなのに、とりあえず目の前の仕事が細々と続いているから、という理由だけで現状維持を最優先にしている。一度、こういう守りの経営に入ってしまうと、そこから抜け出すことは難しくなるんだ。何年か後になって、やっぱりWebシステム開発部が必要だ、という意見が出てきたとしても、今回廃止を決定した経営陣が潰すだろう。仕事というのは往々にして理屈よりも面子で動くことが多いからな」
他のメンバーの反応は二通りに別れていた。中村課長を始めとする年長組は明らかに「まさか」という顔だった。一方で3バカトリオ以下の若手組は、私と同じように何となく予感があったのか、「やっぱりそうなのか」という沈んだ表情をしていた。
「瀬川部長はそれに反対され、いろいろ抵抗した結果、一つの条件を勝ち取ったそうだ。今期は必ず利益を出し、なおかつ来期以降も継続してその利益を維持できるような対策を取ることだ。そのためにいろいろな手を打ったし、今も打ち続けている。その一つがイニシアティブだった、というわけだ」
瀬川部長がやたらといろんなセミナーなんかに足を運んでいたのも、いずれこういう時が来ることを見越して、Webシステム開発部の武器になるような技術や製品を探していたんだな、ということに、私は遅ればせながら気付かされた。そんな事情も知らずに「困ったもんだ」などとカスミさんと笑っていたことが恥ずかしい。
「これが1年で成果を出さなければならない、第1にして最大の理由だ。久保くん、理解できたかな?」
久保さんは茫然とした表情で何度も頷いた。
「こういう事情を知っていれば、もうちょっと報酬面を考えたんだけどな」五十嵐さんは苦笑した。「瀬川部長にしてやられたよ、全く」
瀬川部長は人の良さそうな笑顔を見せ、それを見た何人かのメンバーの顔も少しだけほころんだ。
「さて相談を受けた私は難題を突きつけられたわけだな。どうやったらこの部に利益をもたらすことができるのか。イニシアティブがこれまでやってきたように、Webアプリケーション構築の技術を向上させ、システムの質を上げるという手段は、真っ先に放棄せざるを得なかった。誰かが以前に指摘したように、営業が積極的に動いてくれないだけでなく、それでは他社との差別化ができないからだ。やるなら全くの新分野に活路を見いだすしかない」
大学という顧客も、スマートデバイスのネイティブアプリも、確かにうちの会社ではなかった分野だ。
「しかも数ヶ月で完成までこぎつけなければならないとなると、一から勉強しなければならない言語はダメだ。確かに、AndroidとiOSの両方のアプリ作成が可能なツールは、Monaca などいくつかあるが、たいていはHTML5やjQueryの知識が必要になってくる。さっき言ったが、ほとんどのメンバーがHTML5に関して中途半端な知識しか持ってないからな。最終的に残ったのが、一番学習コストが低いと思われるAIR という次第だ」
五十嵐さんは言葉を切り、申し合わせたような沈黙が降りた。
AIRによるモバイルアプリケーション。私は、Flash Builder 4のメニューを思い浮かべた。以前にお遊び程度で触ってみたことがあるが、確かに、モバイルプロジェクトを作成すると、ターゲットプラットフォームに、iOS とAndroid が含まれていた。少し触ってみた限りでは、画面を作るだけなら確かに簡単だ。
私は他のメンバーの表情を観察した。中村課長、武田さん、久保さん、カスミさん、村瀬さんは、それほど乗り気ではないようだった。反対に、若手組、守屋、木下、足立の3バカトリオ、クミとマサルは、期待に満ちあふれた様子だった。何か新しいことをやってみたいのだろうし、それによって部の危機を救う、というシチュエーションも魅力的なのだろう。
私自身は、というと、五十嵐さんの計画に確かに心を揺さぶられていた。受託開発ではない、新製品の開発。自分で仕様を決めて、自分で実装しテストする開発サイクル。大学という未知のエンドユーザがターゲットという点にも惹かれる。これまでのWebシステム開発部のクライアントは、K自動車および関連企業ばかりだったのだから。
「さて、それでは開発体制を発表しようか」
五十嵐さんはそう言うと、再び照明を消して、パワーポイントのページを進めた。その途端、私は息を呑んだ。
プロジェクトマネージャー:五十嵐
開発チームリーダー:箕輪
開発チームメンバー:守屋、木下、足立、藤崎、曽我
全員の視線が、再び、私に集中した。
五十嵐さんがPMなのは当然として、チームリーダーには武田さんなり、村瀬さんなりが就くと思っていた。そういう人たちをすっ飛ばして、いきなり私が抜擢されたのだから。
「見ての通り、若手メンバーで固めた。私を含めてな」最後の言葉は冗談だったようだが、瀬川部長が短く笑っただけだった。「若者たちの熱い力に期待しようってわけだ」
「大丈夫ですか?」武田さんが懸念を表明した。「箕輪さんはともかく、残りはちょっと経験が浅いんじゃ......」
「だからいいんだよ。経験が浅い、ということは、新しい知識を詰め込む余地が大いにあるってことだからな。何かを書き込むには、白いページが必要なんだよ」
「......つまり、たとえば私なんかだと、新しい知識を学ぶことができない、と言いたいんですか?」
「はっきり言えばそういうことだ」五十嵐さんは、遠慮なく断言した。「そうでないと言いたいのなら、何らかの形で証明してみせることだな」
「何らかの形って何のことですか?」
「何でもあるだろう。たとえば、HTML5とCSSを勉強して、同じ機能のアプリケーションを作ってみるとかな」
「......そんなヒマはありません」
「そうかな?時間というのものは、誰かから与えられるものじゃなくて、作り出すものだと思うんだがな。その気になれば、勉強する時間などいくらでもあるよ。タバコを吸ってる時間、昼休み、行き帰りの通勤時間、エトセトラエトセトラ」
武田さんは猛烈なヘビースモーカーで、30分おきに喫煙室に姿を消している。たぶん五十嵐さんはそのことを皮肉ったのだろう。
「まあいい。とにかくこの体制で進める。新チームのメンバーはもちろん手持ちの業務があるだろうが、当面は新製品の開発を最優先とするから、残りのメンバーでフォローしてもらう。割り振りは後でメールするからね」
そう言った後、五十嵐さんは私を見て微笑んだ。
「箕輪さん。チームリーダーは君だ。これは君のチームだ。私は道を作るが、車を走らせるのは君の役目だ。もし、君が自信がないというなら、今のうちに言ってくれないか。一度、走り出したら途中下車はできない」
一瞬、ここで断って、五十嵐さんがどんな顔をするのか見てみたい誘惑に駆られたが、幸いなことに理性が勝った。
「やります」
「そう言ってくれると思っていたよ」五十嵐さんは満足そうに笑った。「それでは、新チームのメンバーは引き継ぎの準備をしておいてくれよ。今週中に引き継ぎを終わらせて、来週からは新製品開発プロジェクトにどっぷり浸かってもらうからな。何か質問は?」
「あの、いいですか」木下が手を上げた。「このプロジェクト名は何かないんですか?」
「とりあえずは、プロジェクトAということにしておこうか。チーム名はもちろんAチームだ」
五十嵐さんはそう宣言すると、何が楽しいのか大笑いした。「プロジェクトA」と「Aチーム」が、昔の映画と海外ドラマの名前であることを知ったのは、それから少し先のことだった。
こうして私は思いがけずチームリーダーとなった。それは私のみならずWebシステム開発部の運命が大きく変わった瞬間だった。
(続く)
この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術・製品の優位性などを主張するものではありません。
コメント
a
正直、とてもわくわくする展開です。
男は廃止間近の部にやってきて新製品を作り、部だけでなくやがては会社を救うことになるのでした!
なんというサクセスストーリー。
まあここの話的にないんでしょうけどw
n
いいですねー、王道サクセスストーリーぽいです。
今のところ五十嵐さんの話は筋が通っていてるし救世主のように見えます。
開発フェーズにはいってから本性をあらわすのでしょうか。
さざた
まるで前回のコメントを見てから書いたような展開(笑)
wwJww
武田さんが保守的というか自分に甘すぎて、読んでいて「ああいるよね、こういう人」と頷いてしまう。
ttt
Aチームw 特攻野郎ってことですか。
neun
エンジニアとして触ったことがない言語は使えませんは言ってはならない
1つの言語をある程度やったのであれば他の言語も3日もあれば問題なくできるのが普通ですよ。
できないのならセンスがないと思う
n
>1つの言語をある程度やったのであれば他の言語も3日もあれば問題なくできるの
>が普通ですよ。
十全に使いこなすにはどの言語も時間がかかりますよ。
うわっつらだけならすぐ使えますけどね。
どの言語も世界中に公開できるレベルを3日で、というならあなたは天才なのですよ。
ABC
派遣の条件に「Javaが出来る人」と指定したら、「Javaの構文がわかる人」が派遣されてきた。結果そのプロジェクトでは、int定数マンやコメント王、嘘っこ変数名が横行したという…。
日本語ってむつかしいね :-)
DumbObj
言葉遣いは嫌なやつだけど、少し希望が持てる展開になってきた。「V字回復の経営」を思い出す。
elseorand
>>1つの言語をある程度やったのであれば他の言語も3日もあれば問題なくできるのが普通ですよ。
そらない。日本人なら日本語をある程度やっているが、英語は3日で「できる」というレベルにはならない。
1.英語が「できる」というには、数万の単語を記憶する必要がある。
2.日本語は膠着語で、英語は屈折語と文法が全く異なる。
3.単語以外にも熟語や慣用句など使用する上で必要な知識は更にある。
プログラミング言語も同様で、糞言語PHP式にJavaを書かれたら困ると言えるし、
標準機能にあるのに知らずに態々、車輪の再発明をする。
枯れたライブラリを使わずに開発する。
新言語を使う上での「知識レベル」の問題だけでも多々ある。
こんなことを言えるのは、
言語の使いこなしレベルが低いのか、
人外でないと言える発言でないわな。
閑話休題
Airを今後も使い続けることのリスクを軽く見ているようで怖いね。今後もAirを追っていくか、Airでお茶を濁しつつ、HTML5の勉強をしていくリスクヘッジをとらないと、大変だけどとらないと危うく見えるね。
匿名
>1つの言語をある程度やったのであれば他の言語も3日もあれば問題なくできるのが普通ですよ。
釣られてみるけど、ならねーよ。
英語しゃべるなら、中国語も得意でしょと同じレベル。
簡単なのはできるが、仕事を任すなんてできないだろ。
どんな仕事でも失敗したら、損害や場合によっては、賠償問題になるのに「3日位でマスターしました」なんて奴に仕事はまかせられないよ。
どんな会社でも。
匿名
3日は言語によるだろうけどね javaとかからPHP,rubyには行きやすいけど逆は厳しいと思う。
LL使っていてC言語3日は不可能でしょ。
airやったことないけど何か簡単なもの作れるレベルなら3日で行けそうかなー
環境にもよるけど請け負いやってると来週からどこそこのプロジェクトだから言語使えるようにしといてねとかは普通にあるw
ゲームエンジニアの方とか凄まじいけど、転職してPHPその日のうちに普通に開発してたので驚いたことはあります。(元々c,c++)
X
プロマネとチームリーダーの違いってなんでしょうか?
このプロジェクトみたいにチームリーダー一人の場合は。
オレンジ
んー
周りからどう見られているか客観視できて、それを表明するのはなかなかできないですね。
話も上手いみたいだし、こういう人が問題を起こすとしたら手強くて厄介ですねえ。
若手の人心掌握に腐心してるようだから、引き抜くつもりかもしれない。下手するとプロジェクトごと。
Z
相手の情報を集め、自分の情報は隠し持ち札も見せず。
意識してやってるとしたら性格が悪いなぁ
そうじゃないならミーティングするときは、アジェンダと関連資料は事前に提示してほしいですよね。
新規開発やAIRの話がせめて3日前に分かってれば事前調査も出来たでしょうに
不意打ち食らって手も足も出ない武田氏は哀れ
しかしその状況で無駄に抵抗したのは相手の思うつぼ...かも
ABC
いわゆるマウンティングというやつでしょう。
ある職種の人間はこういったふうに主導権を握る技術に熟達しています。
イニシアティブなだけに(爆)
mayo
リーベルGさんがあえてそうしているのか
五十嵐は実はそこまで調べてない描写をしてるのか
わからないですがiOS上で動作するAIRランタイムはこの世に存在しません。
Flash Buiderは直接iOS上で動作するコードを生成しています。
(というかランタイムとかそんなんはAppleが許していません)
ですのでAIRの開発が止まってもiOSが下位互換をきっちりするのであれば
動作するものは作成し続けます。
後コメントにAIRは簡単そうとかありますがランタイムなので
簡単とかそういうもんでもないです。
ややこしいのは事実ですが・・。
.NETの対比を置いておきます。
Flash Builder=Visual Studio
AIR=.NETFrameworkランタイム
actionscript=C#,VB.NET
MXML≒ASP.NET
Flex2から使用してる技術者の横やりでした。すみません。
BEL
一つでも言語を習得していれば、新たな言語習得にかかる時間は
まったくプログラミング経験がない人に比べれば、短縮できるだろう。
ただ3日でプロとして業務で使えるくらいになれると言われても信用できない。
(基本はできていても、同じ実装をするのにベテランに比べて調べごとに多く時間がかかったりするだろう)
「うちのメンバーは全員3日前に.NETを勉強し始めてもう習得しました。
いや、大丈夫ですよ、みんなJavaやってましたから」
とか言われたら絶対発注しない。
ただ、プログラミング経験ない人と同じくらい習得時間がかかってしまうのであれば
確かに「センスがない」と言えるかもしれない。
今回の話の展開はいまだに読めぬ。
高ミス先生んときみたいにSFチックなのかと思ったらそうでもないし。
"マルチプラットフォームでお手軽にできちゃうぜ"
→"いや実際は色々大変なんだよ"、って話なのか。でもそんな小さな話でもなさそうだし。
中古車販売
mayoさん
読み返してみましたが、iOSでランタイムがあるとは書いてないですね。ビルドできるとかいてあるだけで。
mayo
中古車販売さん。
こんなに返信してもらってありがとうございます。
確かにビルドができるとしか書いていないですがAirを使えばiOSアプリが作れるという記載が多いのでコメント書かして頂きました。
どう書けば正解かわかりませんがactionscript + mxmlでコードを作成すればandroid及びiOS上で動作するモジュールが作成できるのが正確になるかと思います。
airを使用すればできるというのが引っかかってコメントしました。
後airはランタイムなのでコンパイルはできません。adl ,adtユーティルを使用してiOS上で実行できるモジュールを生成します。
マイナーな言語なので仕方ないのですが勘違いされている方が非常に多い為コメント致しました。
コメント汚しすいません。
BEL
http://kb2.adobe.com/jp/releasenotes/891/cpsid_89107.html
Adobe自信が「AIR 2.6 では、iOS 4 用アプリケーションのパッケージ化をサポート」や
「AIR for iOS」のような表現を使っていたり
[AIR ランタイムの必要システム構成]にiOSを書いていたりするので、
「Airを使えばiOSアプリが作れる」という表現は間違いではないのかなと。
「.NET」と言ったとき、ランタイムとしての.NET Frameworkを指すのか、
技術そのものを指すのか、というのと似ていますね。
mayo
BELさん
コメントに返してもらってありがとうございます。
確かにAdobe自身がAIR技術の紹介時にiOSも作成可能とは言っています。
技術を指すのであれば問題はないと思います。
但し私自身Flex(現FlashBuilder)をずっと使っているのですが
このブログ内の武田さんが言うようにAIRってFlashですよね?
とか、Flexって難しい言語なんですか?とかAIRってWEBですよね?とか
AIRならすぐに覚えられそうとか言われるので1から説明する事が多く
この微妙なずれをできれば正確に伝えたいなーと思って書いた次第です。
もちろんAIRでiOSアプリを作成してと依頼が来れば何を言っているのかはわかるのですが
作成したAIRのソースを見してとか言われだすとどうしてもしっくりきません。それで毎回説明を繰り返す日々です(笑)