ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

罪と罰(6) ストーリー

»

 「くそ」母親が聞いたら額に青筋が浮き上がりそうな言葉が、思わず口から漏れた。「なんでこう面倒なのよ」

 iOS のネイティブアプリケーション開発は、最初のハードルが高すぎる。私が最初に思ったのはそのことだった。

 FlashBuilderで、Flexモバイルプロジェクトを作成し、空白のテンプレートを選択。このときターゲットプラットフォームは、デフォルトでApple iOS、BlackBerry Tablet OS、Google Androidが選択されているのでそのままにする。サーバ設定はなしで完了。開いたデザイン画面に、Buttonを1つ、Labelを1つ貼り付ける。Buttonのクリックイベントで、"Hello, World"をLabel に表示するコードを1行書く。ここまでは数分でできた。

Fb1

 続いてはリリースビルドの書き出しで、それぞれのターゲットプラットフォーム毎に証明書をセットする必要がある。Androidの場合は簡単で、この画面から適当な名前とパスワードで証明書を作成すればいい。ところが、iOSの場合は、証明書の他にプロビジョニングプロファイルが必要になる。このプロビジョニングプロファイルを入手するためには、有償のDeveloper Program に登録する必要があるのだった。

 最初は、テストだけなら何とかならないのかな、と思い、いろいろ試してみたものの、やはり無理だったので、やむなくDeveloper Program に登録した。

 登録自体は簡単にできたものの、Appleから送られてきたメールに記載されていたアクティベーションコードを入力しても、うまく認証ができない。ネットで調べて見ると、同じような事象に遭遇した人が多々いるようで、その例に従ってAppleにメールを出す。半日ほどで何やら英語のメールが返ってきたので翻訳すると、できるように修正したから再度アクティベーションを試せとある。

 アクティベーションは無事に成功したものの、今度は開発用証明書ファイルを作成しなければならない。いや開発用証明書ファイルは、ダウンロードできるのだが、それをp12ファイルという形式に変換しなければならない。MacOS上であれば簡単にできるようだが、Windowsの場合、OpenSSLで変換する必要がある。私が汚い言葉を吐いたのはこのあたりだ。どうしてすぐに使えるファイルを素直にダウンロードできるようにしておかないのだろう。

 とりあえずの目的であるプロビジョニングプロファイルの生成には、さらに何段階かの手順が必要だった。まず開発に使用するデバイスのUDIDを登録する必要がある。私は、3バカトリオからiPadとiPad Miniを取り上げると、iTunes に接続して40バイトのUDIDを得た。その2つのデバイスUDIDを、iOS Provisioning Portalに登録。その後、先ほどの証明書ファイルなどを指定して、ようやくプロビジョニングプロファイルをダウンロードすることができた。

 このたった1つのファイルを入手するために費やした時間は、5営業日にもなった。それを五十嵐さんに報告すると、五十嵐さんはニヤリと笑った。

 「な、大変だっただろう?」

 「わかってたなら、少し、手伝っていただきたかったです」

 「自分でやることが大事なんだよ。忘れないだろ」

 FlashBuilderに戻り、リリースビルドの書き出しで、苦労して入手したプロビジョニングプロファイルを指定すると、ようやくiOS用のパッケージファイルが作成できた。プロビジョニングプロファイルとともにiTunes にファイルとして追加し、接続したデバイスで同期すれば、めでたくインストールが終了だ。iPadにテストというアプリケーションのアイコンが生成されていた。

 どきどきしながらタップすると、ちゃんとアプリが開いた。ボタンを押して、ラベルに"Hello,World"が表示されたときは、思わずガッツポーズをしてしまった。

 「ああ、長かった」

 「やっとできたんだ」カスミさんが隣の席から笑った。「おつかれさま」

 「ほんと、疲れました」私は2台のiPad を3バカトリオに返しながら答えた。「でも、これは最初だけみたいですから。後は作るだけですね」

 まだサーバと通信する部分や、アイコンの指定の方法など、調べなければいけないことはたくさんあるのだが、私はとりあえずの勝利感に身をゆだねていた。そこに五十嵐さんの指示が飛んだ。

 「おーい、箕輪さんよ。忘れないうちに、今の手順、まとめておけよ。何度も繰り返すことじゃないから、次、またやろうと思っても忘れてるぞ」

 「はい」

 私は言われた通りにここまでの手順をまとめ始めた。アクティベーションの画面などは、一応、ハードコピーを取ってあるので、時系列順に並べればいい。

 「あのー箕輪さーん」守屋が呼びかけてきた。「ちょっといいですか?」

 「ん?どした?」

 「例のストーリーなんですけど」

 「うん。まとまった?」

 私がプロビジョニングプロファイルに手間取っている間に、火曜日が到来し、チームAはミーティングを実施していた。私は進んでないという経過を報告しただけだが、残りの5人はそれぞれの手段で、調査した就活アプリの現状を発表していた。

 5人の報告を聞くと、就活アプリと呼ばれるものは、おおまかに3種類に分けられることがわかった。1つめのカテゴリーは、情報収集系のアプリで、企業情報や、就活関連ニュース、時事問題などをまとめて読めるものが多い。時事問題は面接などで「最近、印象に残っているニュースは何ですか?」などと訊かれたときのためらしい。

 2つめのカテゴリーは、一言で言うとスケジュール管理だ。最近ではエントリー数が100社を超える学生も珍しくなく、ネットにはダブルブッキングしてしまった、というような例も散見される。そういう事態を避けるためには必需品なのだろう。

 最後は自己分析系のアプリだ。要は自分の適性に合った企業を見つけるために使うものだが、需要はあまり多くないようだ。その理由は容易に想像がつく。

 「ぶっちゃけていえば、適性なんか選んでられない、ってことですね」と木下は報告した。「とにかく内定を取ることが最優先。職種や業界を選ぶのは二の次ですね」

 さらにクミやマサルが同じような報告を終えた後、私を含めた全員は、黙って報告に耳を傾けていた五十嵐さんを見た。

 「うん。いいだろう。じゃ、箕輪さん、次はどうしたらいい?」

 「えーと」私は少し焦ったが、後輩たちの手前、何とか平静さを保って答えた。「じゃ、金曜日までに今の報告をまとめておいて。それまでに新しい情報があれば追加して......ってとこでしょうか?」

 最後は五十嵐さんに向けての言葉だった。「自分で考えろ」と言われるかと思ったが、五十嵐さんはうなずいた。

 「そんなとこだな。ま、付け加えるなら、ただまとめるだけじゃなくて、ストーリーとしてまとめてみるといいな」

 「ストーリー?」守屋が首を傾げた。

 「開発のな。現状はこうなっている、だから、こういうアプリを作る、というストーリーだよ」

 今ひとつ理解できなかったようで、守屋はさらに疑問を呈した。

 「えーと、つまり、アプリの仕様を決めちゃうってことでしょうか?」

 「君たちが考える形をな」五十嵐さんは面白そうに私以外のメンバーの顔を見回した。「俺の頭の中にアプリとしてのゴールはあるが、それをただ披露しただけじゃ、君たちの力にならんだろう。間違っててもいいから、まず考えてみろ」

 「五十嵐さんの考えと一致するまでですか?」私は訊いた。

 「時間があればそうしたいんだが、今回はそうも言ってられないから、金曜日には俺のゴールを示すよ。ただ、もし君たちの計画が素晴らしいものなら、そっちを採用するかもな」

 「言うなれば、五十嵐さんvsアタシたちですね」クミが目を輝かせた。「勝ったら賞品出ますか?」

 「ああ、いいよ」五十嵐さんは笑った。「じゃあ、判定は箕輪さんにやってもらうことにしようか」

 というような経緯があって、5人はミーティング終了後、早速集合して、あーでもないこーでもないと議論していた。それとなく見ていると、普段は無口なマサルも積極的とまではいかないまでも、それなりに発言しているようだったので驚いた。やはり「新しいものを作る」という目標があると、モチベーションが違うようだ。

 とはいえ、これまで与えられた仕様書を元に実装する作業ばかりだったのに、いきなり企画的なことをやらされて、戸惑いの方が多いのも無理はなかった。何度も議論が煮詰まっているのを、私は遠目から見ていた。守屋が声をかけてきたのは、議論よりも沈黙の比率が高くなってきたころだった。

 「まとまったというか......」守屋は言葉を選ぶように言った。「まとまらないというか......しっちゃかめっちゃかというか」

 「......とにかく見せてみ」

 守屋はおずおずと一枚のA4用紙を横向きで差し出した。パワーポイントのプリントアウトらしい。遠くの席から他のメンバーが祈るような視線を浴びせている。私はそれらの視線を無視して私は目を通した。

 大学向け就職活動支援ツールの傾向と、目指すべきゴールのあり方について

 まるで卒論のような仰々しいタイトルだったが、その後に続いていた文字列を見て、思わずため息が出た。

