キャリア Vol.1154

今、ユニケージ開発手法にギークが熱狂するワケ【USP研究所代表&オープンソースOSコミッター対談】

【PR】

無駄のない美しいコードを書き続けたい。そんなふうに思っても、現実的に「やるべきこと」に阻まれ、気持ちにフタをしてしまっているエンジニアもいるはずだ。そんな人に紹介したい「今、アツい集団」がいる。

ユニケージ開発手法」を確立した技術者集団、ユニバーサル・シェル・プログラミング研究所(以下、USP研究所)だ。オープンソースOS「FreeBSD」のコミッターとして知られる後藤大地さんは「こんなに面白い会社は見たことがない」と、同研究所に惚れ込んでいる一人。

USP研究所の何がギークなエンジニアを熱狂させるのか? 後藤さんとUSP研究所の代表、當仲寛哲さんに話を聞いた。

有限会社ユニバーサル・シェル・プログラミング研究所
(写真右)有限会社ユニバーサル・シェル・プログラミング研究所 代表取締役 當仲寛哲さん
1990年東京大学工学部機械工学科卒業。92年ダイエーに入社し、基幹システムの改革プロジェクトを先導、大幅なコストダウンを実現し社長賞受賞。2005年ユニケージ開発手法の研究・教育・普及機関としてUSP研究所を設立した。10年にGoogle Tech Talk、14年ビジネスブレークスルーITライブに出演するなど、講演実績多数。共著書に『ユニケージ原論』がある。代表を務めるUSP研究所は、08年IPA主催の「ソフトウェア・プロダクト・オブ・ザ・イヤー2008」を受賞。12年にはビッグデータ処理専用ソフトウェアアプライアンス『uspBOA』を発表している

(写真左)有限会社オングス代表取締役 FreeBSDコミッター 後藤大地さん
沼津高等専門学校を経て名古屋大学情報文化学部入学。卒業後、有限会社オングスを設立。企業システムの設計・開発、コラムの執筆の他、『フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門』『FreeBSDビギナーズバイブル』など、著書・共著書ともに多数。BSDコンサルティング株式会社の取締役・最高技術責任者を兼務

システム開発未経験者が作り上げた『ユニケージ開発手法』とは?

後藤「変なことする人がいるもんだって驚きましたよ。だって、データベースを使わずに、UNIXコマンドとシェルスクリプトだけでエンタープライズシステムを作るって言うんですから。でもよくよく話を聞いてみたらすごく理に適っているし、開発アプローチも非常に論理的で合理的。それ以来、もう10年以上ユニケージ推しです」

FreeBSDのコミッターとして知られる後藤大地さんは「ユニケージ開発手法」の存在を知った当時をこう振り返る。

ユニケージ開発手法とは、UNIX系OSにおいてコマンドとシェルスクリプトでシステムを開発する手法。パッケージソフト的アプローチとは全く逆の、ユーザーに合わせてゼロから開発する、徹底したスクラッチ開発の手法である。プレーンテキストとして保存されたデータを、OSの基本機能であるコマンドとシェルスクリプトで処理するUSP研究所独自のソフトウエア開発メソッドだ。

プログラムの移植性や可読性、柔軟性、処理速度などに圧倒的に優れており、開発期間の短縮、ユーザー要件とシステムの乖離の最小化、保守性や拡張性の大幅な向上が実現できる。

有限会社ユニバーサル・シェル・プログラミング研究所

後藤「マルチコアプロセッサーに対応したカーネルは、パイプラインで連結したプロセスを条件が揃えばほとんどロスなく並列実行できます。つまりユニケージ開発手法を用いれば、例えばCPUが32コアあれば、32コア分の能力をフルに使ってデータを処理できてしまうわけです。匠が鍛えた名刀でスパスパ斬っている感覚でデータを扱えるわけですから、気持ち良くないわけがありません」

一方、ユニケージ開発手法の生みの親であるUSP研究所の當仲さんは、元々大学で情報工学を学んでいたが、アルバイトに明け暮れるうちにプログラミングへの関心が失われ、就職後しばらくはITとは無縁の生活を送っていたという。

當仲「学生時代には、小遣い稼ぎに麻雀ゲームの開発をしたり、当たるともう1本もらえる自販機のルーレットをプログラミングしたりしていましたが、エンジニアになろうとは思っていませんでした。当時は飲食や呼び込み、清掃のアルバイトに明け暮れていたこともあって、どうせならITとは無関係な業種に進もうと。それでスーパーのダイエーに就職したんです」

しかし入社後、期せずして基幹システムの改革プロジェクトにアサインされることになり、當仲さんの人生は再びITの世界に引き戻される。

