タグ

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

  • 配置図から非機能用件を類推する - プログラマの思索

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

    配置図から非機能用件を類推する - プログラマの思索
  • REST思想とHTTPメソッドの関係 - プログラマの思索

    RESTの基的な発想は、HTTPメソッドでリソースをCRUDできるはずだ、というアイデア。 では、HTTPメソッドは、そもそもどんなものなのか? 「安全なメソッドと冪等{idempotent} なメソッド」でいくつか語られている。 「RESTful Webサービス」で「べき等」という概念が出てくる。 「べき等」とは、同じ操作を何度行っても同じ結果であること。つまり副作用がなく安全であることを意味する。 少なくとも、GETはべき等に使うならば、安全であると言える。 しかし、GETで、リソースの削除や更新を行う時も、実はよくある。 REST思想に従うならば、GETは副作用を起こしてはいけない。 POST、PUT、DELETEがリソースの更新で副作用を起こすように使うべき。 RailsはREST思想を忠実に反映している。 また、Strutsも「http://~/***.do」というURLを見る

    REST思想とHTTPメソッドの関係 - プログラマの思索
    lizy
    lizy 2008/03/12
  • ITの地殻変動はどこで起きているのか?~SeasarとRuby、そしてPF - プログラマの思索

    2008年になってみて、ITの地殻変動がどこに起こっているのか?を考えてみる。 ※以下は殴り書き。後でロジカルにまとめる。 【1】XPからPF(プロジェクトファシリテーション)へ ウォーターフォール型開発はメインフレーム+Cobolの時代の開発プロセス。今となっては古い。 RUPは、業務向けオブジェクト指向開発を基盤とした開発プロセス。 馬鹿でかい。皆こなしきれない。 ウォータフォール型開発に、各フェーズでインクリメンタル型を取り入れただけ。 XPは、Webシステムを基盤とした開発プロセス。 XPは、ここ10年の経験に裏打ちされた開発プロセスの革命。 ソフトウェア工学にも新しい知見を生み出した。 XPでは、プログラマは、コーディングするパンチャーではなく、システムの品質に対する最終責任者。 ドキュメントよりも動くプログラム重視。 プロトタイプ重視。 ソース共有、コーディング規約、常時ビルド

    ITの地殻変動はどこで起きているのか?~SeasarとRuby、そしてPF - プログラマの思索
    lizy
    lizy 2008/03/03
  • 【再考】XPプラクティスの相関関係 - プログラマの思索

    SEA関西プロセス分科会「エンピリカルソフトウェア工学の実践 」を聞いてきた。 さかばさんの講演でした。 最も興味があったのは「効果的なXPの導入を目的としたプラクティス間の相互作用の分析」。 内容は、XPのプラクティスの相関関係を調査したもの。 2004年当時、2個のプロジェクトでヒヤリング形式で調査したとのことだが、下記の結果が得られている。 【1】生産性や向上に役立つプラクティス ペアプロ リファクタリング テスト駆動 シンプルデザイン 更に、保守性に役立つプロセスは、上記+アルファとして、 コードの共同所有 コーディング規約 【2】要求品質に役立つプラクティス 短期リリース 常時結合 ユーザテスト 計画ゲーム 【3】コミュニケーションに役立つプラクティス 全員同席 計画ゲーム ユーザテスト XPは第2版になって複雑化してきているが、現在のシステム開発をパワーアップさせるプラクティス

    【再考】XPプラクティスの相関関係 - プログラマの思索
  • Webアプリのセッション管理はデスクトップアプリのメモリ管理と同じ - プログラマの思索

    Webアプリ開発で必ずぶち当たる課題、Webアプリ特有の技術、アーキテクチャについて考えてみる。 古くから続く課題を知れば、次世代Webフレームワークがどのように解決しようとして、何を提示しようとしているか分かりやすくなるだろう。 #以下、セキュリティ関係などを除く。 Webアプリは、Ajaxが登場するまで、UIがブラウザで制限されているため、それほど難しい機能を実装できなかった歴史があった。 古くはPer/PHP、そしてJavaに至るまで、Webアプリはステートレスだったから、殆どの機能は閲覧機能とマスタメンテナンス機能にすぎなかった。 なぜなら、Webアプリでは、6時間以上もかかるようなバッチ処理を実装したとしても非現実的だから。 しかし、以前から知られているアーキテクチャ上の課題はあるし、Ajaxの出現によって更にその課題が複雑になった現状もある。 Webアプリを作る時はいつも、下記

    Webアプリのセッション管理はデスクトップアプリのメモリ管理と同じ - プログラマの思索
  • システムのリプレース案件が最も危険な理由 - プログラマの思索

    「Joel on Software」を立ち読みして興味深く思えたことを書く。 「あなたが絶対すべきでないこと PART I」という章がある。 Netscapeがブラウザの90%を占めていた頃、何を思ったか、彼らはNetscapeのソースコードを一から書き直すことを決心した。 Netscpapeのアプリをアップデートしていくには、そのソースコードを書き直さねばならない。 文字列を分解してゴニョゴニョした処理をして返すだけの関数が2ページもある! タコなソースだよ!と。 でも待ってくれ。 このIF文は、IEの古いバージョンのバグに対応するために、ナンシーが書いたものだ。 この処理は、Windows95で動かすために手を入れたもので、ボブが書いたものだ。 つまり、このソースコードは見た目は奇怪でも、きちんと動いているし、過去のバグフィックスも積み重ねられているんだよ。 もし一から書き直したとしよ

    システムのリプレース案件が最も危険な理由 - プログラマの思索
  • RedMineリンク - プログラマの思索

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

    RedMineリンク - プログラマの思索
    lizy
    lizy 2007/12/26
  • 【再考】プロジェクトリーダーの仕事 - プログラマの思索

    プロジェクトを成功させる 現場リーダーの「技術」 」を読んだ。 このは、プロジェクトリーダーがプロジェクトファシリテーションをどのように使えばよいか、というヒントがたくさんある。 プロジェクトリーダーの仕事について、自分なりに考えたことを書いてみる。 【1】課題と問題の違い 「課題と問題は違う」というフレーズがある。 このでは、下記のように定義している。 a.問題・・・目的達成の障害となる現象。例:トラブルなど。 b.課題・・・目的を達成するために解決すべき事象。プロジェクト仕事は課題と捉えうる。 現場でプロジェクトが立ち止まってしまう時、その事象が問題なのか課題なのかを見極めることは重要だと思う。 問題となる事象は、因果ループ図で言うと、悪循環の負のループに陥っている構造のこと。 特に、トラブルが起きた時、応急処置で解決することも大事だが、根的な原因は何かを探ることも大事。 そ

    【再考】プロジェクトリーダーの仕事 - プログラマの思索
  • ペアプロ再考 - プログラマの思索

    11/30にXPJUG関西主催の「スタートアップXP!」で「プログラミング以外にも使えるペアプロ」というタイトルの講演をしてきた。 その時の講演内容について、もう一度振り返ってみる。 【1】でも、ペアで作業する時は多い 実際の現場で、ペアプロの経験は僕はない。 でも、ペアで作業する時は実は多い。 番リリース作業では、オペレーションを行う人と、チェックリストを見ながら監視する人のペアが多い。 同じくDBのメンテナンス作業も同じ。 番システムでは、作業ミスは許されない。 他スタッフの話を聞くと、開発工程(プログラミング)だけでなく、設計やスケジュール作成でも、ペアで作業する時があると聞いた。 つまり、工程に応じて、ペアの呼び名が違うのかもしれない。 a. 設計→ペアプランニング b. 開発→ペア作業(ペアプロ) 業務系でも、Web系でも、組み込み系でも、ペアで作業しているシチュエーショ

    ペアプロ再考 - プログラマの思索
  • DOAを捨てた後OOAが混乱を招いている - プログラマの思索

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

    DOAを捨てた後OOAが混乱を招いている - プログラマの思索
    lizy
    lizy 2007/12/07
    ふーん
  • NetBeansがRuby開発環境に向いている - プログラマの思索

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

    NetBeansがRuby開発環境に向いている - プログラマの思索
  • ソフトウェア開発のチームビルディング - プログラマの思索

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

    ソフトウェア開発のチームビルディング - プログラマの思索
  • Mavenで開発ライフサイクルを制御する - プログラマの思索

    Mavenを使う時があり、「Apache Maven 2.0入門 Java・オープンソース・ビルドツール 」を参考にした。 Mavenを実際に使ってみて、概念や経験を整理してみる。 【1】Mavenとはビルドツールの標準テンプレートである MavenはJavaのビルドツールである。 Antも同様だが、Mavenの特徴は汎用ビルドツールのテンプレート版みたいなもの。 Mavenには下記の主要な概念、仕組みがある。 1-1.アーティファクト Mavenによって作られるプロジェクトの成果物を指す。 一般には、JAR、WAR、EARファイルなどのコンポーネント。 他に、JavaDoc、JUnitテストレポート、DJUnitレポート(カバレッジのレポート)も含まれる。 1-2.POM(Project Object Model) ビルドするための情報(メタデータの構造)が定義されたファイルのこと。 普

    Mavenで開発ライフサイクルを制御する - プログラマの思索
    lizy
    lizy 2007/11/04
  • プログラマの思索: Webベースのプロジェクト管理

    最近、プロジェクト管理の手法が急激に変化しつつあるのを感じる。 以前は、ExcelやMS Projectで進捗管理や要件管理をプロジェクトリーダーが取り仕切り、メンバーに節目ごとに展開していた。 そこでよく出る症状として、プロジェクト全体の進捗や各メンバーの役割がメンバーに見えにくいことがあった。 だから、「見える化」と称して、XPやPFの手法が使われた。 最近は、Trac(Python)やRedmine(Ruby on Rails)のようにWikiベースのFreeのプロジェクト管理ツールを導入するケースが多くなった。 その特徴や感想について書いてみる。 【1】TracやRedmineの特徴は下記があるように思う。 1・Wikiに、技術上のアイデア、開発環境の構築方法、リリース作業手順、日報などを書き込み、皆で情報共有する 2・カレンダーにプロジェクトのマイルストーン、各自の作業納期を書き

    プログラマの思索: Webベースのプロジェクト管理
  • プログラマの思索 ER図モデリングツール DBDesigner

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

    プログラマの思索 ER図モデリングツール DBDesigner
  • 朝会を実践してみて - プログラマの思索

    朝会をチームでやることになり、下記のHPを参考にした。 ・朝会のパターン:立ってるだけじゃないよ ・プロジェクトファシリテーション実践編:朝会ガイド そこで自分なりにアレンジしてみて、下記のルールで朝会をやってみた。 1・話す内容は、昨日やったタスク、今日やるタスク、最後に一言(抱負、連絡事項)の3つだけ。 2・一人が話す持ち時間は3分以内。 3・全員で立ったまま話す。 そして1ヶ月間、朝会をチームで実践してみて、新しい発見が結構あった。 その体験から「朝会の目的はそもそも何だろう?」という思いが上がってきた。 そこで、朝会について再考察してみる。 【1】自らの役割を自覚する~コミットメントの共有 過去の経験からして、失敗プロジェクトでは各メンバーの役割が曖昧で、誰が何をしているか、今の自分の仕事プロジェクトのどのプロセスに相当しているか、を開発者だけでなく、リーダー自身も知らないことが

    朝会を実践してみて - プログラマの思索
  • プログラマの思索: RubyよりもJavaが好きな理由

    最近、Ruby関西に行ってRubyの勢いを感じている。 そんな時に、Javaの最近の動きを聞く機会があった。 Java6やSeasarの話を聞くと、JavaがC#やRailsの影響を受けているように聞こえた。 でも、話しているうちに、「やっぱりRubyよりもJavaが好きなんだ」と気づいた。 その理由は、「JUnitのようなテスト駆動ツールが揃っている」点に尽きる。 そこで「テスト駆動の観点から眺めたJavaの利点とプログラミング思想」について考察してみる。 【1】テストを意識するとメソッドの行数が自然に短くなる プログラミング初心者のプログラムを見ると、行数がやたらと長く、長いプログラムを書き上げた後からデバッグし始める。 だから、いつまで経っても動かない。 プログラミング中級者になると、行数は長いままだが、少しずつ書いてはプリント出力してデバッグで動作を確認し始める。 この

  • 【Rails関西】Rails屋からデータモデリングに対する回答 - プログラマの思索

    1/20に開かれた第6回RubyOnRails関西へ行ってきた。 場所は神戸電子専門学校。目の前にオランダ館、風見鶏館などの異人館があり、華やかな場所でした。 このたびの発表の中で最も興味を引いた講演が「やさしいRailsの育て方」(by 西和則さん)。 講演内容は、Railsでもテーブル設計をきちんと考えましょう、ということなのだが、それは昨年8月の渡辺さんの指摘に対する回答になっているように思う。 【1】RDBのテーブル設計におけるアンチパターン Railsをやっていると、例えば、下記のアンチパターンに囚われてしまう。 1・無限FK地獄や列破綻 テーブルに他テーブルの外部キーをどんどん持たせると列が増えていく。 西さんの例では、社員テーブルに派閥1、派閥2のカラムを増やしていた。 2・フラグステータスとバタフライ効果 「北京で蝶が羽ばたくとニューヨークで嵐が起きる」がその意味だが、「小

    【Rails関西】Rails屋からデータモデリングに対する回答 - プログラマの思索