とある元SEの思考を探る

ひょんなことからとあるICT企業ではたらくことになったなんちゃって元SEがしたためるブログ。主に、政治・経済・社会問題・日常の出来事について発信していきます。お読みいただけたら、感動にむせび泣くほど嬉しいです。よろしくお願いします。


ラストアイドル第2期を終えて

3月31日の放送でラストアイドルの第2期が終わった。

最終的に表題曲を取ったのは、シュークリームロケッツ
ラストアイドル第2期は5人のプロデューサーが5組のユニットをプロデュースし、毎週2組のユニットがパフォーマンスを行い、1人の審査員が勝敗を決めると言う形式であった。

個人戦ではなく、ユニット対決という点が1期と異なる点であった。

最近休日もなかなか時間が取れないが、タイムシフトでも必ずみるようにしている番組がいくつかあり、ラストアイドルはそのうちの一つであった。第2期をすべて見てきて感じたことは、秋元康の絶対的なプロデュース力に他ならなかった。

実は私がシュークリームロケッツの「君のAchoo!」を最初に聞いたとき、楽曲単体としてはすんなりと受け入れられるものではなかった。

冒頭の歌詞は低音で入り、サビの前にはくしゃみをし、後半にはハンカチを取り出してカメラに向かってふきふきする。

奇をてらっている感。あるいは、秋元康の挑戦と言ってもいいのかもしれない。

受け入れることができなかったのである。

しかし、この曲が秀逸だったのは、1回聞いて気に入ってもらって終わりということではなく、およそ三ヶ月間に渡って戦っていくための楽曲であるという点である。

1月28日の放送では、シュークリームロケッツLove Cocchiに破れる。前述のように曲の難しい入りや、前代未聞の曲中のくしゃみなど、メンバーはこの曲に対してどう向き合っていけばいいのか、その答えが出ていないままでのパフォーマンスであるように感じた。
一方つんくプロデュースのLove Cocchiは、青春シンフォニーで挑む。まさにつんくワールド前回のパフォーマンス。1回のパフォーマンスで聴衆を虜にする楽曲であった。シンセサイザーの明るいイントロから、高音での歌い出し。「努力全部私になる」という歌詞もわかりやすい。後半の一人一人が右手を振り上げて、1人ずつ自分をアピールする場もあり、メンバーの良さを存分にアピールするパフォーマンスであった。
最終的にLove Cocchiは決勝トーナメントにも駒を進めることになるが、納得の結果であろう。

話を「君のAchoo!」に戻す。
前述のように「君のAchoo!」の良さは、1回ではわかりにくい。むしろ、三ヶ月を通してシュークリムロケッツの取り組みの様子も加味した上で良さがわかるような構成だったと言える。

各放送のパフォーマンスの前には、前回のパフォーマンスから各ユニットがどう取り組んだかが紹介される。
曲冒頭の低音の難しさにフォーカスを当てた回があった。ここでは曲としての難易度の高さをアピールした。
くしゃみの仕方に注目した回もあった。くしゃみという前代未聞のパフォーマンス。何を参考にしたらいいかわからない中メンバーがもがく姿を見せ、見ている人に感情移入させた。

また、他のユニットに比べ、細部にこだわっているというのをまざまざと感じた。

例えば、パフォーマンスの冒頭は、メンバー3人のスカートがくっついた状態からスタートする。軽めのマジックテープになっているのかどうかわからないが、くっついた状態から、回転してくっついていたのが取れる。こうしたメンバー同士の連携は、見る人の心を揺さぶる。同様のパフォーマンスが曲の途中でも見せる。3人が腕を絡ませて歌っている箇所があるのだ。確実に歌いにくい体制だと思うのだが、そうしたある意味での歪は秋元康が視聴者、特に男性の気持ちがわかっているということだと思う。これが2月18日の審査員の判定が男女で別れた大きな要因の一つだったと思う。

そして、もう一点気になるのが、Someday Somewhereのプロデューサーの指原莉乃のこだわりと言っていた「さしこ丈」である。スカートの長さを34cmに統一したというさしこ丈であるが、もっとこだわっていると感じたのがシュークリムロケッツだったと思う。シュークリームロケッツのスカートは一見長いが、これは二段構えになっており、衣装の後部は長い丈、前部は短い丈となっている。
長い丈にしている理由は長いほど遠心力を利用できるからであると思う。遠心力はmrω2で表せれるので、同じ角速度であれば、半径が大きい方が大きな力となるのである。
シュークリムロケッツのパフォーマンスの中には随所で回転する箇所がある。この時に、長い丈の方が美しく見えるのである。いやらしさもない。そして、回転のタイミングではカメラは必ずと言っていいほど引きで撮る。この理由は、実際に映像を見てもらった方がわかるであろう。回転のパフォーマンスは全体を映すのが一番映えるのである。

