パフォーマンスを上げる為にUNIXから学べる9つのフィロソフィー

パフォーマンスを上げる為にUNIXから学べる9つのフィロソフィー

 
 
こんにちは、なかしーです。
ちょっと珍しく書評もどきなエントリーです。(長いです。)
 
ビジネスクリエーターズの話では無いんですがね、半年前位に新しく新人がきたんです。
技術系の仕事なのに、その彼は余りにも基本を分かってなさすぎてびっくりしっぱなしの毎日なのです。
こっちもビジネスですので、普通に考えたらマジごめんなさいしたいレベルなのですが、今回は大人の事情でそうもいかないので、腹括って育てる事になった訳です。
それで無茶振りも交えながら色々と教えるわけですが、まー、なんと言うか、あ゛ーーーー!!!!となる訳です。
まぁそりゃ小学校くらいからコンピュータ触ってた人と、社会人からいきなり仕事用にUNIX触る人では、それはそれは様々な前提が違うので仕方が無いんですよ。やっぱり誰しも最初は赤ん坊な訳ですし、文句言ってても始まらないし、優秀な人材になってもらいたいし、そしてやっぱり楽しく学んで欲しいし。
それで、私の100倍くらい凄い方と、どうやったら楽しく(できれば自主的に)、効果的に育つもんですかねぇ。と雑談をしてて、本を二冊オススメされたわけです。(ここまで若干ただの愚痴っぽいですが違います。何故この本に至ったかの大事なお話なのです。( ー`дー´)キリッ
それで、そのうちの一つがこの本。

後輩に読ませるのに自分が読んでないとかあり得ないので、(というか、むしろ、なにそれ超面白そう!ってワクワクで)アマゾンで速攻注文。
そしたら、UNIXコマンドの事なんてほぼほぼ載ってない。まぁびっくりするくらい載ってない。というか、そういう話は専門書読んでくれとすら書いてある。
大体、タイトルが「UNIXという考え方−その設計思想と哲学」ですよ。「思想」と「哲学」ですよ。「イデオロギー」と「フィロソフィー」ですよ。そりゃ、コマンドは載ってないはずですよ。
いや、というか、実はこういう本大好き!!!
読み進めるとですね、UNIXの9つの定理、なるものが出て参りましてね、これがね、良いです。

1,スモール・イズ・ビューティフル
2,一つのプログラムには一つのことをうまくやらせる
3,できるだけ早く試作する
4,効率より移植性を優先する
5,数値データはASCIIフラットファイルに保存する
6,ソフトウェアを梃子(てこ)として使う
7,シェルスクリプトによって梃子の効果と移植性を高める
8,過度の対話的インタフェースを避ける
9,すべてのプログラムをフィルタとして設計する

UNIX系のOSを触ったこと無い人には若干ピンと来ない用語も有ると思うんですけどね、そういう人でも絶対読んでおいたほうが良い。
これ、技術系の本というよりも、ビジネス本として見て全然良いと思うのです。システム=ビジネスという意味で見ると良いわけです。
「じゃぁ、そのポイントを幾つかこの後書いてくれるんだろうな」と多くの人が思ってるんでしょうが、残念ながら時間の都合上、(というかたった144ページの薄い本だから)そんなことはしません。買って読んだ方がいいです。(なので書評もどき。)
 
まぁでも、それもさすがに酷なので、分かりやすい(と思う)所だけ挙げちゃおうかな。
「システム(というかビジネス)は、兎に角早く動く物を創る方が良い。」という文脈はよく有ると思いますが、では何故早いほうが良いか?というと、それは『「第三のシステム」に早く到達する為だから』とのこと。じゃぁ、その「第三のシステム」というのは何か、という説明の部分です。
(P32から一部抜粋。)
「人間には、三つのシステムしか作れない。いくら一生懸命にやっても、何時間、何ヶ月、何年つぎ込もうとも結局は三つ止まりだ。」
「人間の作るシステムは、人間の場合と同様に三つの段階を経て発展する。」
「追い詰められた人間が第一のシステムを創る」
「「正しく」やっている時間などない」

「第一のシステムは、一人か、またはせいぜい数人からなる小さなグループで創られる」
「第一のシステムは無駄がなくて俊敏な計算機だ」
「第一のシステムのコンセプトは人間の想像力を刺激する」

「「専門家」が第一のシステムで証明されたアイデアを用いて第二のシステムを作る」
「第二のシステムは、委員会が設計する」
「第二のシステムはぜい肉がつき、遅い」
「世間は第二のシステムを鳴り物入りで歓迎する」
「第三のシステムは第二のシステムで「火傷」した人が作る」
「第三のシステムは第二のシステムから大きく名前が変わる」
「オリジナルのコンセプトはそのまま残り常識となる」
「第三のシステムは、第一のシステムと第二のシステムの最良の特徴を組み合わせる」
「第三のシステムの設計者には、ようやく「正しく」やることができる時間が与えられる」
「では、どのようにすれば、第三のシステムを作れるのだろうか?最初に他の二つのシステムを作るのだ。それ以外の方法はない。」
「しかし、近道がないわけではない。それは、第一のシステムから第三のシステムへとできるだけ速く進むことだ。」
 
いかがかしら。これまで何かシステムなりビジネスを作ったことがある人は感覚的にピンと来る人が多いのではないかな。
これがUNIXにおける大事な考え方の一つだというわけなのです。どうです?別にUNIXを勉強したい人じゃなくても、面白そうでしょ?
これが「3,できるだけ早く試作する」のお話の一部です。
こういうお話があと8つもあって、(UNIX使う使わないに関わらず)どれも非常に有用かつ実践的な考え方だと感じております。
こういう考え方・所作が身についた人がチームにいると有り難いし、自分もそう有りたいと思うわけです。
なので、とってもオススメです。是非読んでみてください。

 
彼にも是非読んでもらいたいな。。。読んでくれるかな。。。
 
 
では。
 
 
 
 

Nakashima