システム開発

ウォーターフォールはアジャイルよりも難しい

きっと同じような記事を書く人がたくさんいるんだろうなぁと思いつつ。アジャイルはウォーターフォールよりも難しい | 日経 xTECH(クロステック) ↑こちらの記事に触発されて、私がウォーターフォールやりながらアジャイルでやりてぇと思ったときの経験を書…

Whyも書け

重要なことなので何度だって言いますよ。 コンピュータシステムの仕様書を書くとき、以下の項目が文章として残されていますか? What - 何を(入力の形式) Where,Who - どこの誰が(どのコンピュータが) When - いつ(処理のタイミング。オンデマンド/バ…

すべてのものにはトリガー(引き金)がある

今、私が出入りしている会社で何やら新人研修的なものをやっているようなんです。Seasar2 を用いて何かのシステムを作っているようですが、トレーナーの語調からすると上手く行ってないようです。 それで、トレーナーの方が切々とトレーニーになにやら説明し…

ビギナー Web プログラマに一皮むけるためにやってほしい5つのこと

1. Web サーバの設定方法を覚えてほしい そんなに深くじゃなくてもいいんです。Apache でも IIS でも、なんだったら AN HTTPD だっていい(というか AN HTTPD って学習用にはかなりおすすめです)。それでどこにファイルを置くと外部からアクセスできちゃう…

20万〜30万円台のPCサーバってもっとも無意味なのではないか

というか、RAID 5 がついてる PC サーバって無意味な気がするのです。 この辺の価格帯のものって、零細〜小企業があたりが自社サーバ用に「奮発して」買うものというパターンが多いと思うのですよ。 でも、それが「町の SIer さんのすすめで入れました」ぐら…

UI 設計で痛感したこと

最近、ユーザインタフェースを設計していて痛感したことがあります。個人的に「こりゃ、やってしまったな」と自責の念でいっぱいです。 それは何かと言うと、同じ画面にいくならば原則的に入り口(またはリンクの文言やボタンのラベル)は1つにすべきだとい…

よくある RDB の姿が私の理想の OOP に近いかもしれない

このところ OOP のことについて考えつづけいるわけですが、はたと気がついたのです。RDB のテーブルとそのレコードの定義は、たとえば Java ではできないんじゃないかということにです。 たとえば、employee_name というカラムが VARCHAR(30) で定義されてい…

さらに調子に乗る

前回のエントリのさらに続き。前回の setValue を使うやり方だと、想定外によそで値を変えられてしまうかもしれないので、以下のようにしたらどうかと思いました。 public class EmployeeName { private String value; public EmployeeName(String value) { …

オブジェクト指向のあるべき姿?

前回の続き。ちょっと釣りっぽいエントリです。 たとえば、従業員クラスを作るとしましょう。名前とその読み仮名、住所、性別を持つとすると大抵は以下のようなクラスになります。 public class Employee { /** 名前 */ private String name; /** かな */ pr…

バリデータを書くことに違和感を感じた

Cubby にしろ、JSF にしろ Struts にしろ、バリデータにはたと違和感を感じました。 オブジェクト指向なんだから、どんな値が OK な値なのかはオブジェクト自身が知っていなきゃいけないんじゃないのかな? 車オブジェクト自身が、搭乗定員を知らないのはお…

フレームワークのあるべき姿はメタフレームワークであることではないか

昨日のエントリの続きっぽい話です。 おそらく、SIerさんの内作フレームワークで、プロジェクトがハッピーになったケースってとても少ないと思います。私の経験と、見聞きした範囲で言わせてもらえば1件もありません(!)。 それでなぜ上手くいかないかと言…

内作フレームワークが持つリスクを考慮すべきですよ>某大手 SIer さん

大手(ばかりではないでしょうが)SIer さんがたまにやる、どこにも公開していない内作フレームワーク(今回は、Java の Web アプリケーション用のものを念頭におきます)でプロジェクトをすすめるのはこういうリスクがあるんですけど、考慮してますか? っ…

重厚なフレームワークを使うとプログラムを均質化できると思うのは妄想

特に大規模プロジェクトの場合、プログラマのレベルの違いによるプログラムの質の差をなくそうとして重厚なフレームワークが用いられることがあります。 ほんとうにそう思ってるならソースコードレビューのひとつもしてみなさいって、お偉いさん。 そんなん…

開発効率の高さとメンテナンス性の高さはほぼイコールですよ

今(コーディング工程)が辛くても、2年後3年後のメンテナンス性のことを考えて頑張ってくださいって話がたまにあります。つまり、このコーディング工程がなかなか消化できないようなこの仕組みは、後々のメンテナンス性を高めるためだというのです。 たとえ…

開発効率 PHP > Java と脊髄反射する人の程度

私のまわりで見かけた話。 Java フレームワークは Struts(←これしか知らない) O/R マッパ? 何それ、おいしいの? ログは Log4J だよね! Commons logging の存在すら知らない(使えって意味じゃないよ) PHP PHP ってフレームワークってあるの? 良くて S…

PDCAサイクルを声高に掲げてウォーターフォールを採用するのはなぜ?

P(Plan=計画)、D(Do=実行)、C(Check=評価)、A(Act=改善) もうすっかりおなじみの言葉になっていると思います。 この間、面白いものを見たのです。 あるプロジェクトで、単体テストの不具合の原因の集計を行っていたんですね。 それ自体はいいん…

フレームワークにとって「異常系」も「正常系」

なんか言葉遊びみたいなタイトルになってしまいましたが。 前回のエントリで高級フレームワークについて述べましたが、高級か低級かにかかわらずフレームワークたるもの、「異常」を「異常」で終わらせてはいけません。それでは開発効率が落ちます。 人間な…

なぜ「高級フレームワーク」で開発効率が上がらないのか

コンピュータシステムについてわかってるのかわかってないのか微妙な上司が、営業の口車に乗せあられたのか、はたまた雑誌の記事に踊らされたのか、それとも展示会のデモを見て感銘を受けたのか。いやいや、元受の独りよがりに付き合っただろう……。理由はい…

違う言語間の移植

昨日のエントリで手続き型の言語からオブジェクト指向言語へ移植するときも手続き型っぽく作るべきと言った真意(というほどたいそうなものでもないが)について書きたいと思います。 これは、私が「一番手っ取り早くて正確」と思っている手法です。 まず、…

移植・移行をやったことがない人が考えそうなこと

あるプラットフォーム(たとえば汎用機)から、別のプラットフォーム(たとえばUNIX)に移植、移行作業をする場合、こういうことを考える人ってあんまり経験がないんだろうなぁと私は思いますね。 それは、ついでにいままでのシステムでいけてないところも直…

ブラウザキャッシュを使わせようぜ!

DB のテーブルの項目に「更新日時」なんてあるくせにブラウザキャッシュをうまく使わせていない Web アプリケーションをよく見かけます。もったいない! ブラウザキャッシュを考慮した Cubby の Action クラスの例 // S2Containerの機能でリクエストがインジ…

「採用されない」という苦き味を一度味わってみるべき

某大手 SIer の人が、自社の Web フレームワーク(Java 用)を指してこう言ったんです。 これは一般に公開しないし、単独での販売もしません。これは我が社のアドバンテージとして我が社の受注開発のためだけに使用します。 おいおいおいおい。うぬぼれなさ…

プロジェクトを遅らせるたったひとつの理由

すべての遅れているプロジェクトがこれを理由にしているということではないので悪しからず。しかし、これだけを理由として遅れているプロジェクトがあるのも事実です。 それは「できていないもの、知らないもので作ろうとする」ということです。 ある日私が…

中途半端に優秀なプログラマが「良いプログラムを書くために必要」だと思っているたったひとつの迷信

中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場 by ふろむだ からインスパイアされた記事です。 誰かの言うことを聞く というと語弊があるかもしれませんが、プログラミングは誰かの話を…

用語の大切さ

大規模プロジェクトを成功させるためにさまざまな方策を用いるのも結構ですが、それよりも私がたまに気になるのが「用語」の正確性です。 プロジェクトがでかくなってきますと、さまざまなことをいちいち説明してられなくなってきますので、用語に対する「方…

(半分ネタ)Excel仕様書の人はHTMLが書けない

書けないってのは、なんというか「ふつうこうは書かないだろ」というような書き方をするっていうのも含めて「書けない」。 いや、こういう書き方はよくないな。「ふつう」ってなんだよって言われちゃう。 ……うーん。なんていったらいいかな。 あ! そうだ。t…

フォーマッタがやる以上の整形はしない

↓この記事にツッコミます。コーディングスタイルの常識をぶち壊せ (1/2):CodeZine(コードジン) こういう考えかたもあるというのも理解できますし、私もずいぶん前ですが、そういうことをやっていました。 でも今はやっていません。変数名のところは、今も…

別に評論家をやりたいわけじゃないんです

このブログでもなにやらぶつくさ言っている私ですが、私自身、現役のプログラマーであり、「他称」システムエンジニアです。そして、それが本職であることはゆるぎない事実です。そして私の根底にあるのはただひとつ。 いいコンピュータシステム作りがしたい…

単体テスト仕様書兼成績書にテスト回数を書く愚

最近(似非)SDEM に対する愚痴が止まらない id:itoasuka です。こんにちは。 今日は、単体テスト仕様書兼成績書に「テスト回数」というものを書く愚について書きます。前提条件は 開発者1人につき1台以上のPCが割り当てられている。 それらのPCの中にソース…

Excelで仕様書を作ってくるような SIer は門前払いしたほうがいい

Excel って何ソフトですか? 表計算ソフトですよ。それで文書作ってくるっておかしいでしょ。 言ってしまえば Adobe Illustrator でラスタ画像を作ったり、Adobe Photoshop でベクタ画像作るみたいなもの。自分たちの中での「ノウハウ」なら使うのも手かもし…