2010-01-01から1年間の記事一覧

成功のコツは素早い失敗にあり

よく「失敗は成功のもと」と言うけれど、この変化の激しい時代においてのんびり失敗しているようでは、成功のもとどころか致命傷になりかねないのではないだろうか?素早く失敗した方が、早く次のやり方にチャレンジ出来るし、失敗の経験をたくさん積んでい…

APIを使い過ぎない工夫が必要だ

Javaや.NETを始めとするフレームワークやライブラリは、非常にたくさんのAPIを持つものが多い。たぶん、それなりの必然性があったり、バージョンアップを重ねる毎に、より使いやすい形に機能強化されてきた結果だと思うのだけど、JavaDocやMSDNのAPI資料には…

「ソフトウェアレビューの価値を再考する」セミナーに参加した

昨日はS-openミニセッション「ソフトウェアレビューの価値を再考する〜なぜ形骸化するのか?」に参加してきた。講師は奈良先端科学技術大学院大学の森崎先生。ソフトウェア開発の現場でレビューに困る人は多いらしく(私もその1人だ)、会場には50人近い人た…

人材育成としての研修を考える

日経ビジネス2010年8月23日号に、常石造船で知られるツネイシホールディングスの社内研修の様子が載っていた。マイケル・E・ポーターの「競争優位の戦略」を教材に、内容を要約し理論を自社に当てはめて提案を行うというものだ。その類の研修に慣れている人…

TCP/IPの高速化を知る読書「ASCII.technologies」

ASCII.technologies(2010年10月号)の特集は、「激変するTCP/IP」だ。IPv4やIPv6の基本説明は日経NETWORK等の雑誌にもよく載っている記事だけど、その記事に続く「高速TCP」や「次世代トランスポートプロトコル」はASCII.technologiesらしい技術満載の内容…

私家版テスト駆動開発

テスト駆動開発(TDD)をやってみたいけど最初の一歩がなかなか踏み出せないという人が少なくないようだ。あまり形式張らずに出来るところから少しずつでも挑んでいくのがコツだと思うのだけど、教科書に出てくる「正しいやり方」に躊躇してしまうケースがある…

情報を定点観測する

別に自慢するほどのものでは無いけれど、日常的に行っている情報収集の方法をまとめてみた。もちろん、必要な情報をその都度検索して探し出すというのは一つの方法だが、同じ検索を何度も繰り返すのは面倒だ。ここでは「ある情報を継続的にウォッチしたい」…

Snow LeopardにbbPressをインストールした

Snow LeopardにbbPressをインストールしたので、その覚え書。今回のインストール環境は下記の通り。 MacOS X/Snow Leopard (10.6.4) bbPress 1.0.2 MySQL 5.1.49 PHP 5.3.2 MySQL, PHP 動作環境としてQuestion2Answer同様に、MySQLとPHPが必要だ。 Snow Leop…

iPhoneでOpenCVを動かす

iPhoneでOpenCVを動かしてみた。自分でプロジェクトを組んでも良いのだけど、既にOpenCVを一式含むアプリケーションを公開してくれている方がいるので、これを有り難く使わせてもらった。記載によれば、OpenCV 2.1とiOS4に対応しているようだ。 最新のOpenCV…

GUIアプリケーションの単体テストをどのように行うか?

GUIが絡むアプリケーションを作っていて困るのは、テストを意識せずにマニュアル通りの手順で作ってしまうと単体テストが容易に実行出来ない点だ。入力がGUI依存ではテストコードから上手く呼び出せないし、また処理結果をGUIに表示するような構成では人間が…

プロジェクトをOpenCV 2.1に対応させる

Snow LeopardにOpenCV 2.1を導入したので、既存のOpenCV 1.1用のプロジェクトを更新した。全体として大きな問題は無いが、幾つか気がついた点があったので覚え書。動作環境は下記の通り。 MacOS X 10.6.4 OpenCV 2.1 (installed by MacPorts) BMPファイルを…

仕様書はどこまで書けばよいのか?

新人にソフトウェア開発の作業手順を教えていると、思いも寄らぬ質問を受けて戸惑うことが有る。例えば、先日はこんな質問を受けた。 「仕様書はどの程度まで書けばよいのですか?」 あまりにストレートな質問なので何と答えるべきか一瞬戸惑ってしまったが…

インパール作戦に開発プロジェクト失敗の源流を見る

終戦の日と言うことで第2次世界大戦に関連した記録映画を見ていたら、インパール作戦が出てきた。歴史の教科書で名前を聞いた程度しか記憶に残っていなかったのだけど、番組の中で紹介された旧日本軍の無茶苦茶な作戦や戦い方にすっかり驚いてしまった。軍隊…

Snow LeopardでCUDA 3.1を使う

Snow LeopardにCUDA 3.1を導入した。動作環境は下記の通り。 MacBook Pro 13inch (Core2 Duo 2.26GHz, Memory 4GB, GeForce 9400M) MacOS X 10.6.4 CUDA Toolkit 3.1 SDKをインストール後、サンプルをそのままmakeすると32bitのバイナリが出来るので、下記の…

Snow LeopardにOpenCV 2.1をインストールした

