2009年8月3日月曜日

「良いもの」より「値段のつけやすいもの」

「なぜ、良いソフトウェアを作ることにこんなに力を入れないのだろう...。」
これは私が大学を卒業してソフトウェアを製作する会社で働いて最初に思った疑問でした。

「ただ、プログラムが書ければ良いわけではない」これは今時学生プログラマーであっても百も承知なことでしょう。どんな本にもドキュメントやユーザーマニュアルが大切だということは書いてあります。また、良いオープンソースプロジェクトではこれらが充実している(こともある)ので実践している人も多いでしょう。

しかし、最初に会社に入ったときショックであったのは「良い」ものよりも「形式の整った」ものであることが重視されていた点です。
しかも、形式に関するマニュアルや形式を整えるためのツール類が無く「以前のプロジェクトの形式に合わせて。」というのが唯一のマニュアルになっていたのが何より衝撃でした。

例えばプログラムの詳細設計にあたる関数の説明まで全てwordで書いていました。doxygen等は使いません。また、バージョン管理もバージョン管理システムを一切使わず共有フォルダ上で上書きで更新。リリース事に手作業で番号を振ってzipで固めていました。
それ以前にdiffもpatchも現場から管理職まで通じないのでバージョン管理システムの導入も不可能に近い状態でした。驚くことにプログラムのコメントのフォーマットはdoxygenスタイルなのですが、全員doxygenを使ったことがないのでだれもドキュメントにしたことがなく一部のタグは完全に間違った意味で使われていました。

また、これらの非効率な作業はその非効率性に判して几帳面なまでの厳格さをもって行われていました。そのため、ドキュメントのフォーマットは決まっていないのですが、レビュー時には以前のドキュメントの形式に沿っていない部分をきちんと指摘されました。当然追加作業が発生し、残業が増えます。つまるところ「空気をよめ」で作業が行われていたのです。

なぜこんなことになっているのか、当時理由をいろいろ考えてみました。
  • 技術の分からない人がルールを決めている。結果ツールで管理すればいいことを手作業でやっている
  • 技術力のある人は会社に失望し転職している。
  • そもそも会社にとって良いソフトウェアを作成する動機が無い。


私が最終的な結論として導きだしたのは「そもそも会社にとって良いソフトウェアを作成する動機が無い」ということでした。

上記で挙げていたフォーマットが決まっていないが、前例に沿ったものにする。という方法は「技術の分からない人間が発注し、最終的な評価をする」という場合には極めて重要であることが後に分かったからです。

ソフトウェアに詳しくない会社では、発注者は技術が分かっていないのでルールやフォーマットをうまく作ることができません。また、担当者にそれらができたとしても、さらに何も分かっていない上司や部門の査定を通過する必要があります。

こういったケースにおいて良いソフトウェアを作る努力や工夫の多くは「理解不可能で値段のつけにくいもの」と評価されます。一方で「前例に沿ったものにする」という努力は「理解しやすく値段のつけやすいもの」と評価されます。

技術に詳しい人間がおらず、予算の縛りがきつい会社では管理職は「良いもの」より「値段のつけやすいもの」を好みます。後で説明がつかないものに予算を使うと責任問題に繋がるからです。

ですから私のいた会社も売っていたものはソフトウェアではなく、「前例にそった作業でソフトウェアを作ること」そのものを商品にしていたのです。なぜならお客さんはそれに値段をつけ買ってくれるから。もしかすると「フォーマットに沿った作業でソフトウェアを作ること」よりは難易度が高く、我々の商品にはそれなりの値段がついていたのかもしれません。

今は幸いにも転職し、良いソフトウェアを作ることを重視する職場(すくなくとも自分はそう感じる)で働いています。
技術に無理解な人間が上層部に少ない組織であればそれもまた可能であることを知りました。
社会人になってから勉強することは本当に多いです。

2009年5月16日土曜日

街中で感じる景気

最近不景気が続いています...。

週末の東京を歩いての感想(2009/5/16)。

