タグ

ブックマーク / watanabek.cocolog-nifty.com (6)

  • もう「チーム開発」には戻れない - 設計者の発言

    生産管理システムをひとりで開発しているわけだが、このやり方(おひとりさま開発)に慣れると、分業体制でのチーム開発がいかに非効率だったかがよくわかる。チーム開発は「設計・実装技術の未成熟さゆえの必要悪」だったのではないかとさえ思えてきて、仲間と和気藹々とやっていた昔の自分がなんだか恥ずかしい。 たとえば、いくらしっかり設計してもどうしても仕様変更が起こるものだが、これにともなう手戻りコストがチーム開発では想像以上にかさむ。自分で修正したほうが早いと思いつつ、変更作業のための指示を他人のためにまとめたりする。また、実装担当者の稼働率を上げるために、仕様がまだ不明確であるような機能をあえてあてがったりする。今となっては信じがたいほどの非効率だ。 また、自分で作って動かしてみなければ得られない気づきやアイデアがたくさんあるのだが、チーム開発では設計担当と実装担当が分かれていることが多い。それゆえ、

    もう「チーム開発」には戻れない - 設計者の発言
  • サロゲートキーは強制されるべきものではない - 設計者の発言

    複合主キーに代えてサロゲートキー(単独主キーの代替キー)を導入すべきかどうか。それはDB設計上の重要な判断事項である。なにしろレコードのアイデンティティである主キーの設定にかかわる問題だ。さまざまなメリットやデメリットを考慮してそれは判断される。その結果、サロゲートキーを導入することもあるし、しないこともある。 ところが、サロゲートキーを強制する(あるいはサロゲートキーを導入しないと開発しにくい)開発基盤がいくつか存在する。具体的には、全テーブルの識別子が"ID"等のフィールド名を持つ単独主キーであることが求められたりする。私に言わせれば、そういう開発基盤は「大盛を強制する牛丼屋」である。メニューにあるはずの「並」を頼むと、あれこれイヤガラセをされる牛丼屋。 この問題に関連して、「サロゲートキーを使わなかったから、ひどい目にあった」という開発者の声を聞いたことがあるかもしれない。心配はいら

    サロゲートキーは強制されるべきものではない - 設計者の発言
    daisuke-m
    daisuke-m 2012/01/31
    とても勉強になる!
  • アジャイルの人たちは自分の優秀さに気づいていない - 設計者の発言

    アジャイル手法を実践できるプロジェクトは恵まれている。それは、「理解ある管理者」がアジャイル手法を了承してくれたからではない。管理者がそう判断できるほどに参加メンバーが優秀だからだ。 アジャイルの特徴のひとつが「少数精鋭」である。いっぽう、アジャイルの対立手法として理解されているウォーターフォール型手法では「人海戦術」で進められる点が対照的だ。じつは「少数精鋭」というのはアジャイルの特徴であるだけでなく、あまり触れられたくない弱点でもある。なにしろ「精鋭」しか関われない。 しかしアジャイル手法の推進者は、自分が優秀であることをそれほど意識していない。それどころか彼らは「いえいえ精鋭である必要はありません。じっさい私はアジャイルが大好きですが、凡庸な技術者ですよ」と自嘲的に語るだろう。そしてそれは心でもあるだろう。なぜなら、彼らは「超」がつくほど優秀な技術者たちがいることをアジャイルコミュ

    アジャイルの人たちは自分の優秀さに気づいていない - 設計者の発言
  • 「DB構造を見直さない」というアンチパターン - 設計者の発言

    システム開発プロジェクトの失敗原因のひとつに「システム刷新時に、DB構造を見直しせずにプログラムの言語だけを置き換える」というものがある。アンチパターンとまでは言えないとしても、クリティカルな問題をはらんでいる。にもかかわらず、いくつかの理由からこの方針は無批判に受け入れられるか、場合によっては歓迎さえされる。 なぜか。まず、システムの問題がDB構造(帳簿組織)の悪さから来ているという認識を、ユーザーやシステム部門が持ちにくいため、その見直しが明示的に求められないからだ。また、必要なスキルを持った技術者が少ないため、開発側として(大手SIerでさえ)なるべく見直ししたくないのが音だったりするからだ。いかにも問題がありそうに見えても「求められないから手をつけない」という理屈で通す。また、DB構造が多少おかしくてもエレガントなクラス構造でカバーできるから一刻も早くプログラミングさせてほしい―

    「DB構造を見直さない」というアンチパターン - 設計者の発言
  • 個別案件にオブジェクト指向は要らない - 設計者の発言

    「ウォーターフォールかアジャイルか」をはじめとして、ソフトウエア開発手法に関してさまざまな議論があるが、すべてのソフトウエアをいっしょくたにすべきではない。たとえば「ECサイト」と「業務システム(基幹業務支援システム)」とは、同じ「データベースシステム」に分類可能だとしても、専門性が大きく異っている。両者をまとめて議論しても実りが多いとは私には思えない。 私の専門は「業務システム」なのだが、次のように勘定科目と密接な関係を持つ複雑なデータ構造を扱う点が特徴的である。 <サービス業向け販売管理システム> ・発注、買掛残高、仕入実績、支払 ・受注、売掛残高、売上実績、原価実績、請求 <物販業向け販売管理システム> ・発注、買掛残高、仕入実績、支払 ・受注、売掛残高、売上実績、請求 ・在庫残高、受払実績、棚卸、倉庫移動 <生産管理システム> ・発注、買掛残高、仕入実績、支払 ・受注、売掛残高、売

    個別案件にオブジェクト指向は要らない - 設計者の発言
    daisuke-m
    daisuke-m 2010/11/01
    DDD好きなんだけど、納得。今後開発者はフレームワーク(文中のドライバ)開発者と、その上で踊らされる作業員に二極化する。
  • 「個別案件」ではプログラミングの可能性を生かせない - 設計者の発言

    ソフト開発企業に所属するプログラマが十年一日のように「個別案件」を相手にしているというのは、マイケル・ジャクソンが盛り場あたりで毎晩「流し」で日銭を稼いでいるようなものだ。もったいない。そんなやり方ではマイケルやプログラミングの可能性がもたらすさまざまな効果を享受できない。 仮にあるソフト会社が「ロボットの振る舞いのカスタマイズサービス」を提供しているとしよう。顧客の要望がそれぞれ微妙に違うとすれば、彼らはまず個々の要望を様式化して、その内容をあるソフトウエアに読ませるだろう。そうすればそのソフトウエアが個々の要望にしたがってロボットを動かしてくれるからだ。そんなソフトウエア、すなわち「ハードウエアドライバ」をあらかじめプログラミングしておくのが、その事業で効率的に稼いでゆくための賢いやり方というものだ。 ところが、現在の「基幹業務支援システム開発事業」の分野では、あらかじめドライバをプロ

    「個別案件」ではプログラミングの可能性を生かせない - 設計者の発言
    daisuke-m
    daisuke-m 2009/11/20
    そのドライバを作りたい、と思っている。
  • 1