MacPortsがOpenCV 2.1に対応したので、Snow Leopardにインストールしてみた。 #24503 (Upgrade opencv from 2.0.0 to 2.1.0) – MacPorts Portfile in trunk/dports/graphics/opencv – MacPorts 環境は下記の通り。 MacOS X 10.6.4 MacPorts 1.9.1 インストー…

Google Storage for Developersを使ってみた

申し込みから約2ヶ月経ってようやく「使って良いよ」というInvitation mailが届いたので、Google Storage for Developersを使ってみた。サイトにはUSのみという記載があるけれど、私は日本在住。利用制限は緩和されてきているのだろうか? Google Storage fo…

一流の開発者へのヒアリング

優れた仕事をする技術者は、一体何を考えて作業をしているのかずっと興味がある。どのような自己研鑽を行い、どんな事に注意を払ってコードを書き上げ、どの視点から技術を評価しているのだろうか?もちろんIT業界にはその類の偉人が既に存在しているし、本…

jMockのエラーにはまる

久しぶりにEclipseを起動して、jMockのプロジェクトを作ってモックの動作を試してみる。動作環境は下記の通り。 MacOS X 10.6.4 (Snow Leopard) Eclipse 3.5 (Galileo) 下記のサイトを参考にしてプロジェクトを作成した。 ライブラリには下記を使った。 hamc…

Snow LeopardにQuestion2Answerをインストールした

開発チーム以外との情報共有用としてQuestion2Answerを導入してみた。従来はメールやExcelファイルで問い合わせ事項のやり取りを行うことが多かったけれど、その方法ではどうしても手間がかかるし、情報が関係者のみに留まってしまって共有範囲に制約が出て…

必要なのは改善を継続する力

あるソフトウェア開発関係のイベントに参加した同僚に感想を聞いてみた。 特に目新しい情報は無かった。発表されている事例は当たり前のこと。やっていることは自社と変わらない。 それはその通りかも知れない。品質改善に関して全く新しいアイデアはなかな…

ソースコードのリバース解析にEAは欠かせない

派生開発をメインに行っていると必要になるのが、既存コードの解析作業だ。ソースコードがどのように開発されてどんな構成になっているのか、資料が有ればそれを手がかりにコードを読み砕くことが出来るのだが、多くの場合、コードの追加・拡張の連続なので…

やっぱりベテランは使えない

ソフトウェア開発の現場にいるベテランには、他の人の手本となるような達人もいるけれど、その一方で見習ってはいけない悪い見本の人も少なからずいる。その一例。 開発資料を作らない「ソースコードを読めば分かる」「資料を書くのは労力の無駄」と豪語して…

パスワード管理は現代人の必須スキルだ

ある小さな会員サイトの運用を手伝っているのだけど、その中で最も多い問い合わせは「ログイン用パスワードを忘れた」というものだ。世間的な平均値を知らないので多いのか少ないのか判断出来ないけれど、自分のパスワードを忘れる人は世の中でこんなに多い…

成功事例を可視化できないか?

ソフトウェア開発の実体はなかなか見えにくい。部外者からの「あいつら何をやっているのか?」という冷たい視線を感じることもあるし、隣の開発者の作業内容すら理解していないことも多い。仕様書の山やソースコードのリポジトリを参照すればそれなりに成果…

開発プロジェクトの教材としてTracを使ってみた

新人君が配属されたので、ソフトウェア開発現場でどのような形で作業を行っているのか説明するために、昨年の開発プロジェクトで実際に使用したTracを使ってみた。普通はプロジェクト完了報告書などの資料を参照するのかも知れないけれど、これはあくまでも…

ノウハウは誰のものか?

ソフトウェア開発の業務で知り得たノウハウはTrac等に記載して、出来るだけグループ内で共有するようにしている。有益な情報は出来るだけ皆で利用して、ソフトウェア開発での効率や品質の改善に繋げたい、というのがその理由だ。このブログにもその一部を書…

ゲームを作らない開発者が読む本「ゲームコーディング・コンプリート」

ゲーム開発について書かれているけれど、ソフトウェア開発全般に有益な本として「ゲームコーディング・コンプリート」を紹介したい。著者はウルティマシリーズのプログラマであるマイク・マクシャフリー氏。ゲーム作成に直結するノウハウはもちろんのこと、…

受け身体質は損をする

開発の現場にいるとだんだんと知恵が付いてくるもので、自分に降りかかってきそうな火の粉に対する予知能力が少しずつ発達したりする。会社への不信感とか、プロジェクトリーダへの恨みとか、理由はいろいろだろうけど、自分からの積極的な関与を行わないこ…

動画を使ってソフトの操作方法を説明する

ソフトの操作方法をプロジェクタに画面を映して説明を行った。その場でソフトの操作を行っても良いのだけど、説明を行いつつパソコンで操作を行うのは結構面倒だし、発表中は焦ってしまってスムーズに操作出来るとは限らない。そこで、操作手順を動画として…

自分の作業実績をチケットで見える化する

四半期が終わったので、自分のPCで運用しているtracのマイルストーンをクローズした。日々、細々とした仕事をやっていると、後でふり返った時に例えば「3年前は一体何をしていたのだっけ?」と思い出せないことが有ったので、自分の作業を簡潔にまとめる意味…