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

目指せ、守備範囲の広い開発者

ソフトウェア開発の現場に関わっていて惜しいと感じるのは、開発者自身が自分の守備範囲を自ら決めてしまい、そこからなかなか脱却出来ないことだ。例えば、こんな類の発言を聞いたことがある。 開発は組み込みが対象なので、クラウドサーバを触った経験は有…

Agile Tour Osaka 2010に参加してきた

昨日はAgile Tour Osaka 2010に参加してアジャイルを勉強してきた。一言でアジャイルと言っても、言葉を使う人によって、スタンスや方法論が微妙に異なっていたりするが、その幅広い考え方を柔軟に受け止めるのがアジャイルの特徴かも知れない。会場にはその…

Tracのチケットは終了基準が大切

TracやRedmineを障害管理に使うことに慣れてくると、会議のアクションアイテムや各自の作業項目をチケットに入れて管理するようになってくる。いわゆるチケット駆動開発により、作業の見える化、効率化を進め、管理負荷の軽減を図るわけだ。何でもチケットに…

クローズ処理で例外は発生するのか?

昔から疑問に思っているのだけど、ファイルやストリームでのclose処理ではどんな条件の時に例外(エラー)が発生するのだろうか?例えば、open処理ならファイルが存在しないと直ぐに例外が発生するし、write処理はディスク容量が無いとか書き込み権限がない…

問題先送り体質からの決別を!

ソフトウェアの品質を改善するのに必要な姿勢は「そもそもバグを作り込まない」ことである。問題を生じさせなければ、テストでがむしゃらに頑張る必要は無いし、開発者はもちろんマネージャもテスターも誰も困らない。テストで分かるのは問題点のマイナスの…

技術士の活用実態アンケート

日経BP社の「日経ものづくり」で行われた「技術士の活用実態」というアンケートの結果が発表されていた。技術士がメジャーな建設土木業界ではよく見かける内容だけど、製造業向けに行われるアンケートとしては珍しい気がする。 日経BP記事検索サービス お知…

Amazon EC2でBitNamiのTracを利用する

Amazon EC2のAMIリストを見ていたらTrac導入済みのものを見つけた。最近は単なるLAMPだけではなく、目的に応じてTracやRedmineがインストール済みのAMIがいろいろ公開されているらしい。このAMIはBitNamiが提供しているもので、UbuntuにTracが既に導入済みと…

SafariとTracの相性問題が解決?

MacのSafariからTracを使っていると、時々wikiやチケットの更新に失敗することがある。「変更を送信」ボタンを押したのに、なぜか表示は元のまま変更が加わらないのだ。ウェブブラウザの「戻る」ボタンで元の編集画面に戻ってから再度更新すれば上手く行くの…

主張があるから面白い

このブログでは日々の思いや考えたことを文章にまとめて載せているのだけど、当然のことながらその内容は私という個人の主観に基づくものだから、普遍的な内容ではあり得ない。おそらく、一つのエントリに対して「その通りだよね」と共感する人がいる一方で…

真似すれば及第点は取れる

あまり知られていないことかも知れないけれど、仕事として行う多くのことは大抵の場合「上手くやっている人のやり方」を真似ると上手くいく。自分の仕事を上手く進められなくて困ったとか、どうしてあの人は上手く出来るのだろうと疑問に思ったら、上手い人…

ソースコードに正解は無いけれど...

ソースコードレビューを行ってもどかしく感じるのは「ソースコードの書き方に正解が無い」ということだ。同じ仕様書をベースにコードを書き上げても、開発者によってその構成や実装方法は様々だし、何が正解かという絶対的な指標は存在しない。デザインパタ…

日本的な働き方

先日の朝日新聞に田中和彦氏のエッセイ記事が載っていた。朝早くに職場へ来てランチを手っ取り早く済ませつつ仕事を続け、夕方になるとさっさと帰ってしまうアメリカ人の働きぶりと、ランチタイムにのんびりする日本人を比較した考察だ。もちろん、どちらが…

Xcodeでビルド番号を自動更新する

Xcodeでビルドする時にビルド番号を自動的に更新(インクリメント)してアプリケーションに含める設定を行った。開発環境は下記の通り。 MacOS X 10.6.4 (Snow Leopard) Xcode 3.2.4 (iOS 4.1) 設定方法は下記の通り。 対象のターゲットを選び、右クリックで…

同じことを何度も聞くのは失礼だ

学生時代の恩師に「同じことを何度も聞くのは失礼だ」と学んで以来、メモ帳は手放せないようになった。自分が聞いた質問に対する回答はもちろんのこと、何気ない会話の中で知り得た知識は確実に記録して、忘れないように(或いは忘れても良いように)してお…

IBM Innovate 2010に参加してきた

昨日はIBM Innovate 2010に参加してきた。主催がIBMだし(表向きは)有料なので、会場のスーツ率、参加者の平均年齢は高めで、カジュアルなGoogleのイベント等とは大違いの雰囲気だった。プログラムを見れば分かるようにセッション自体は他のソフトウェア開…

分かりにくい否定文を排除する

