パソコン・インターネット

2015年11月 1日 (日)

クリエイティブなものたち

今年は毎日何かしらの開発をやってますね。

これから年末に向けてもいろんなところで私が作成したものを、利用する方もいるかもしれません。

そういえば今までに作ったソフトウェアはいろいろあって、今でも使われているものもいっぱいありますが、新卒で入って作った電子CADのグラフィクスと幾何演算部分がまだ使われているそうで、それ以降も監視カメラの組み込み部分や監視システムの管理者用画面やら、身近なものだとホームページも作成したりしてます。

自分は音楽もやっているわけですが、音楽だと対応してくれるお客さんは少ないですが名前は知られます。しかし、ソフトウェアの方は幅広いお客さんが使っているのにも関わらず、私が作っていることは誰も知りません。

つまり音楽にはユーザ各人に好みが複雑分かれていて、あのU2のボノさんが新しいiTunesに無料で自分の音楽をみんなにダウンロードさせたら、怒る人の多いこと。
本人はそのつもりはなくても、音楽だけはどんな有名ミュージシャンでもいらないものはいらないという状況で、どんなに本人がいいと思って作った音楽でも不要な人には役に立たないということです。
逆に、例えば音楽データを管理するiTunesというアプリ自体が嫌いだから使いたくないと怒る人は、よほどのApple嫌いなMicrosoft社員以外は考えられません。このようにソフトウェアは個人の好き嫌いに関わらずみんなが使うものとして役に立っているわけですが、では誰が作ったのかというと、スティーブジョブズが作ったのではなく、その中の社員が集まって作ったのであって、作った人達の名前は誰かわかりません。

その点は音楽と技術の大きな違いでしょうね。
そのため私は名前よりもみんなが使ってくれるものを作りたいと思い、人前で演奏することを一時期やめていました。
しかし、たまに私の演奏を聴きたいという人がいるので、細々と演奏をしています。
その人が居なくなったら人前で演奏をするのをやめるでしょうね。
ただし音楽は大好きなので、自分は練習と自己満足な録音は死ぬまで続けると思います。
多分ソフトウェアもみんなが欲しくなくなったら、自己満足なソフトウェアの作成を続けると思います。
これだからモノづくりはやめられないです。誰も褒めてくれなくても作り続けたいと思います。

2015年3月21日 (土)

プロのプログラマーとは?

たまにソフトウェアの話を書くと、その投稿へのアクセスは非常に低くなるようですが、日本のソフトウェア業界は悲惨な状況になっていますから、警告も込めて書かねばなるまい。

米国ではプログラマーというと平均年収が日本円で1000万円というのが当たり前ですが、日本ではなぜか300万円というデータがあります。
そして、ソフトウェアのプログラマーを募集要項には、
  • ○○言語を3年以上経験していること
  • ○○の開発経験があること
ということが書かれることがあります。というよりほとんど書かれています。
何か変じゃないですか?

まずプログラマーを30年やっている立場からして、プログラムの言語に経験年数なんて必要ないです。ある言語をしっかり習得した人は、他の言語に移行してもあっという間に覚えますし、標準語が関西弁や九州弁になる程度で、だいたいどれも似たようなものです。

そして、開発経験があるかどうかと聞かれた場合に、最初の開発経験はどうやって得られるのでしょう?
この募集以外の仕事でやるしかないですよね?
その時点で、自分の会社だけが美味しい部分だけを持って行こうとしているのがみえみえです。

とはいうものの、みなさんが思うほどプログラマーというのは、経験とかで人が判断できるものではなく、「もっと良くしよう」とするセンスと「何かおかしい」と感じるセンスが重要です。

プログラマーの仕事の最終目的は、作りたいシステムを完成させることです。
完成ということはバグは少ない方がいいです。
その際に必要なのが、上記のセンスです。

初心者プログラマーがよくやるのが、プログラムの中身がぐちゃぐちゃで、他の人が読めないものを作ることです。これはバグの原因にもなりますし、メンテナンスのしようがありません。
最初にぐちゃぐちゃに作るのは、私もよくやります。ただしその後に共通項目をまとめ、もっと良くしようとして、中身を整理します。
また、作ったものの動かした際に、バグのあるプログラムは、クラッシュしてしまうのは論外で、動いているうちに変なところで動作が変わったり表示が変わっったりするのを見つけるのはまだよくて、何かの動作をした時に動作のスピードが毎回微妙に違うぞと感じるレベルまでになると、だいぶプログラマーとしてのセンスがあります。
変なプログラムでは、メモリの使用が急激に増えたり、大事な処理が抜けていたりします。
それが二つめの「何かおかしい」と感じるセンスです。

こういうことは先の募集要項にはぜんぜん現れません。
正直、経験だけしかない素人同然な人がシステムを作るために、手戻りが多かったり、いつまでたってもバグが残ったり、余計な工数が増えて残業が増えたり、それが原因で日本のプログラマーの給料は安くなっているわけです。

そして上記二つを実現するために、もう一つ必要なことがあります。
それは体調管理です。
無理に仕事をして体調を崩して、システムにバグを仕込んでしまうことを、今までに何回も見てきました。
昔は、何日間家に帰ってないとか、徹夜何日めとかを自慢する人が多かったです。
でもそういうシステムほど、最後の修正に調整がかかって、結局工数が増えるだけでした。

さて、このセンスというのは、実はプログラマー以外のプロの仕事にも通用するセンスです。
「もっと良いものを作る」はプラス思考、「何かおかしいと感じる」はマイナス思考、この二つの思考が必要で、世に言うプラス思考でやるとか、マイナス思考がいいとか、一方しかやらない人はプロではないですね。

2014年4月26日 (土)

人足商売

私は音楽業以外に、IT業ですでに30年近く働いています。

30年前はC言語が出始めで、COBOLやPASCALという言語がメインで、設計→開発→テスト・デバッグの大きな流れで、プログラムのコード数と何人で何か月かかるかの単位を「人月(にんげつ)」として、その報酬の計算をしていました。コンピュータのスピードも遅く、コンパイルする間にタバコを吸いに行ったり、ご飯を食べに行く時代でした。
そして20年前にはC++言語やJava言語が出始めた頃で、設計→開発→テスト・デバッグは前よりも短く、オブジェクト指向設計で、短いスパンでスパイラルに開発していました。
しかし、この時代もまだ相変わらず「人月」で報酬の計算をしていました。
10年前には、どの言語も安定したころで、それに付随するフレームワークやライブラリが充実してきました。つまりプログラムの基本部分は他の人が作ったモノを使う時代です。
アジャイル開発という言葉もそろそろ出てきたころで、設計→開発→テスト・デバッグは、前よりももっと短い単位になり、『ユーザの価値』という最も小さい単位での開発になりました。
それにもかかわらず、この時代でもまだ「人月」で報酬の計算をしていました。
さて現在、どうなっているか?
相変わらず、プログラムをする人間の能力に拘らず、ソフトウェアの開発では何人が何か月働くかで報酬が決まります。
何が問題かというと、プログラムというのはカンのいい人が書くのとそうでない人が書くのでは、10倍以上の作成能力の差があります。つまり職人と同じ世界で、ある程度やればどんなシステムも見えてくるのですが、いまだに『どの言語を何年』とか『どのフレームワークを使ったことがある』とかいう出鱈目な条件で人を集めて、プロジェクトが失敗します。
このままだと日本から真っ当なソフトウェア職人はいなくなるのでは?と思う今日この頃です。
フォト

最近のトラックバック

無料ブログはココログ