青山、丸の内とかのブランドショップはガラガラ。
ランチタイムに1000~3000円の値段でゆったり時間を使えるレストランは結構混んでる(品川、天王州アイル近辺)
繁華街の土曜夜の人出はあいかわらず多い(渋谷)

高い物は売れないけど、それなりに外出歩いたりはしてるのかな。

2009年3月12日木曜日

Fineprint で OKI プリンタ B2200n を両面印刷プリンタとして使う

最近不況とともに会社でもカラー印刷禁止が言い渡されました。

我が家でも1年程前からモノクロレーザープリンタ OKI B220n を導入しています。
さらに片面印刷プリンタを両面印刷のように使えるプリンタマネージャ FinePrint ver5 も導入済みです。
それも、まだ好景気の時からです、私にも先見の明があったと言えましょう(ウソデス印刷した紙を置く場所が無かったので両面2upで印刷する必要があったのです)。

今回はこのプリンタ B2200n とプリンタマネージャ FinePrint を紹介したいと思います。

OKI B2200n は沖データから2007年に発売された超小型&高速のモノクロレーザープリンタです。


この当時SOHO&個人向けにDELL, HP, ブラザー 等からポータブルなモノクロレーザープリンタが多数発売されたので、この商品もその流れに乗ろうとした商品の、一つだったのかもしれません。

このプリンタの素晴らしいところはなんといってもそのサイズにあります。321×204×181mmというサイズは半端ではなくオライリーの小型サイズの本より低く、給紙トレイを除けば奥行きも同じ本の高さより短くなります。



プリント性能も申し分なく毎分20ページ、つまり三秒で一枚の印刷が終了するというのはレーザープリンタならではと言えるでしょう。
モノクロプリンタで私は困ったことがないのでこれだけ揃えば私には十分です。主に印刷しているのはマニュアルなどのドキュメント、Google MAP、食べログの店舗情報等ですがこれらは特にカラーである必要がありません。写真を印刷しない人ならおそらく問題ないと思います。

ただし、このプリンタ両面印刷機能に対応していません。さらにドライバにも両面印刷機能が無いので、wordのように偶数ページ、奇数ページのみ印刷ができるソフトウェア以外は両面印刷ができなくなってしまいます。これ、非常に私には大きい問題で、片面印刷 + 高速プリントのコンボで一瞬のうちにプリントした紙の置き場所がなくなってしまうことになるのです。

そこで FinePrint の出番になります。 FinePrint はアメリカの FinePrint Software, LLC で作られたプリンタ用紙節約用のソフトウェアです。
日本では日本システムディベロップメントが販売しています。
http://www.nsd.co.jp/share/fineprint/

FinePrintをインストールするとアプリケーションからはプリンタドライバとして見えるので、どのソフトウェアから印刷を行っても最初にFinePrintのソフトウェアが起動し、片面、両面印刷の設定、一枚の紙に印刷するページ数の設定、さらにぺージ順の変更や削除がプレビュー画面を見ながらできます。
この機能が本当に便利で、片面印刷プリンタを両面プリンタとして使うことができる上に、webサイトなどの印刷でよくある、最後にほとんど白紙のページがまるまる一枚印刷されるといった無駄を防ぐことができます。エコですエコ。


両面印刷プリンタを導入するコストが省け、さらに細かい設定で印刷量を削減することができる FinePrint は不況時代を乗り切る必須アイテムと言えるでしょう。
プリンタもしばらくは OKI B2200n を使い続けるつもりです。カラーインクジェットよりモノクロレーザープリンタはインクカートリッジ安いし、長持ちするし。
まあ、Kindle2 買って一気にペーパーレス時代に突入してしまうのも有りなのですが...。

なお、FinePrint 5のVista 対応については、どうやら設定を少しいじることで使えるようです(下記のページに紹介がありました)
http://www.koutou-software.co.jp/junk/customize-vista.html


2009年3月5日木曜日

金融工学批判について思うこと

最近世界経済がえらいことになっています。
特に金融工学がやり玉のひとつに上がっているので初歩の統計しか知らない人間ながら思うことを書いてみました。

金融工学もみんなが普通に使ってる平均とか、分散と同じで正しく使えば有用な場面はいっぱいある。
でも間違えて使えばえらいことになる。