画面仕様書やソースコードを見ていると、時々否定文(に相当するもの)に出会うことがある。 □オプション設定を有効にしない。 is_not_success = false;好みの問題とは思うけれど、個人的には少々分かりにくい記載だと思う。否定文の否定なんて結果としては…

ソフトウェアの安全性を考える

日経ものづくり2010年8月号に、プリウスのブレーキ制御の問題を取り上げた「ソフトが揺さぶる製品安全」という記事が載っていた。プリウスの問題については既に様々な媒体で取り上げられているけれど、原因を簡単に言ってしまえば仕様と検証の漏れという点だ…

だからソフトウェア品質は改善しない

2010年度上半期の開発まとめを読み返しつつ考えたこと。 以前に行ったふり返りでの反省事項をきれいサッパリ忘れている。 何を作るべきか最終形が明確になっていないのにコードを書き進めている。 障害を発生させないための未然予防策を取っていない。 正常…

自分が書いたコードは自分で守る

チームでソフトウェア開発を進めていると、他の開発者が書いたコードを自分が呼び出したり、逆に自分の書いたコードが他の開発者のコードから呼び出されることがある。その境界はクラスやライブラリだったりする訳だが、何らかのデータのやり取りが発生する…

これが日本のソフトウェア品質?

日経エレクトロニクス2010年9月20日号に、日本のソフトウェア品質に関するCusumano氏の寄稿記事が載っていた。Cusumano氏の著書は「ソフトウェア企業の競争戦略」しか読んだことが無いけれど、長年に渡ってビジネスの観点でソフトウェア業界をウォッチしてい…

仕様書の記述を急に消してはいけない

ソフトウェア開発の現場では、学校では決して教えてくれない「作業手順の基本」なるものが少なくない。業界や開発対象にもよるので一概には言えないけれど、仕様書作成の過程において下記のルールに該当するケースが多いのではないだろうか。 仕様書の記述を…

OSの基本を学び直す本「オペレーティングシステムの仕組み」

OSの仕組みを解説した本はいろいろあるけれど、専門書になるとやたらと分厚いものが珍しくない。確かに巨大なOSの中を詳しく解説したら分量が増してしまうのは仕方ないとはいえ、そこまで詳しくなくても良いので、もう少し手軽に、しかし専門家が書いたしっ…

Snow LeopardのMySQLはネットワーク変更に弱い?

MacPortsでインストールしたMySQLを使い始めたところ、動作的には何も問題ないのだけど、時々、何故かエラーメッセージが出て終了出来ないことに気がついた。動作環境は下記の通り。 MacOS X 10.6.4 (Snow Leopard) MacPorts 1.9.1 MySQL 5.1.50_0 (MacPorts…

Xcodeの静的解析機能が便利だ

最近、Xcodeの静的解析機能が面白いので、iPhone開発時によく使うようになった。以前は別途インストールしたclang analyzerを使っていたけれど、今はXcodeの“Build and Analyze”メニューから呼び出せるので手軽だ。 Running the analyzer within Xcode この…

Xcode3.2.4のユニットテスト失敗に対処する

iOS4.1に対応したXcode3.2.4にバージョンアップしたのは良いものの、Xcode内蔵のユニットテスト(Logic Tests)が失敗するようになってしまった。正確に言うとテスト自体は成功するのだけど、エラーメッセージが出るようになってしまい嬉しい気分ではない。以…

DoxygenとPlantUMLを組み合わせて使う

以前にTracのプラグインと連携させて動かしたPlantUMLを、今回はDoxygenから使ってみた。下記のサイトに概要が載っているので分かると思うけど、目標は「ソースコードのコメントに書いた記述に従ってPlantUMLにUML図面を生成させ、これをDoxygenが出力するHT…

TracのChangeLogMacroを更新した

TracのChangeLogMacroを新しいリビジョンに入れ替えようとしたところ、落とし穴にはまったので覚え書。動作環境は下記の通り。 WindowsXP/SP3 Python 2.5 Trac 0.11.7.ja1 http://www.i-act.co.jp/project/products/products.html ChangeLogMacro ChangeLogM…

去りゆく技術者

会社で仕事をしていて辛く感じることの一つに、長年一緒に仕事をしてきた仲間の離職がある。個人や家庭の事情などいろいろ理由はあるようだけど、個人的に話を聞いてみると、技術者として会社の置かれている状況や自分の立場を分析して苦渋の結論を下してい…

作業はいつでも前倒し

納期が決まった仕事は多いけれど、締め切りの期日までのんびりと待って作業しているようでは一人前とは言えない気がする。締め切りは「要求側が求める最終期日」程度の意味と捉えて、自分の中では納期よりもずっと前に締め切りを設定しておき、少しでも早い…

チームでの.NET開発に必要な本「C# .NETアプリケーション開発徹底攻略」

.NET/C#の参考書はたくさん出ているけれど、APIの使い方のようなリファレンスでなく、そのようなAPIの何に注意してどのように開発すべきかを示したのが「C# .NETアプリケーション開発徹底攻略」だ。「APIを使い過ぎない工夫が必要だ」でも書いたように、API…