正直、1回見ただけではここまで気付くことはないだろうし、まだ他にも私が気づいていないこだわりもあるのだと思う。こうした1回だけで消費される楽曲ではなく、長く話題を提供する楽曲という点で「君のAchoo!」は優れているのである。

これは、プロデュース力と言う以外になんと言えばいいのだろう。

終わってみれば秋元康の独壇場だったと言えるのではないだろうか。


しかし、総じてみれば、どのユニットにとっても、幸せな終わり方だったのではないだろうか。
総当たり戦で全敗したSomeday Somewhereは視聴者投票で1位を獲得。総当たり戦でもトータルの審査員票が9とLove Cocchiに次ぐ数であり、自信になる。
Goot Tearsは、1位突破ながらも、トータルの審査員投票数では最下位。視聴者投票でも3位であり、1位突破は自信になるものの課題を残す結果となった。
Love Cocchiは、つんくのプロデュースがとてもよかった。路上で歌わせて度胸をつかせるなど各メンバーに課題を課すというのはなかなかできることではない。2位という結果も順当であろう。
ラストアイドルは、最初の2回は2勝したものの後半2敗することになってしまった。2勝したタイミングでの視聴者投票ということもあってか、視聴者投票でも最下位であった。とはいえ第1期で表題曲を取った経験もあるので、今回の経験を生かしてさらなる飛躍が期待できる。

どこまでがシナリオに沿った展開なのか分からないが、エンターテインメントとしては秀逸であったと思う。負けて表題曲は歌えないにしても結局はCDとして発売されるんでしょという前提もあるものの、負けた後に涙を流している姿を見ると本気で取りに行っているのが感じられる。もしそれもシナリオ通りというのであれば、賞賛に値する。

秋元康の手法の一つとしてアイドルの成長を見せる+競わせるということが挙げられると思うが、それが前面に出た番組展開であった。そして、どのグループにせよ、プロデューサーにせよ、秋元康の手のひらで転がされている感が半端ない上、それをわかった上でも視聴者を惹きつけてしまうのは、脱帽するしかない。

職業エンジニアの価値の指標

職場で、すごく知識はあるのになぜバグが多いのだろうというエンジニアがいて、エンジニアとしての価値の指標はなんだろと考えてみた。

 

そして、私の頭の中で、大まかに以下の6つにまとめてみた。 

  1. 業務の理解
  2. 技術に対する知識
  3. 保守運用性の高い(可読性の高い)コードの実装力
  4. バグが少ない
  5. コーディング速度
  6. アルゴリズム

それぞれ、活動しているフィールドによってどの軸に強いとか弱いとかあると思う。たとえば、言語を開発しているエンジニアにとってみれば、その言語が正しく動くためのアルゴリズムを実装できるかというのが大事な要素になってくるし、会計システムに関わっているエンジニアであれば、会計の知識(業務知識)は必須のものであると言える。

各軸について、簡単に説明したいと思う。

 

1. 業務の理解

業務の理解は、上位レイヤー(要件定義・外部設計など)に関わるエンジニアであれば、これができないと実装まで落とし込めないし、メソッドを作るにしても、メソッド名すら名付けるのが難儀になってくる。古くからのSIerでは、業務を理解していなくても与えられた仕様書に沿って実装してしまうかもしれない。しかしそれでは、その仕様書が本当に業務に沿ったものかがわからないし、それがバグの温床ともなる。SIerが炎上しがちなのは、実装がわからないSEと業務がわからないプログラマがシステムを構築することも一因であると思う。

 

2. 技術に対する知識

エンジニアであれば自分が使っている技術に関しての知識があるのは大前提であるが、全てを知っているというのは到底無理なので、今までの経験や自分の興味等により濃淡が生じる。例えば、Rubyエンジニアであれば、基本的なオブジェクト指向の考え方、Rubyが用意してくれている便利なメソッドたちを知っておくことは必要であるが、Cの実装までは理解しなくても仕事にはなる。とはいえ、内部実装を知っておくことは何らかの形で役にたつかもしれないから知っているにこしたことはないが、そこまでの知識は必須とはいえない。

 

3. 保守運用性の高い(可読性の高い)コードの実装力

究極的にいえば、逐次処理,条件分岐,繰り返しを理解していれば、望む挙動となるプログラムを書くことができるであろう。しかし、一つのメソッドがだらだらと長く、複数のことを行なっていたり、全然関係ないメソッドがあったりすると、後から読むと何をするコードなのか理解が難しくなる。