當仲「上司の指示で、しばらく遠ざかっていたUNIXを再び触るようになりました。手始めにやったのは、UNIXの開発者の一人であるブライアン・カーニハンが著した『ソフトウェア作法』を読み見直すこと。ページをめくる度に『シンプルな機能を持ったコマンドを組み合わせてプログラムを作れ』とか、『アルゴリズムもデータ構造もシンプルであるべき』『必要なコマンドは自作すればいい』だとか、すごく示唆に富む言葉が目に飛び込んできて、情報工学に対する意欲が再び湧き上がってくるのを感じました」

有限会社ユニバーサル・シェル・プログラミング研究所
當仲さんはUSP研究所を立ち上げてから、実際にブライアン・カーニハンに会いに行った

當仲「当時はシステム開発やデータベースに関する知識も経験も乏しかったですし、周囲に頼れる専門家もいなかったので、ここは素直にUNIXを開発した先生の言葉に素直に従ってみることにしたんです」

企業の基幹システムに用いられるアルゴリズムは、売上や在庫数などの数字を足したり引いたり、つなげたりといったシンプルな動作の集積だと見切った當仲さん。早速、UNIXコマンドを何十本ものパイプラインでつなぎ手元のデータを流してみたという。

當仲「想像した通りうまく動きました。ただ、それを見ていた外部のエンジニアからは『プログラムもソフトウエアもまったく理解していない』と、鼻で笑われてしまいましたが(笑)。でも、フタを開けてみれば、コマンドとシェルスクリプトだけで商品管理や売上管理に必要な機能を作れましたし、最終的にはそれまで大型汎用機上で稼働していた基幹システムを全部スクラップして、安価なUNIXで動くシステムに置き換えることができました

この経験を生かし2005年に立ち上げたのが、當仲さんが代表を務めるUSP研究所だ。現在、USP研究所の顧客リストには、良品計画、成城石井、東急ハンズ、ロッテリア、三省堂書店、ビームスといった、誰もが知る企業名が並ぶ。

當仲「これまでに作ったコマンドは累計で2,000以上はあると思いますが、使い続けるうちにコマンドの淘汰が進み、今では選りすぐった50個ほどのコマンドで大半の基幹システムを開発できるようになりました。大きく複雑に見える問題も細かく分解していけば、小さな道具(コマンド)を使って速く安く解決できる。それは企業の大規模な基幹システムも例外ではありませんでした」

1/100の投資で10倍の性能を実現。
ユニケージ開発の恐るべきポテンシャル

現在主流のオブジェクト指向言語とデータベースソフトによる開発とは一線を画すユニケージ開発手法。OSとマシンの機能をフル活用するためデータの高速処理を得意とするのは明らかだったが、創業当初はなかなかそのメリットを世の中に受け入れてもらえなかったという。

當仲「ユニケージ開発手法は、細分化したタスクを大勢のエンジニアに振り分け、力業で押し切るタイプの開発手法とはまったく逆の思考。少人数でシンプルなコマンドを組み合わせ、無限の機能を生み出すアプローチです。エンジニア一人一人が熟練した多能工のように振る舞うことが求められるため、人海戦術で開発するほうが経済的でスケールアップしやすいと考えるビジネスサイドの人たちにはなかなか理解されませんでした」

しかし、ビッグデータ時代の到来で、ユニケージ開発手法に対する見方は好意的になったそう。

後藤「ここ数年ビッグデータを扱う機会が急速に増え、ユニケージ開発のポテンシャルを実感してもらいやすい環境になっているからだと思います」

2012年には、マシンレベルでも並列処理したらどれぐらいの性能が出るだろうという興味から、後藤さんと共にユニケージ開発手法をベースにした『uspBOA』というビッグデータ専用のソフトウエアアプライアンスを作った。

有限会社ユニバーサル・シェル・プログラミング研究所

當仲「10万円以下で買ってきたごく普通のパソコンを10台並べ100GbpsのInfiniBandでつないだものなのですが、簡単なシェルスクリプトを書くだけで、10億件を超えるデータのソート、セレクト、ジョイン、演算ができ、100億件を越えるデータ検索を難なくこなすことができました。uspBOAの発表以降、皆さんから注がれる視線がずいぶん変わった気がします」

大手ベンダーに頼めば数億円オーダーのハードウエア投資を1/100以下に抑えた上、性能比は10倍以上というスペックを叩き出したのだから驚くほかない。

後藤「Web アプリ開発を例に挙げると、最近はクラウド上に立てたコンテナの中でプログラムを書き、もし性能が足りなければコンテナ数を増やして対処することが一般的です。ただこのやり方だとスケールアップする度に膨大な予算がいるし、OSごと仮想化するのでどうしても動作が遅い。一言で言えば無駄が多いんです。

ユニケージ開発手法なら1台のマシンをフルに使い切れますし、uspBOAが証明したようにマシンを並列につなげば安価で強力な実行環境を構築できます。大量の電力を消費するデータセンターなどよりはるかに環境に優しいのは言うまでもありません。今後ますますユニケージ開発手法のメリットが理解されやすい時代になってくるんじゃないかと思っています」

