職業高校の技術機能理論的学歴観の変容 - はてな村定点観測所
ウェブサービス開発の現場におけるデザイナー不要論と5〜10年後の生存戦略 - 情報建築家 石橋秀仁
特にWeb、スマートフォン領域のエンジニアやデザイナーにとって(今回はこの領域に限ります)、大学や専門学校、職業高等学校での専門的知識がどれだけ役に立つのかという議論は長く続いているが、なんか齋藤さんと石橋さんという2人の友人がそれぞれ同時に違った深みで議論を始めたので(齋藤さんは階級文化の観点から、石橋さんはデザインを広い活動の中に位置づける観点から)、思ったことを書く。もっとも、現実のソフトウェア開発は厳しいのであるが。
Summary
パラグラフ・ライティングを出来る程度に回復していないようで、どうもまとまっていないので、論旨を書きます。
学校でどんな専門的なことを学んでも、デザインを他の活動に広くつなげる能力を持っていても、組織の中でどんな技術を使うかを決定する人間がそれを知らなかったり、否定的な立場をとったらどうしようもない。「学校で学んだ専門知識は役に立たない」ようにしているのはむしろ組織のほうであり、そのせいで学ぶ側も意識をそがれている。エンジニアやデザイナーが単純作業しかできない環境におかれ、学んだり知識を活かすことができず、なおかつそのせいで価値がないとみなされるのは本末転倒だ。専門的な知識は時間的、金銭的な投資が必要なこともあるので、組織のマネージャーは専門的な知識の理解に努め、個々人の専門的な能力の最大化を目指すべき。
「職業エンジニア」として必要な知識
スコップで穴をほって埋める作業に大卒の知識はいらないが、今の「Webエンジニア」と呼ばれる仕事で大卒や専門卒の知識はいるのだろうか?基本的に「エンジニアとして必要な技術的知識」としては以下の様なものが挙げられる。もっとも、現実のソフトウェア開発は厳しいのであるが。
- プログラミング言語の構成要素と、オブジェクト指向、関数型などパラダイムの基礎知識
- データベースの様々な種類とその操作、及びCAP定理などのトレードオフ
- ネットワークとHTTPなどのプロトコルに関する基礎知識
- UNIXの基本操作とその運用
- MVCを始めとするフレームワークを適切に運用できる知識
- バージョン管理システム、チケット管理システムなどの知識
- これらを統合し、システム開発をうまく行かせるプロセスに関する知識
- その他膨大な実践の中でうまく行かせる知識
まあこれくらいあればとりあえずは大丈夫だろう。漏れは恐らくある。
これらを見ると、「大学以外でも学べる」ものが多いものであるにもかかわらず「大学でしか学べない」ものがほとんどないことがわかる。厳密には独学はできるがきちんとした理解には大学の知識が必要といったところか。もっとも、現実のソフトウェア開発は厳しいのであるが。
一方、工業高校や専門学校ではある程度のことをやるし、専門学校によってはほぼすべてをカバーしているところもある。ある程度昔のカリキュラムについて把握してはいるが、名だたる大学の卒業生に「入門書を読んで何もしない」人間が数多くいる中で、やっていく気持ちのある卒業生はちゃんとその道に入れる印象がある。このため、どちらかというと、職場と教育のギャップは大学の方に多いと思われる。そこで、以下では大学教育と職場の関係について述べる。もっとも、現実のソフトウェア開発は厳しいのであるが。
専門的な知識にゴーサインを出せない人が上をやったら全部ダメ
では、何で情報工学や情報科学、デザインや芸術の大学/大学院での知識が、実戦で使われないのか。わかりやすいところでは、今データサイエンティストと呼ばれる統計解析や機械学習は、独学が難しい。また、プログラミング言語に対する深い知識があれば、今作っている言語やフレームワークの悪い部分を自力で改善できる。GoogleやFacebookでなくても、Railsの37signalsやExpressのvisionmediaなど、高度な知識を持った人々が企業内で作ったフレームワークを表に出し、エコシステムそのものをリードしている例は少なくない。CoffeeScript、あれはやばく、100ページ本を読んだだけで作ってしまったのだが、あれはあれだ。データベースやネットワークについても、内部構造の理解がさらなる最適化を生む場合が多い。RDBの性能の基本となるB+木を理解するのにはある程度の専門的素養が必要である。もっとも、現実のソフトウェア開発は厳しいのであるが。
デザインや芸術については、俺は深い部分を知らないので断片的なのだが、一時期海外でMFA(芸術学修士)が流行すると言われたのを見たことがあり(どうやらそこまでではなかったようだ)、デザインスクール(日本では慶應メディアデザインや東大のi.schoolなど、IAMASウッIAMASアアーーッ)では特殊専門的なカリキュラムが構成されている。また、社会学をやっている関係で隣接領域であるのだが、デザインリサーチ(デザインに活用するためにフィールドワークを行うなどの試み)も、ある程度の専門的訓練が必要である。石橋さんのようなデザイナー観は、既に一部の教育機関では常識のものである。もっとも、現実のソフトウェア開発は厳しいのであるが。
しかし、日本じゃこのようなことはまかり通らない。とにかく余裕と理解がない。「新しい言語やフレームワークを導入しましょう」っていう段階で既に矢のように批判が飛んでくるし、自分で作る場合などなおさらだ。データ解析でも難しいことをやろうとすると「いや、時間が」となるし、まあこれ以上はあまり言わんでおこう。デザイナーのあり方についても、マーケティングとデザインをつなげる視点も、IAをやっていくのも、矮小化して潰しているのは企業だ。とにかく、こういう難しいことを独自でやると凄く自社のやっていることの価値が上がるみたいなことについての抵抗が強く、時間や金銭などのリソースを出し渋ってしまう。今メジャーな技術以上には手は出さない。そして、最終的に遅れていく。古い機械を動くからといつまでも使い続ける工場のように、社の中で使われる技術は進化しない。もっとも、現実のソフトウェア開発は厳しいのであるが。
これは要するに、今あるパーツを組み合わせるだけの仕事をエンジニアにさせているということに他ならない。石橋さんのデザイナーに対して言っていることはまさにこれだと考えている。要はありものでいいじゃん、自分でゼロから創造性を発揮する必要ないじゃん、ということに、デザインがなりつつあるということだ。だから、ビジュアルデザイン以上の価値をデザイナーが持つべきという視点には賛同する。しかし、それが企業での立ち位置を認められるかはわからない。もっとも、現実のソフトウェア開発は厳しいのであるが。
企業と大学の悪い共生関係
こういう状況は、どんどん悪くなるだろう。なぜなら
- 企業が専門的知識や技術を軽視する
- その上で、「大学で学んだことなど役に立たない」という態度をとる
- 学生もそれを真に受けて、学問としての情報工学などに関心を持たなくなる
- その結果、企業に流入する専門的知識や技術が少なくなる
こういった悪いフィードバックがあると思われるためである。これは、齋藤さんが「技術機能理論的学歴観の崩壊」として名指したことに近い。その先としての
勉強は知識を獲得したり、よい成績をあげるために重要なだけではなく、それ自体がつらいことに耐える訓練としての意味を持つ
という傾向までもある。つまり、「理系の大学生は文系よりよく勉強する、だから使える」という価値観だ。 もっとも、現実のソフトウェア開発は厳しいのであるが。
学んじまった人間はこの先どうすればいいか
そりゃ諦めるわけにはいかんだろう。諦めなくても良い職場ってのはもちろんある。しかし、日照りの中で蒸発していく水たまりの水に皆が群がっても良いことはない。一つの方法としては、アカデミックであり続けられる場所を確保するということだ。大学と二足のわらじを履いても良いし、勉強会をガンガン高度にしてアカデミックにするのも良い。もっとも、現実のソフトウェア開発は厳しいのであるが、その隙間にゴキブリのように専門的知識を残し続ければ、いつか活路はあるはずだ。
結論のようなものはない。とにかく意思決定者の理解に任せるしかない。組織で使えるのはその人が持っている専門知識だけなので、そういう人が新しい技術に通じていることが必要になるが、そういう自覚を持っている人はほとんどいない。何しろ現実のソフトウェア開発は厳しいのであり、厳しいコードが目の前に有る。
なんでこんな記事を書いたかだが、俺はだいぶ前にソフトウェア開発の泥臭さに失望して仕事をしているのだが、齋藤さんや石橋さんが改めていろいろ考えさせられる記事を書いたので、いろいろ思い出して辛くなって吐き出した。もっとも、現実のソフトウェア開発は厳しいのであるが。