そうならないようにオブジェクト指向などの概念を理解し、プロジェクト毎のルールに沿って実装し、できる限り後から読んだ人が理解できるよに書くかが大事である。

また、あまり使われないトリッキーなコードを書かないということも重要である。少し挙動把握が難しくかつあまり頻繁に使われないメソッドをつかったりすると、その挙動の理解だけでエネルギーが消費され、それが要件にあった挙動なのかということと合致させる難易度が高くなる。できる限り、シンプルに記述するように努めるべきである。とはいえ、配列をforで回して代入して新しい配列をつくろうというのであれば、最近の言語にはmap関数があるのでそれを使わない手はないし、何が難しく何がシンプルなのかの線引きは難しい。言語の習熟度や時勢(流行り廃り)にも影響されるので、コードレビューなどを通じてチームとしての認識の一致をはかっていくべきであろう。

 

4. バグが少ない

バグというのは、必ず生み出されてしまう。これをゼロにするのは不可能に近い。しかし、バグをできる限り減らそうとする努力は怠るべきではない。

前述した、「シンプルに書く」 というのもバグを減らす良い方法の一つである。なぜなら、多くの場合、現実に求められる要件の方が複雑で移り気だからである。一見理不尽な要件が正しかったりする。一方でプログラムの方は完全に論理の世界であり理解すれば難しいことではない。現実の要件をコードからも読み取れるよう、できる限りシンプルに書くべきなのである。

バグを減らすというのは、言ってみれば、いかに全ケースを網羅できるかということにかかっている。数学でいえば、場合分けだ。二次関数の最小値を求める時に範囲がどこかによって最小値が変わる問題を解いたとことがあると思うが、それと同じである。一つでも抜け漏れがあれば、不正解となってしまう。このパターンが多くなればなるほどバグが生じやすくなる。このパターンをいかに網羅できるかがバグを減らす鍵となってくる。

 

5. コーディング速度

すなわち生産性だ。保守運用生が高く、バグが少ないコードを素早く実装できるエンジニアは強い。

 

6. アルゴリズム

実は、業務システムを作るにあたって、アルゴリズム力というのはそこまで必要とされない。

昔の人は並べ替えをいかに速く行うかについて研究してきた。マージソートクイックソートなどが考案された。

しかし、業務システムを作るにあたってはあまり重要とはならない。最悪、ループで回して一つずつ処理をおこなっていけばいいのである。それらの効率の良いアルゴリズムは、言語の中で実装され、私たちが知らないところで活躍してくれている。

また、特に近年は、ハードウェアの技術が向上して愚直に実装してもそれなりの速度で返ってくることが多い。札束で殴れば解決することも多い時代なのだ。

しかし、処理速度をあげたい!新しいロジックで機能を追加しなければいけないエンジニアはアルゴリズムをつくる力が必要になる。例えば、以前私はぷよぷよにインスパイアされたゲームを作ったことがあるのだが、4色揃えば消えるようにするのはアルゴリズムを書かなければいけない。ぷよぷよアルゴリズムであればググれば出てくるので、コピペエンジニアである私は、コピペして使ったが(もちろん、理解をし、自分の環境に合うように修正は行った)、新しいゲームのルールであればエンジニアが自分で考える必要があるであろう。

 

 

私自身はというと、どちらかというと業務寄りのコードを、しかも短納期で仕上げることが求められることが多いので、業務の理解やコーデイング速度はそれなりに高い方だと思う。しかし、技術に対する知識はまだまだで、先輩エンジニアに教えてもらうことも多い。保守運用生に関しては、自分では評価しにくいが、同僚に聞いてみたいところ。バグもまだまだ多く、減らす努力もしているが、なるべく検知して大怪我にならないようなところで止めるようにしている。アルゴリズム力に関しては皆無といってよく、競技プログラミングは敬遠している。 

川崎投手を思う

昨日、テレビ東京系列のSPORTS ウォッチャーを見ていたら、元プロ野球選手の川崎憲次郎の特集があった。

川崎投手といえば、ヤクルトで活躍し、FAで中日に来た右腕で巨人キラーとして有名な投手だ。私は小学生の頃からプロ野球を見ているので、川崎投手についてはテレビでよく見ていた。

ワインドアップ時に右足のかかとを浮かせる投法は真似してみたものだ。

そして打倒ジャイアンツの御旗のもとに星野監督のもとで始った中日ドラゴンズでの川崎投手の活躍は、1年目のオープン戦の怪我で全てなくなってしまった。


