2014年05月22日

コードを書くときに心がけていること

なんか流行っているので乗ってみます。

趣味コード

趣味とはいっても、暇つぶしだったり、流行りもののチュートリアルに触って「おれ新しい◯◯やってみたぜ」みたいなのは極力しないようにしてます。仕事で必要になった時に、仕事の時間の中で集中的に学ぶ方が学習効率が高いので、趣味時間の活用という意味ではもったいないですよね。幸い、まったく未知の基礎的な内容というのはほとんど出会わなくなってきて、新しい技術といっても、既存の知識を土台にして、軽く検索すればOKなことがほとんど。ということで、趣味といっても、将来の仕事で役に立ちそうな種となる可能性のあるものを作るように心がけています。実際に種になるかどうかは運次第なので、命中率に関しては気にしません。

とは言うものの、先月末に二人目の子供が生まれてからは趣味のコードの時間はまったく取れてません。まあしばらくは潜伏期間かな。子供が二人いれば、少し大きくなったら子供同士で遊んだりしてくれるようになるらしいので!家で勉強する父親の背中を子どもたちには見せる予定です。勉強しない大人から「勉強しろ」って言われても説得力がないし、反発されるだけですしね。Wishリストはこちらです。

仕事のコード

いろいろ書いているけど、「いきなりチームに投入されても、既存のチームメンバーの邪魔をせずに、きちんと成果を出す」というのがコアですね。

ドキュメントなんて存在しない

続きを読む
posted by @shibukawa at 17:19 | TrackBack(0) | 日記 はてなブックマーク - コードを書くときに心がけていること

2014年05月17日

Spotifyの実験

曲のリストのところのメニューで、Copy Embed Codeというのがあったので貼ってみた。普段良く聴いている、Sonic Colors、Sonic Generationsにも参加しているCash CashというグループのCash CashというアルバムのCash Cashという名前の曲です。

訂正: 違った、アルバム名はTake it to the floorでした。Cash Cashというアルバムも別にあるけどそっちには入ってないっぽい。

posted by @shibukawa at 11:03 | TrackBack(0) | 日記 はてなブックマーク - Spotifyの実験

2014年05月14日

プログラマは酵母菌じゃないんだよ

オープンソースという言葉が一般化して、多くの人が使うようになってきたというのは感慨深いものです。ただ、同床異夢というというか、オープンソースというものに対していろいろな誤解とか先入観があるように感じます。僕もまだ業務としてプロダクトを作ってオープンソース化したことはないので(パッチとかpull requestはよく送っている)、至らぬところもあるかもしれませんが、そのようなものがあればTwitter等で補足してもらえればと思います。

手間を減らすために、公開すればいいじゃんという誤解

今あるコードをgithubにgit commit, git pushすればすべてがバラ色、というのがよく言われることです。公開するのはコストゼロというのは本当なんでしょうか?少なくとも僕が知る限りではそうではありません。ざっと考えてこのぐらいの項目のコストがかかるかなぁ、と考えています。

  • 社内の特許などの技術に関わるコードがないか、調査したり書き換えるコスト
  • 外部ベンダー製のコードがあれば、書き換えるもしくは契約を結びなおすなどのコスト
  • 社内のビルド環境に特化した部分などを書き換えるためのコスト
  • ドキュメント整備のためのコスト
  • ソフトウェアの資産=人件費の減価償却が終わってなければその精算

Windows規模ともなると、コードの調査だけで億の単位でお金がかかるんじゃないかな、と思います。マイクロソフトの場合は、互換性のためにバイナリバージョンを厳しく保持しているので、ビルドシステムも特殊かと思いますし、コンシューマOS、サーバとの共通コンポーネントなどもあって、必要なものを切り出してビルドできるようにするのも一苦労だと思います。公開したら即make worldコマンド一発でヒャッハーというわけにはいかないと思います。

企業内でもう使うことがないプロダクトか、そうじゃないかにもよって多少は変わってきます。企業で今後も使っていく場合には、開発の主体・意思決定を内部に持ったまま、外にだすことになります。当然、外部のユーザから来た要望に対して、企業の方針とすりあわせて方針を決定したり、変更が許容できない場合は今ある機能でどうやってそれを実現していくのかを説明するコストが必要となります。カスタマーサポート的なコストですね。エンジニアを数人張り付きで提供するならそれだけで数千万の費用になったりしますよね。それ以外にも法務のチェックとか、いろいろな部署に協力をお願いすることになるんじゃないでしょうか。

これらのコストをマイクロソフトが負担した上で公開しろ、というのは交渉としては成り立つ要素はゼロですよね。Blenderみたいにコミュニティで必要なお金を寄付で集めて、企業から買い取るという形で実現した例もあるので、お金を用意できればプロダクトによっては可能性はゼロではありません。Windows XPの場合にそれができるかというと、有料で延長サポートというのを行っているし、組み込み向けのWindows XPはまだ使われているので、マイクロソフトとしては「まだ生きている」という扱いなので門前払いじゃないですかね。

あと、すでにマイクロソフトはカーネルのコード等は契約を結んだところには公開しているみたいです。シェアードソースイニシアチブとかでぐぐると出てきます。ただ、問題はカーネルだけではないでしょうし、ネットワーク系のところとか、ブラウザとか多岐に渡りますし、そのすべてのコンポーネントのコードを公開しているかどうかは不明です。

コミュニティのためのコスト

続きを読む
posted by @shibukawa at 05:01 | TrackBack(0) | 日記 はてなブックマーク - プログラマは酵母菌じゃないんだよ
検索ボックス

Twitter

www.flickr.com
This is a Flickr badge showing public photos and videos from shibukawa.yoshiki. Make your own badge here.
<< 2014年05月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
最近の記事
カテゴリ
過去ログ
Powered by さくらのブログ