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

  • 業者の設計スキルをハダカにする - 設計者の発言

    システム刷新に失敗する理由のひとつが、ユーザ企業が業者の設計スキルを吟味せずに一括請負契約を結んでしまう点にある。彼らに委託すると、実際には下請業者が設計していたりする。多くの業者が多かれ少なかれゼネコン化しているため、設計スキルが空洞化しているためだ。下請業者に的確な設計が出来ないとは限らないが、起用される設計者のスキルレベルを発注者がコントロールできないという意味で、リスクが大き過ぎる。 そもそも「システム刷新に失敗した」とはどういうことか。ユーザ企業自身が想定するコスト感やスピード感でシステムを改善・発展させられなくなっているのであれば、失敗したと判断していい。少しばかり改修しようとしても、無駄に複雑な設計を掌握している開発業者の意向に振り回される。そんな業務システムの命運は業者に握られていて、これはもう経営権の一部を奪われているのと変わらない。そんな事例は少なくない。 なぜそういう

    業者の設計スキルをハダカにする - 設計者の発言
  • 「オブジェクト指向」や「アジャイル」では食えない - 設計者の発言

    技術で安定的に稼ぐためには、どんな「専門性」を核に据えるかがカギである。その選定に失敗すれば、貴重な現役時代の10年くらい簡単に無駄使いしてしまう。これを避けるためには、自分の専門性がターゲットとする「市場」をよくよく見定めておく必要がある。 先日、ある超高速開発ツールを活用している技術者の語りを聴く機会があった。彼は最初にハードウエアの設計技術者としてあるメーカーに入社したのだが、そこで製造管理を強化するために独力で生産管理システムを設計・実装してしまった。この経験を生かしてその後ソフトウエア技術者に転身し、ユーザ企業のシステム部門を渡り歩いてきた。現在所属しているメーカーでは、彼のおかげでシステム部門のプレゼンスが高まって感謝されているという。キャリア経験の中から「自分と家族をわせてゆくための源泉」を見つけ維持している立派な技術者だと感心させられた。 特定の超高速開発ツールを利用して

    「オブジェクト指向」や「アジャイル」では食えない - 設計者の発言
  • 「論理設計」にこだわる利点 - 設計者の発言

    業務システムのあり方を構想する際には、論理設計と物理設計とをフェーズ分けしたほうがいい。システム要件を仕様化しやすくなるだけでなく、スキル育成や効率改善の基礎となるからだ。それはソフトウエアの特性にもとづくプレゼントのようなもので、ありがたく活用したい。 そもそも「論理設計」とは何か。「受注情報だけを管理する」という単純なシステム要件があったとしよう。その際、たとえば以下のような「論理定義」がまとめられることになる。 1.業務構成 受注登録業務、受注保守業務、受注照会業務 2.データ構成 受注見出しテーブル、受注明細テーブル 3.機能構成 受注一覧機能、受注登録機能、受注保守機能、受注照会機能 ここでは定義要素の字面だけが示されているが、それぞれ独特な形式の詳細情報を伴う。たとえば「業務構成」は「いつ誰がどのようにこのシステムを利用するか」についての定義のまとまりなのだが、それぞれ「いつ(

    「論理設計」にこだわる利点 - 設計者の発言
  • 基本設計を分担してはいけない - 設計者の発言

    プロジェクトメンバーが無駄に多いのが、日型SIの特徴のひとつである。「工数を人数で割れば工期が出る」と考えることが間違いであることは、ブルックスの著書「人月の神話」によって今から40年前に指摘されている。それにもかかわらず、相変わらず多くのプロジェクトで必要以上の人数が投入されている。 私がとくに不思議に思うのが、基設計を何人もの要員で分担するやり方だ。DB設計と機能設計と業務設計の担当を分けるとか、サブシステム毎に担当を分けるといった体制がしばしば敷かれる。詳細設計の段階でというのならまだわかるが、基設計でそれをやってはいけない。 なぜか。業務システムにはアーキテクチャ(意図された構造)が求められる。そして、そこに含まれる膨大な定義要素は、統一感や一貫性を保ち、かつMECEな形で切り出されなければいけない。複数の要員で分担などすれば、それらの課題が一挙に難しくなる。また、DB構成と

    基本設計を分担してはいけない - 設計者の発言
  • 基本設計を分担してはいけない - 設計者の発言

    プロジェクトメンバーが無駄に多いのが、日型SIの特徴のひとつである。「工数を人数で割れば工期が出る」と考えることが間違いであることは、ブルックスの著書「人月の神話」によって今から40年前に指摘されている。それにもかかわらず、相変わらず多くのプロジェクトで必要以上の人数が投入されている。 私がとくに不思議に思うのが、基設計を何人もの要員で分担するやり方だ。DB設計と機能設計と業務設計の担当を分けるとか、サブシステム毎に担当を分けるといった体制がしばしば敷かれる。詳細設計の段階でというのならまだわかるが、基設計でそれをやってはいけない。 なぜか。業務システムにはアーキテクチャ(意図された構造)が求められる。そして、そこに含まれる膨大な定義要素は、統一感や一貫性を保ち、かつMECEな形で切り出されなければいけない。複数の要員で分担などすれば、それらの課題が一挙に難しくなる。また、DB構成と

    基本設計を分担してはいけない - 設計者の発言
  • 主キーはインデックスではない - 設計者の発言

    仕事柄、奇妙なDB構造を目にすることが多い。どういう発想からそんな設計がされるのかを理解したいと思っていたのだが、モデラー仲間の秋里さんが先日うまい指摘をした。「主キーをインデックスみたいなものと勘違いしているからではないでしょうか」。インデックス(キー)というのは、レコードの並び順を規定するキーのことだ。 たしかに思い当たる節がある。「こんな順にレコードが並んでいれば処理上都合がよさそうだ」という考えで主キーが設定される。さらに主キーはユニーク制約でもあるので、重複が起こらないように「多め」に項目を突っ込んでおく。つまり「ユニーク制約をともなう代表的インデックス」程度に主キーが理解された結果として、グダグダなDB構造が出来上がるのではないか。 じっさい、昔こんなことがあった。{a,b,c,d}の複合主キーをもつテーブルXがある。ところが、別のテーブルYからテーブルXの特定レコードにアクセ

    主キーはインデックスではない - 設計者の発言
  • データモデルはドメインモデルに先行する - 設計者の発言

    関わっているあるプロジェクトで、Javaでのコンポーネントベース開発を進めるためのクラス図が出来上がりつつある。DDD(ドメイン駆動設計)に関心を持つ技術者にとってお手になるような端正なドメインモデルだ。それを眺めながら関係者がしみじみと感じていることがある。どんなに優秀なドメインエキスパートと組んだとしても、DDDにもとづいてこのモデルを「先に」生み出すことは不可能だっただろう。 どういうことか。我々はまず、泥臭い分析と設計を重ね、あるべきデータモデルを完成させた。そのうえで実装方式の専門家の協力を仰ぎ、クラス図が出来上がった。つまり、データモデルからドメインモデルが導かれたのであって、その逆ではない。じっさい、ドメインモデルからデータモデルを導くことが不可能であったことは、両者を並べたら一目瞭然なのであった。 これは重要な論点だ。データモデリングとドメインモデリングのどちらを先行させ

    データモデルはドメインモデルに先行する - 設計者の発言
  • 1