今でもその時のことを覚えていて、町の集会所のテレビで見ていた記憶がある。そのときはあそこまでひどい怪我だということはわからなかったが、その後数年シーズンを棒に振り、復活することなく引退することになったのだら、よほどの怪我だったということがわかる。

 

ずっと1軍で投げられないまま2年が過ぎ、川崎投手に再び注目が集まったのが2003年だった。1度も1軍に登板のない川崎投手がオールスターのファン投票で1位に選ばれたのだ。

俗にいう川崎祭だ。

 

2ちゃんねるの住民が中心となって、川崎投手への投票を呼びかけていた。
インターネットでの投票は投票結果にすぐに反映され、ハガキでの票は時間がかかることから、途中結果では1位になっていても最終的に1位になることはないという見方もあった。しかし、2ちゃんねるというインターネット上のコミュニティ発祥だからネット投票だけかと思いきや、球場にも足を運んで投票した人も多く、最終的にも1位となった。(とはいえ、川崎投手へのインターネットからの投票が多かったのは事実である)

実は、私もインターネットや球場にて川崎投手に投票した1人である。

なぜか。

2003年、私は中学3年生だったのだが、あの年は今までにないくらいナゴヤ球場に足を運んだ年だった。中学生ということもあり、前売りであれば100円で2軍戦を観戦できたのである。週末にナゴヤ球場で試合があれば必ずと言って良いほど観戦に行っていた。受験生なのにである。

2003年には、川崎投手は2軍では実践登板を何試合もしており、2軍では悪くはない結果を残していた。
1軍で活躍できるかどうかはともかく、もうすでに投げることができる状態であったのである。
何試合か2軍で投げたのであるから、私は川崎投手を1軍の試合で見たかった。もし仮に打たれても構わないから1軍で見たかったのである。ナゴヤ球場で川崎投手の登板を何回も見ていた私は、その思いが強くなって行った。
もしもう1軍での活躍が見込めないのであれば引退という決断もできたはずだ。しかし、ペナントレースは生き死にを争う戦場。万全でない投手が投げるのをためらうのは理解できる。

ならば、オールスターはどうであろう。オールスターはペナントレースと違い、ある種のお祭りだ。そして川崎投手は沢村賞を受賞した名実ともにスターなのである。その意味で必ずしも結果を残している選手しか出れない試合ではないし、私は、オールスターが川崎投手の引退試合になっても良いとさえ思っていた。

それほど、2003年というのは川崎投手にとって復活にかけて大事な年だったと思う。早く1軍に上げて欲しかった。打たれても良いから上げて欲しかった。ナゴヤ球場に足繁く通い、川崎投手の登板を何度も見て来たからこそそう思ったのである。

かくして私は川崎投手に投票した。そしてファン投票1位に選ばれた。

そして川崎投手は出場を辞退。2003年も1度も登板することなく2004年を迎えることとなった。4年契約の最終年である。

監督が落合監督に変わった2004年。川崎投手は開幕投手に選ばれる。
2イニングを投げ5失点という結果だったが、チームは勝利。補強という補強をしなかった中日が2004年に優勝した1勝目の試合の1球目は川崎投手の1球から始まったのである。

開幕投手に選ばれたものの2度目の登板となる4月30日にも打ち込まれ、秋には戦力外通告。10月3日の対ヤクルト戦が川崎の引退試合となった。ヤクルト時代優勝も経験した元同僚の古田・宮本・岩本を三者連続三振に切ってとり、両チームから胴上げされた。

私は、開幕投手として川崎投手を見ることができ、結果は出せなかったものの、選手としてもはや1軍で戦うことのできなくなった川崎投手を目の当たりにした。2軍で苦しみ、もがき、あがきそれでもダメだったのだから、これ以上プロ野球選手として頑張る必要はない。そう思った。このまま1軍で1度も登板することなく引退するのだったら、くやんでもくやみきれないだろう。

川崎投手の頑張りは、中日の若手選手はよく見ていた。それがその後の中日の黄金期につながった部分もあるだろう。
ナゴヤ球場での川崎投手の登板時には、当時これまた怪我で苦しんでいた、中里投手や朝倉投手がバックネット裏でビデオカメラで撮影していた。沢村賞に輝いた右腕の投球術を学びたかったのであろう。

中日では活躍できなかった川崎投手であるが、ファンの記憶に残る投手であった。

昨晩の番組では、その川崎投手の今を知ることができ、地元大分と東京で活躍しているのを見て安心した。また、何らかの形でグラウンドに戻って来てほしいと思う。