金融工学は過去のデータとモデルからリスクを求めるものなので、
正しく使えば許容リスクいっぱいまで自分の手持ち資金を流用できる。死蔵金が無くなるので社会も活性化する。
金融工学は今後も生命保険とか、消費者金融、住宅ローン(一般的なもの)には十分適用可能だと思う。

でも、過去のデータが摘要できなかったり、モデルが間違えていたら全然意味が無い。
担保の上に担保を重ねた証券に過去のデータも一般的な商品のモデルも当てはまるわけなかった。


平均体重からエレベーターの定員数を決めるのはありでも
世の中走ってる車の平均時速からパーツの強度決めたらえらいことになる。

そうやって自分の乗っている乗り物を作った結果、世界経済はバラバラに壊れてしまった。
でも、だからといって金融工学そのものを批判するのは間違いなのではないだろうか。

2009年2月28日土曜日

Kensinton の トラックボールマウスに新型が出るらしい


Kensinton のトラックボールマウスに新型が出るらしいです。
SlimBlade™ Trackball
http://us.kensington.com/html/16632.html
なんでも今度はボールをひねるとスクロールホイールの機能になるのだとか。

なお、現行のExpert Mouse®
http://us.kensington.com/html/2200.html

はボールの周囲にリングを配置することでホイールの機能を実現しています。

これはこれで素晴らしい機能なのですが、リングに彫られているローレット部分に手の汚れが溜まるという欠点もあるのです。

私はこのトラックボールを職場用、家用と2つ持っているのですが、とにかく肩こり対策にはすばらしい効果を発揮します。操作性も個人的にはマウスより好きです。

家ではさらにノートPCスタンドなるものを使っているので机の上はこんな風になってしまいました。


ノートPCスタンドは冗談みたいな商品ですが本当にいいです。
いろいろあるけどシンプルで片付けやすいサンワサプライ ノートPCスタンド CR-36がおすすめ。視線が正面を向くので肩こりが本当に減ります。

脱線しましたが、SlimBlade Trackballはいつ出るのでしょう。確か去年の末ぐらいには発表されていたはずなのですが...。それまではExpart Mouseを頑張って使い続けるしかなさそうです(爪楊枝でローレットの汚れを掻き出しながら)。

2009年2月25日水曜日

amazon で RealWorldHaskell の中古価格の方が高い件について

前回のエントリ
プログラムの解説サイトをScrapBook と w3m-emacs で読む
を作成している途中に気がついた







中古価格の方が明らかに高い!
Amazonの洋書だと結構あることのなのだろうか。

プログラムの解説サイトをScrapBook と w3m-emacs で読む

私はしばしば、プログラミング言語の学習をwebサイトを利用して行います。
特に新しい分野の場合、書籍になる前にwebサイトで公開されることが多いです。

しかし、ブラウザとエディタの間を行き来するのはどうにも面倒です。
さらにオフライン環境で読めないのは不便です。

この問題を解消するため、FirefoxのプラグインであるScrapBookと、emacsのマクロemacs-w3mを愛用しています。

まずScrapBookですがウェブサイトをローカルに保存できるFirefoxの拡張プラグインです。
http://amb.vis.ne.jp/mozilla/scrapbook/

firefoxのメニューバーから "ScrapBook -> ページの詳細な取り込み" を選択すると複数階層を指定して取り込むことができます。

emacs-w3mはemacsエディタでウェブサイトを閲覧することができるemacsマクロです。
http://emacs-w3m.namazu.org/

debian Linux ならば
$ aptitude install w3m w3m-el
でインストールできます。

ScrapBookを使って保存したサイトは.mozilla 以下に存在しますのでアドレスバーに表示される file:// で始まるURLをemacs-w3mで指定すればローカルに保存したサイトを開くことができます。

最近はこの方法で Real World Haskell のオンライン版を読んでいます(O'REILLYの洋書も買いました)。
http://book.realworldhaskell.org/

夏か秋ぐらいには訳書がでるらしいのでそれまでに予習しておきましょう。