タグ

ブックマーク / forza.cocolog-nifty.com (15)

  • データベース設計で派生関係は難しい - プログラマの思索

    @t_wadaさんが、データベース設計の素晴らしい資料をリンクしていたのでメモ。 下記の資料は、MySQLでソーシャルゲームDB設計のお話らしいが、データモデリングの設計ノウハウが秀逸。 気になった点をメモしておく。 理解できたことをラフなメモ書き。 【元ネタ】 Twitter / Takuto Wada: 素晴らしい資料。"「スキーマ」「トランザクション」「インデックス」はもっと評価されるべき" / ソーシャルゲームのためのデータベース設計 http://htn.to/PzrnbR 【1】可用性や整合性に関する要求が意外と多い たとえ、SNSゲームであろうが、課金体系になるとお金が絡むため、ユーザの要求のレベルも上がるし、事業者の責任も大きくなる。 データモデリングはアーキテクチャ設計につながる。 【2】派生関係 データベース設計(DOA)でも、派生関係(継承関係)はオブジェクト指向

    データベース設計で派生関係は難しい - プログラマの思索
  • 頻繁なVerUpがソフトウェア開発の本質 - プログラマの思索

    WF型開発とAgile開発の質的な違いはどこにあるのか? プロセスや技術の観点から見れば、WF型開発は番リリースが1回しかないのに対し、Agile開発は定期的なリリースを基とする特徴がある。 その観点をもう少し深めて考えてみた。 ラフなメモ書き。 【1】WF型開発は、シーケンシャルに工程単位に開発を行い、フィードバックプロセスをできるだけ排除するプロセス。 半年~1年に1回だけ番リリースするのが普通だろう。 特に日のSIは製造業から派生した会社が多いから、ソフトウェア工場の発想に影響を受けている。 つまり、前工程の品質をできるだけ確保するために、レビューやテストを事前にしっかり行い、仕様漏れや検証漏れを前工程で十分に行って、後工程のフィードバックや突然割り込んだ変更要求をできるだけ排除するやり方。 たいていは、スコープは長期間固定化するのが普通で、最後の1回の番リリースを成功さ

    頻繁なVerUpがソフトウェア開発の本質 - プログラマの思索
  • 歴史的使命を終えつつあるUMLそしてオブジェクト指向: プログラマの思索

    Janet Gregory: 実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践) アジャイル開発におけるテスト管理、リリース管理、ビルド管理などの観点を詳しく解説したアジャイルテストの4象限の図は、とても分かりやすい。「アジャイル開発の質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス」と共に、Agile2.0時代においてアジャイル開発に関する必読の書籍の一つ。 ディーン・レフィングウェル: アジャイル開発の質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive) XPが出た2000年初頭に出現した初期のAgile開発では、その利点は受け入れられたものの、スケールアップが難しいなどの弱点を言われ続けて

  • Webプログラミングは何故オブジェクト指向でない?~WicketはWebプログラミングにオブジェクト指向を取り戻す - プログラマの思索

    Webプログラミングは何故オブジェクト指向でない?~WicketはWebプログラミングにオブジェクト指向を取り戻す JavaでWebアプリを10年書いて思ったこと。 Webプログラミングは全然オブジェクト指向でない。 Sevlet+JSP主体のプログラミングスタイルは、リクエストとレスポンスへPrimitiveな値をどうやって渡すか、という手続き型の発想でしか書いていない。 従来のWebプログラミングスタイルの問題点について書いてみる。 以下ラフなメモ書き。 【参考リンク】 Wicketって? ウェブ開発をもう一歩前に Wicketで始めるオブジェクト指向ウェブ開発:第1回 Hello, Wicket|gihyo.jp … 技術評論社 【コラム】イマドキのIDE事情 (39) Wicket、Grails、Click - IDEでみる軽量Javaフレームワーク | エンタープライズ | マイ

    Webプログラミングは何故オブジェクト指向でない?~WicketはWebプログラミングにオブジェクト指向を取り戻す - プログラマの思索
    SiroKuro
    SiroKuro 2010/06/13
    現実問題として、あるリクエストに対する反応は Strategy パターンで記述するのが単純だ。
  • IPAが書いたアジャイル開発の研究会報告書 - プログラマの思索

    IPAが200頁にものぼるアジャイル開発の研究報告を公開していた。 IPAが公開している研究報告は、RubyRailsアジャイル開発などの昨今の話題を日IT業界のエスタブリッシュメントがどんな観点で見ているのか、を知る上で非常に参考になる。 運営委員に平鍋さんや羽生田さんがいて議論に加わっているのが興味深い。 気になる文言をメモ。 【元ネタ】 情報処理推進機構:ソフトウェアエンジニアリング 調査報告書[1.68MB] 研究会報告書[924KB] 成果概要資料[702KB] ・共通フレームについても、改めて見直してみたが、ウォーターフォールを標榜していると誤解されても仕方が無いなと感じた。ウォーターフォールを定義できる辞書を整備して、最後に、段階的や進化的プロセスも説明できるよという書き方になっている。要求定義が不十分であることが、リスクとして扱われている。アジャイルプロセスでは、こ

    IPAが書いたアジャイル開発の研究会報告書 - プログラマの思索
  • TortoiseSVNの差分比較でWinMergeを使う - プログラマの思索

    小川 明彦, 阪井 誠 : チケット駆動開発 日のソフトウェア開発の現場で生み出された「チケット駆動開発」という概念を、数多くの実例を元にモデル化・体系化を試みた最初の。 小川 明彦, 阪井 誠 : Redmineによるタスクマネジメント実践技法 Redmineによるチケット駆動開発の実践技法に関する最初のアジャイルなソフトウェア開発への適用方法、TestLinkによるテスト管理手法についても言及。 清水 吉男: 「派生開発」を成功させるプロセス改善の技術と極意 組込システム開発をベースとして、ソフトウェア開発特有のスタイルである派生開発、特にXDDPについて解説した世界でも稀な。既存製品を保守するのではなく継続的に機能追加していく昨今の開発では、派生開発特有の問題を意識しなければならない。XDDPはプロセス論だけでなく、要件定義などの上流工程の品質改善にも役立つので注意。 Le

    TortoiseSVNの差分比較でWinMergeを使う - プログラマの思索
  • Excelのプロジェクト管理は何故良くないのか - プログラマの思索

    XP祭り関西2010のTiDDセッションの感想を読んでメモ。 【元ネタ】 [TiDD] BTSがチケット駆動開発に向いている理由: ソフトウェアさかば 2010-02-07 - winplusの日記 XP祭り関西2010に参加してきた - Basic XP祭り関西2010でアジャイルとチケット駆動開発について考えてきた #xpjugkansai - Pragmatic Style 【1】2010-02-07 - winplusの日記の感想について、倉貫さんの事情は色々あると思うけど、僕の意見を一言。 (前略) それと、倉貫さんが「Redmine でも重い」「Googleのスプレッドシートでタスク管理している」という発言に、あきぴーさんが「僕は納得していない」と。 この日に目撃したほとんど唯一の衝突だったのですが、それ以上の展開がなかったので、すごく残念でした。 倉貫さんの Excelならダ

    Excelのプロジェクト管理は何故良くないのか - プログラマの思索
    SiroKuro
    SiroKuro 2010/02/09
    id:syttru 読みにくい(書式がフリーダム。PJ100個で書式も100個) 書きにくい(なんでも書き換えられるので鉱石ラジオのような運用が要求される)
  • Redmineの各機能から眺めたチケット駆動開発の課題 - プログラマの思索

    Redmineの各機能から眺めたチケット駆動開発の課題についてメモ。 ラフなメモ書き。 【プロジェクト】 「Redmineプロジェクトはどんな単位で作るべきか?」という質問は良く出る。 僕がTiDDをアジャイルに運用した経験から言えば、二つある。 一つ目はブランチのライフサイクルに合わせる。 二つ目はITILの運用保守プロセスに合わせる。 前者は、RedmineプロジェクトがSCMリポジトリと1対1に対応している思想から、自然に扱える。 例えば、番リリースしたソースは番ブランチとして作られて、trunkとは別のコードラインで保守される。そして、次のメジャーバージョンが出たら、古い番ブランチは廃止されて、以後は保守されなくなる。 つまり、プロジェクトとブランチが1対1に対応する状態遷移になる。 プロジェクト:新規作成→使用中→非公開→終了 ブランチ:新規作成→使用中→廃止(以後保守

    Redmineの各機能から眺めたチケット駆動開発の課題 - プログラマの思索
  • プロジェクト管理ソフトウェア - プログラマの思索

    プロジェクト管理ソフトウェアの解説があったのでメモ。 TracやRedmineも比較した結果が書かれている。 【元ネタ】 プロジェクト管理の選び方と使い方&プロジェクト管理×15 at Cool Coding 下記の内容が秀逸。 (前略) とはいえプロジェクト管理の目的はプロジェクトを成功させるための道具であり、プロジェクト管理を運用することではありません。 意外とその点が理解されておらず、プロジェクト管理をメンテナンスするための工数が大きくかけられてしまっていたり、細かく管理することだけが目的化してしまっている現場もよく見かけます。 (後略) ツールに踊らされて、マネジメント工数がかかりすぎて、開発チームの生産性が落ちるようならば無意味。 かと言って、ツール無しで、Excelや紙の障害報告票で進捗管理するのも現実的でない。 PMBOKには「プロジェクトマネジメント情報システム」(PMIS

    プロジェクト管理ソフトウェア - プログラマの思索
  • プログラマの思索: Subversionのブランチを有効活用してアジャイルに開発せよ

    デブサミ2008講演資料の「SubversionとMaven 2 による構成管理」を読んで、改めてソフトウェア開発ではソース管理が最重要であると再認識した。 ソース管理について振り返ってみる。 【1】ソース管理の歴史 ソフトウェア開発では、ソース管理が必須だ。 ソース管理の質は、履歴を辿って、いつでもソースをUndo、Redoできること。 昔のコンピュータ資源が希少な時、そもそもプログラムを履歴に残すことすらできなかっただろう。 今でもリリース時によくやるように、システム一式を複製して日付でリネームしていた。 僕は当初、ソース管理に、MSのVisualSourceSafeを使っていた。 CVSよりも直感的でGUIが使いやすい。 VSSを使い始めてから、下記の作業がルーチンになった。 朝、出社後、VSSから最新ソースを落として、VisualAgeForJavaのワークスペースにインポートす

    プログラマの思索: Subversionのブランチを有効活用してアジャイルに開発せよ
  • 要件管理はチケット駆動開発で実装できるか? - プログラマの思索

    要件管理をRedmineやTrac上で試しているが、しっくりこない原因をメモ。 【元ネタ】 チケット駆動開発とTestLinkによる開発プロセスの改善 (Shibuya.trac #4.5) - まちゅダイアリー(2009-09-11) チケット駆動開発は進捗報告作りをどのように解決しようとするか?: プログラマの思索 RedmineへScrumのアイデアを注入: プログラマの思索 まちゅさんは、「チケット駆動開発とTestLinkによる開発プロセスの改善 (Shibuya.trac #4.5) - まちゅダイアリー(2009-09-11)」で下記のようなコメントを残している。 TiDD は開発プロセス全体を網羅するものではない。開発プロセスを補完するもの。 * チケットの粒度が細かいことと、構成管理ツールと密接な関係があることから、アウトプットが明確な領域に適用しやすい。 * 要件定義な

    要件管理はチケット駆動開発で実装できるか? - プログラマの思索
  • チケット駆動開発のベストプラクティスを収集したい - プログラマの思索

    チケット駆動開発を実践して、色々考察してきて、ベストプラクティス集を作りたいと思っている。 理由は、チケット駆動開発とアジャイル開発の密接な関係を明確にして、アジャイル開発を簡単に運用できるノウハウとして公開したいからだ。 僕は、チケット駆動開発には下記4個のプラクティスが最低限必要だと思っている。 但し、XPのプラクティスと同じだがTiDDの言葉で言い換えているものもあるので注意。 1・チケット・ファースト(Ticket First) 【説明】 基は、プロジェクトの作業はチケットを受け取ってから始める。 チケット無しで作業はしない。 また、SVNコミット時に、チケット無しのコミットも不可。 【効用】 チケットがタスクカード(作業指示書)のため、コミュニケーションロスがなくなるし、作業履歴がチケットのコメントとして残る。 進捗情報は全てチケットに書くから、BTSのチケット集計機能でリアル

    チケット駆動開発のベストプラクティスを収集したい - プログラマの思索
  • XDDPと言う派生開発 - プログラマの思索

    初めて、XDDPと言う派生開発の提唱者である清水さんの話を聞いた。 は2冊読んでいたけれど、自分の理解が不十分だったことに気付いた。 以下、メモ書き。 【1】XDDPの最大の特徴は、SW開発の殆どは機能追加という保守開発である、という認識を前提としたアジャイルっぽい開発スタイルにある。 ソースからリバースエンジニアリングで要求仕様書を作り、ソースをダラダラと修正するのではなく、一気に修正してしまう。 駄目なプロジェクトでは、ソースに手を入れては修正漏れが出て、それを直してはまたバグが出る、といった症状が多い。 影響範囲や修正方法を確実に見極めれずに、ソースに手を入れてどんどん劣化させてしまう最悪なパターン。 清水さんのフレーズで面白いと思ったのは「移植作業は、ソフトウェアでも拒否反応を起こす」という内容。 人体でも、風邪を引いた場合、抗生剤を飲む。 しかし、抗生剤は人によっては免疫機能が

    XDDPと言う派生開発 - プログラマの思索
  • 要件定義をロジカルシンキングで解析する - プログラマの思索

    「30の「勝負場面」で使いこなす ロジカル・シンキングの道具箱」を読んで、高度情報処理試験の論文問題を解いているような気がしてきた。 要件定義と問題解決、ロジカルシンキングについて考えたことをメモ。 【1】業務系システム開発のリスクは、Railsのような最新技術の習得、TiDDのようなプロジェクト管理、TestLinkのようなテスト管理など色々あるが、一番のネックは要件定義だ。 元々の要件が顧客の認識とずれていたら話にならない。 しかしながら、新規顧客の場合、顧客と一緒に開発してリリースして運用しなければ、顧客の来の要求が何だったのか、が分からない時はすごく多い。 だから、SIerのビジネスモデルとしては、1次開発は赤字だったとしても2次開発や運用保守で黒字になるように仕向けるのが普通だろう。 特に大手SIerが政府の公共システムを受注する場合が当てはまるだろう。 だが、そういうリスキー

    要件定義をロジカルシンキングで解析する - プログラマの思索
  • Subversionを見直せ - プログラマの思索

    SW構成管理の概念の中心は、バージョン管理。 バージョン管理こそが我々SW開発に従事する者にとって、背骨であり血液に当たる最重要なインフラ。 デスマーチに陥るプロジェクトは、バージョン管理に何かしらの欠点や弱点がある。 おそらく殆どのSW開発では、Subversionをバージョン管理に使っているが、Subversionは実は数多くの機能を持ち、従来のプロジェクト管理を根的に変える可能性を秘めている。 もう一度、Subversionの機能を見直してみた。 【1】ムービー企画「Subversionによるバージョン管理入門」 WEB+DB PRESS Vol.39誌面連動ムービー|gihyo.jp … 技術評論社 最近のバージョン管理は、trunkとbranchの2系統のバージョン管理戦略を持つ傾向がある。 メインラインモデルと呼ばれる。 メインラインモデルの手法を使って、番運用中の保守br

    Subversionを見直せ - プログラマの思索
  • 1