現状あるもの

  • 情報を収集するアプリ
  • 会社訪問スケジュールを管理するアプリ
  • 業界適性判断をするアプリ
作るべきアプリ
  • 情報を収集し、スケジュールを管理するアプリ
  • 適性判断もあるとよい

 「どうでしょうか?」

 「どうって言われても......素直に感想を言っていいなら、抽象的すぎて、具体的になってないね。これはストーリーとは言えないんじゃないかい?」

 「やっぱそうですよね」

 そこに通りかかったのは、席を外していた武田さんだった。武田さんは足を止めて、興味深そうに私たちのやりとりを眺めていたが、やおら手を伸ばして、私の手からプリントアウトを取り上げた。

 「おいおい、なんだこりゃ。要件定義なら、ちゃんとうちのフォーマット使えよ」

 「......」

 「新規アプリならR-02だな。作ったら俺の所に持って来いよ。見てやるから」

 守屋は私の顔色を窺った。私は五十嵐さんの席に視線を走らせたが、中村課長とどこかに行っているらしく姿が見えなかった。

 正直なところ、正式な要件定義というわけでもないのに、この段階で規程のフォーマットなどに拘泥するのもどうかと思ったが、武田さんの言っていることも筋は通っている。なにより、武田さんが私や守屋に指示を出すことは、職制上間違っていない。今現在、この部屋にいる人の中で、最も上位の職位なのは武田さんだ。

 それに、五十嵐さんもフォーマットの指定まではしなかった。私はうなずいた。

 「とりあえず、R-02で書き直して」私は指示した。「それから、もうちょっと内容を考えようよ。高校生が文化祭の出し物決めてるわけじゃないんだからさ」

 「はい」やや不満そうだったが、守屋はおとなしくプリントアウトを受け取った。「でも、どんな風に発展させればいいんでしょうか。行き詰まってしまっていて」

 「そうねえ。まあ、一つ言えるとしたら、これ、視線ってもんがないわね」

 「視線?」

 そう訊いたのは木下だった。いつの間にか残りのAチームのメンバーが秘かに接近していた。

 「そう。誰視点でのアプリを作るかってこと。学生視点なのか、大学のキャリアセンター視点なのか、採用する企業側なのか、その全部なのか。それを入れるとストーリーになるんじゃないかな」

 「あ、なるほど」クミがうなずいた。「やっぱり、ここは学生視点ってことですかねえ」

 「でも最初にテストしたりするのは、大学側の方だよね」と足立。「そっちの視点も外せないんじゃない?」

 「でも、それならむしろ......」

 「おい」私は遮った。「議論なら、あっちでやって」

 はーい、と返事をハモらせながら、Aチームのメンバーはぞろぞろと引き上げていった。

 私が別の対応をしていたら、もしくは、五十嵐さんが席にいたとしたら、後にこのことがあれほどの問題になることはなかったのかもしれない。

(続く)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術・製品の優位性などを主張するものではありません。

Comment(5)

コメント

ロンド

iOSのあれは、確かにめんどい。
わざとハードルを高くしとるとしか思えん。
しかも年会費って。個人の開発者などはなっから相手にしとらん、ということか。

さる

いつもの校正さんたちが出てこないのでそろそろ言ってもいいはず……っ!
「煮詰まる」の意味を誤用していると……!!

しかし、ttp://kotobank.jp/word/煮詰る によれば、誤った使い方をする人が37.3パーセント、と。
誤用率が20%を超えるあたりから、もうその言葉は使用できないものだと思った方が良いですね。

この話は良い方向へ転んで欲しいなぁ...(*´ω`)
自分も自社で同じような事やったろうと思ってるから...

a

さすがに文書フォーマットが原因で問題が起きるってこともないだろう。

>作ったら俺の所に持って来いよ。見てやるから
ここか。裏であれこれ口挟まれるせいで、
2重管理っぽくなるとか若手のアイデアが却下されてスポイルされるとか。

通りすがり

煮詰まる、の意味を行き詰まると思ってるようだがそれは誤用。
本来の意味は、議論が深まりある一定の結論を得るに至る事を指す。

コメントを投稿する