また、當仲さんはユーザーフレンドリー、開発者フレンドリーな環境を追い求めるあまり、エンジニアは大切なものを見落しているのではないかと感じている。

當仲「人間がちょっとだけ努力して歩み寄るだけで、コンピュータのリソースを100%使い切れるわけです。その方が合理的で経済的だし、後藤さんの言うように環境に優しいのは間違いありません。ただ漫然と楽な方へと流れていると、課題解決の道具に過ぎない開発環境に使われてしまうことになりかねない。もしそれが嫌ならレイヤードされた階層の上部で開発する便利さに安住せず、エンジニアはCPUやOS、アセンブラなど、低レイヤーに属する知識をもっと積極的に学ぶべき。それが私の持論です」

「よく斬れる美しいコマンド」は“ヘンタイ”にしか作れない

USP研究所は今、ユニケージ開発手法を使ったシステム開発に携わるエンジニアに加え、AIやIoT、FinTechなどの分野で需要が高まりつつある高速分散処理を極限まで高めるエンジニアの採用を急いでいる。

當仲「特に後者のエンジニアには、抽象度の高い思考力と想像力が求められます。例えるなら、鍋、釜、包丁が存在しない世界で、まっさらな状態からこれらと同じシンプルで使い勝手のいい道具を発明できるエンジニア。名工のワザと芸術家気質を兼ね備えたエンジニアです。そういう優れた人材を一人でも多く採用してユニケージ開発をより多くのシステムに適用できるように、OSレベルから改善していきたいと考えています」

後藤さんも「よく斬れる美しい」コマンドは“ヘンタイ”にしか生み出せないと言い切る。

後藤「USP研究所には、コマンドの善し悪しや、どのデータをディレクトリのどこに置くべきかで盛り上がるような“ヘン”な会社。ずば抜けて優秀な“ヘンタイ”エンジニアが幅を利かせているという意味では、オープンソース界隈の雰囲気にもよく似ています。だからこそ“よく斬れる美しい道具”が作れるんだと思います」

有限会社ユニバーサル・シェル・プログラミング研究所

USP研究所にはウォーターフォール型開発に馴染めないエンジニアや、原理原則や本質を重視するエンジニアのための居場所があると當仲さんは訴える。

當仲「うちはキレキレのエンジニアリングと、商人道にも通じるビジネスマインドが同居しているちょっと変わった会社です。テクノロジーに栄枯盛衰は付き物ですが、USP研究所のエンジニアに求められるのは、低レイヤーに属するテクノロジーに対する深い見識、そしてシンプルな道具で複雑な課題を解決しようというUNIX哲学への共感です。

もし今、売上や利益の名のもと、バズワード的なトレンドに振り回されたり、エンジニアの創造性や論理性をないがしろにするような環境に身を置いていたりするなら、ぜひUSP研究所で力を発揮してほしいですね」

UNIXで世界を変えたいという気概と能力を持ったエンジニアを熱狂させる環境。エンジニアリングの理想を追求したいエンジニアにとって、USP研究所は有力な選択肢になるはずだ。

>>USP研究所(有限会社ユニバーサル・シェル・プログラミング研究所)の中途採用情報はこちら

取材・文/武田敏則(グレタケ) 撮影/吉永和久

この記事が気に入ったらいいね!しよう

エンジニアtypeの最新情報をお届けします

RELATED POSTSあわせて読みたい

RECOMMENDED POSTSあなたにオススメ

JOB BOARD編集部おすすめ求人

株式会社システムリノベイト_求人情報ページ
エンジニア転職フェア開催 IT&モノづくりエンジニアを求める優良企業が大集結!
記事検索

サイトマップ



記事ランキング

「エンジニアは高過ぎる意識を捨てよ」と言われたスマニューPMたいろーさんの「サービス改悪」回避法

「エンジニアは高過ぎる意識を捨てよ」と言われたスマニューPM...

データサイエンティストに必要なスキル・仕事内容・勉強法を網羅的に解説

データサイエンティストに必要なスキル・仕事内容・勉強法を網羅...

SIerって本当にヤバいの? ひろゆきが語る、業界ごと沈まないためのキャリア戦略

SIerって本当にヤバいの? ひろゆきが語る、業界ごと沈まな...

英文メールでよく見る「略語」の意味は?アメリカ&シンガポール企業で働くエンジニアが解説

英文メールでよく見る「略語」の意味は?アメリカ&シンガポール...

『少年ジャンプ』がエンジニアとつくりたい未来とは?集英社『マンガテック2020』仕掛け人に聞く

『少年ジャンプ』がエンジニアとつくりたい未来とは?集英社『マ...

「type転職エージェント」無料転職サポートのご案内