開発に関するtmtmsのブックマーク (27)

  • TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) - 千里霧中

    先日、twitter上でTDDに関する談義があったのだけれど、気になったのがそれに対するテストや品質の方々の反応。特にTDDの戒めである「品質保証を目的としていない」という書き込みに対してネガティブな反応が多かったのが気になった。 開発経験もあり定義や概念の扱いに注意深い方々なので誤解の可能性はないと思うが、結構問題が入り組んでいるように感じたので、今回テストエンジニアと開発者の視点の差異を焦点にして一部の論点を整理したいと思う。 開発者のいう品質保証の定義 まずTDD談義で開発者が「品質保証のためのテスト」「品質管理のためのテスト」などと呼んでいるテストの定義は、乱れや不統一感も多少あるけど、基的にKent Beckや和田さんが使われているQAテストの定義によるもの(http://gihyo.jp/dev/serial/01/tdd/0003)。 この定義で「品質保証のための単体テスト

    TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) - 千里霧中
  • 深夜のテストTL

    ヨシオリX @yoshiori なんか「テストファースト」って言葉に2種類の使われ方があって、混乱するなぁ…… テスト手法のテストファーストと、開発手法のテストファーストはわけるべきだよなぁ 2010-02-15 00:43:52 ヨシオリX @yoshiori 「TDD はテスト計画をせずにテストしてしまうから……」とか「品質管理のためには……」とか言われるとなぁ TDD はあくまで"開発"手法であって、テスト手法では無いんだよね。もう、TDDで品質があがるって啓蒙するの止めちゃえば、いっそ変な誤解が広がらないんじゃないかなぁ。 2010-02-15 00:47:13

    深夜のテストTL
  • TDDはテスト手法か否か

    なんもわからん @babie TDDは論理実証主義的な面が強調されすぎたために、BDDなどという言い換えが行われた。反証主義的に、エラーを積極的に起こそうとするテストを書くべき。 2010-02-21 13:45:09

    TDDはテスト手法か否か
  • Smart UI が優れている? | システム設計日記

    Domain-Driven Design (DDD) で、アンチパターンとして取り上げられている Smart UI 。 ある文脈( context ) では、Smart UI はとても優れている。(と、エバンスも書いている) 実際、私たちが、取り組んだ5年前の開発プロジェクトでは、徹底して、Smart UI でがんばった。 プロジェクトの背景 ・短期間に既存のアプリを作り変えたかった ・中核メンバーは、寄せ集め。( 設計や実装について、経験や考え方が見事にばらばら ) ・多数の作業者は、一年目のジュニアたち ・既存システムのソースコードは、ない。 Visual Studio で、画面量産 既存システムがあるわけだから、とりあえず、 ・画面の一覧、すべての画面のHTML ・テーブル一覧、テーブル設計と実データ は、そろっている。 400画面くらいをメンバー10人に割り振って、ひとりあたり、4

    tmtms
    tmtms 2010/01/17
  • さらに分かっておきたいトランジスタの種類 − @IT MONOist

    組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム

    tmtms
    tmtms 2009/11/30
  • SI業界を目指す君達へ贈る「何故システム開発はテンパるのか」 - novtan別館

    先日学生に聞かれたんですよ。 「下流工程は大変って聞きますが、上流は楽なんですよね?」 よろしい、君はよく勉強している。でも根的に間違っている。下流工程が辛いのは、上流工程でちゃんと仕事ができなかったからだ*1。 というわけで、主に学生向きに話を単純化して語ってみます。これが普通だとか、一般的だとか言うつもりはなく、違う視点もあるかと思いますが、一つの考え方として。 SIでのシステム開発は、建設業にたとえられます。が。 顧客の希望を聞き、設計し、施工し、引き渡す。こういった工程を踏む仕事ということで、システム開発はよく建設業にたとえられます。実際に工程管理の手法なども似通っています。ところが、大抵の場合、耐震偽造をした建築物よりもシステムのほうが脆弱に仕上がります。何故でしょうか。 一つには、建物の図面を引くには建築士の資格が必要ですが、システムの設計に資格は必要ありません。 もう一つ、

    SI業界を目指す君達へ贈る「何故システム開発はテンパるのか」 - novtan別館
    tmtms
    tmtms 2009/11/05
  • 何故日本企業のソフトウエア・オフショアは失敗するのか - for under-ground 4:Blind sight - - 嫦娥来襲:楽天ブログ

    2009年10月19日 何故日企業のソフトウエア・オフショアは失敗するのか - for under-ground 4:Blind sight - カテゴリ:何故日のオフショアは失敗するのか 要件を"まとめ"、"break-down"するのは、あくまでも受注側のengineerでなければならない。 色々な視点で客先要件や、社内の現状、移行を事前に調査し、 検討違いの主観を入れない為に、結果を要件実装のための基礎資料としてそのまま投下する、 これができることが社内SEの能力で、発注側のSE能力だと思うが、違うか? だが、日人は発注側の主観で要件をまとめてしまう。 最悪なのは、要件を"日語"の数語にまとめ、 そのまとめた語を英語に直訳して、悦にいっている勘違い野郎が多い。 おいらがleaderやっていたら、漏れなく昼間っから マ○かくなら、自宅でやんな!ボケ と罵られるpatternだが

    何故日本企業のソフトウエア・オフショアは失敗するのか - for under-ground 4:Blind sight - - 嫦娥来襲:楽天ブログ
    tmtms
    tmtms 2009/10/22
    オフショアに限らない。国内の外注使うときだって同じことが言える
  • alternative dvamp project  流動性起因の問題

    結構前に、余ったCOBOLエンジニアがたくさんいるから COBOL仕事を創出するんだ、みたいな記事を読んで、「バッカじゃないかしら」と思ったのだけれども、図らずも不景気で わたしの周辺の環境もそうなってきました。 なるほど、仕事はないけれど社員はクビに出来ないってなると、不景気は品質による淘汰ではなくって、品質悪化を加速するのね...orz などと、グチグチ言ってみるも、現実はどうにも変わらない。 「その人を追加されるとチーム全体のパフォーマンスが落ちる」という人をどんどんチームに叩き込まれて、人が増えたのだから稼ぎも上げろということを言われます。ムチャを現場に押しつけて・・・とは思いますが、出来ない人を社内失業させない、という要件からすれば、出来ない人のための仕事を用意できないようなウチのチームの作り方は、背任と言っても良いのかも、と少々反省しています。 とりあえず、C++ を使って

    tmtms
    tmtms 2009/08/31
    "プログラミング出来ないし、コードレビューも出来ないといったレベル。しょうがないので、上流工程(笑)を担当させる様にプロジェクト管理者は判断して投入。" 終わってる…
  • エンジニアがミーティングを嫌う理由 – バイリンガルの独り言

    エンジニアがミーティングを入れられる事を好まない事や、不機嫌になる事は英語圏や日を問わず知られているかと思います。実質、私の周りにもこういった傾向がありますし、職人的に秀でてる方ほどこの傾向が強いと感じています。さて、これはなぜでしょうか? 友人のtweetにPaul Grahamというプログラマ兼ベンチャーキャピタリスが書いた、Maker’s Schedule, Manager’s Scheduleという面白い記事へのリンクが貼られていたので、私なりに要約して紹介します。 二種類のスケジュール プログラマやライターがミーティングを嫌う理由は彼らが他の人間とは違う種類のスケジュールで働いているからであるとGraham氏は語っています。氏いわく、スケジュールには二種類あります。 Maker’s Schedule(物を作る者のスケジュール) Manager’s Schedule(管理する者の

    tmtms
    tmtms 2009/07/28
  • SIerの解体と再生 - ひがやすを技術ブログ

    ござ先輩のところで、SIer涙目な状態が解説されてますね。 最近SIerがだいぶヤバくなっている件 - GoTheDistance 書いていることはだいたいあっているんじゃないかと思います。 じゃ、SIerは、どうやれば生き残ることができるのか。 「今の体制のまま生き残る必要はないんじゃないの」というのが私の考えです。多重下請け構造こそ、SI業界の最大の問題点なわけだから、「ゼネコン型SIビジネスが崩壊する」のは、悪い話じゃない。 もちろん、会社がなくなったりすると職がなくなり困る人も出てくるわけですが、問題のある業界を残しておくより、一度解体し、新たにやり直したほうがいいと思います。 だって、実際に物を作れないような人たちが設計するなんて、おかしいし、効率悪いもの。 効率の悪いことをしている人が淘汰されるのは当然の話です。 だったら、なぜこれまでゼネコン型SIビジネスが生き延びてこれたの

    SIerの解体と再生 - ひがやすを技術ブログ
    tmtms
    tmtms 2009/07/25
    "「メーカー系でSIもやってます」って会社とは仕事したくないです。"
  • Developer's Perspective―海外エンジニア/ブロガー 直撃インタビュー+翻訳エッセイ 記事一覧 | gihyo.jp

    第3回「The Secrets of Consulting」Gerald M. Weinberg:翻訳エッセイ編(3)―お金についての質問 Gerald M. Weinberg(ジェラルド・M・ワインバーグ) [著],青木靖[訳] 2009-10-27 第3回「The Secrets of Consulting」Gerald M. Weinberg:翻訳エッセイ編(2)―なぜ我々は会議を愛する/嫌うのか Gerald M. Weinberg(ジェラルド・M・ワインバーグ) [著],青木靖[訳] 2009-10-26 第3回「The Secrets of Consulting」Gerald M. Weinberg:翻訳エッセイ編(1)―コンサルティングを悲惨なものにしないための仕事条件 Gerald M. Weinberg(ジェラルド・M・ワインバーグ) [著],青木靖[訳] 2009-10

    Developer's Perspective―海外エンジニア/ブロガー 直撃インタビュー+翻訳エッセイ 記事一覧 | gihyo.jp
    tmtms
    tmtms 2009/07/20
  • 「レガシーコード改善ガイド」のススメ 第1回:レガシーコードの定義、テストの重要性とは

    「レガシーコード」とは何か 最初に1つ質問です。皆さんは、「レガシーコード」と聞いて何を想像するでしょうか? 多くの方はCOBOLなどで書かれたメインフレームで動くコードを真っ先に思い浮かべるのではないかと思います。しかし、当にそれだけでしょうか? ここでは「レガシーコード」という言葉を『何年も前に誰かが作り、内容が複雑で何をしているのかよく分からず、まともな仕様書もない』というコードを指すものとします。そう考えると、必ずしもメインフレームだけの話ではなくなります。この記事を読んでいる皆さんなら、そのようなコードを少なからず目にしていることでしょう。 現在の業務システムは、Java EEや.NETなどの基盤上に構築される、いわゆるオープンシステムが主流になっています。このようなオープンシステムであっても、構築されてから既に5年以上経過していることが珍しくなく、何度も手が加えられたコードは

    「レガシーコード改善ガイド」のススメ 第1回:レガシーコードの定義、テストの重要性とは
    tmtms
    tmtms 2009/07/04
  • なぜTDDとペアプログラミングで生産量が増えるのか

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    なぜTDDとペアプログラミングで生産量が増えるのか
  • ゴミが積もっていく過程 - ( ・ω・)ノ<しすてむ開発。

    いざプログラムを作ろうというときに。 ・データの流れがおかしい。 ・データの扱い方がおかしい。 こんなことに直面する。 調べてみると、データベースの構造がおかしい。 なぜか。 ・前任者の遺物を有効活用した。 ・画面からマスタテーブルを作成した。 ・あの場合も、この場合もとデータをうまいこと使いまわすことを思いついてしまった。 どれか一つは当てはまるような気もする。 さて直そうという気持ちが芽生えたときに障害になるもの。 ・ドキュメントの影響範囲調査 ・ドキュメントの修正 ・ドキュメントの整合性チェック 同時に対比材料に上るもの ・あるべき姿に修正した後の修正時間の気楽さ ・現在のままで作り上げた場合の修正時間の気重さ や ・あるべき姿に修正した後の推進力 ・ドキュメントの修正時間 ってなこと。 今回は、こうなった 「ここだけデータのカタチが綺麗になっても全体がひどい。だから目を瞑るか」 ゴ

    ゴミが積もっていく過程 - ( ・ω・)ノ<しすてむ開発。
    tmtms
    tmtms 2009/05/19
  • 「なぜ日本のIT企業は雑魚なのか」 - カレーなる辛口Javaな加齢日記

    http://alfalfa.livedoor.biz/archives/51466352.html だいたい出尽くしてるかな. なんでプログラミングやった事の無いやつがSEなれるんだろうな。不思議。 パッケージの購入とかになるとこれでもかと買い叩きまくるのに、自分たちのために一から作ったソフトウェアということになると、くだらない機能のバグだらけのソフトでもバンバン大金を払う。 ベンダー側の立場から見てどっちが儲かるかは一目瞭然なので、普通のパッケージソフトはどこも作りたがらない 労働条件が酷いから優秀な人材がビックリするほど集まらない。 日IT企業は雑用をやってるだけの感じ。プロフェッショナルな企業が少ない。もっとグローバル戦略持たないと、web屋も日での受注ぐらいしかしないだろ 回すものが「物体」ならいいが「人間」を売買して、「弊社はシステム開発業です」とかいうのは酷いと思うんだ

    「なぜ日本のIT企業は雑魚なのか」 - カレーなる辛口Javaな加齢日記
  • きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません

    「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。 http://blog.shibu.jp/article/28983162.html 自分なりにもっと凝縮版を。渋川さんが言っている事全体もその通りとは思うけど*1、もっと簡単で、しかも射程が広い、と自分が思っている事。 渋川さんはちょろっと触れてるだけだけど、自分はこれが最も基的で汎用的、かつ、ソースをきれいにする原動力となる上にバグをも減らしてコードの汎用性まであげる、コーディングのエンジンみたいなものと思ってる。それは、 「すべてに正しい名前を付けて、そして、正しい名前であることを維持する」という鉄の意志 クラス

    きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません
    tmtms
    tmtms 2009/05/14
  • Shibu's Diary: きれいなソースコードを書けるようになるためには

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 by chazmatazz 「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。あ、Pythonに限定してますが、他の言語でも似たようなものはあると思いますので、脳内変換をお願いします。 事前の設計はしません 「こういう処理が必要」「こういう計算しなきゃね」みたいなロジックや「要件はこうかな?」ということは事前に考えたりするけど、クラス構造とかは基的に考えないで手をつけます。そして、ある程度規模が大きくなって「あ、ちょっとこの関数大きすぎて理解しにくいなぁ」と

    tmtms
    tmtms 2009/05/14
    設計を徐々にしていくというのに否定的で事前にがんばろうとしちゃう人/途中でクラス構造などを変更しない人は、「実装中の学び」をゴミ箱に捨てているのと同じ
  • 【翻訳】How to be a program manager - Joel on Software - GoTheDistance

    たまたま見かけたのですが、とても示唆に富む記事だったので頑張って和訳してみました。延べ2週間近くかかった・・・。 ITを武器にする企業は、ベンダーやユーザーに関わらず「program manager」と呼べる人たちが必要だと思っています。37Signalsの「Getting Real」に近しいことをJoel自身も語ってくれていますし、今後僕らがどのようなキャリアを積んでいけばいいのか、技術力を梃子にしていく組織を作るのにはどうしたらいいのか、そういうヒントが込められています。 Joelの英語は、同じような意味の言葉を複数の言葉を使い分けて言っていたり、ぐるっと回り込んでから要点を記述することが多いので、正確な意味を伝え切れていないかもしれませんが、大きく意味が外れないように留意したつもりです。 原文はHow to be a program manager - Joel on Softwar

    【翻訳】How to be a program manager - Joel on Software - GoTheDistance
    tmtms
    tmtms 2009/05/14
  • 脱Excel! Redmineでアジャイル開発を楽々管理

    ソフトウェア開発のタスクをチケットに登録すると、作業を始めるチケット管理をメインに、進ちょく管理、問題管理などができる。 バグ管理システムだけでなく課題管理システム(ITS:Issue Tracking System)で運用する開発プロセスは、チケット駆動開発(TiDD:Ticket Driven Development)と呼ばれ、最近注目されている。 Ruby1.9の開発はRedmineで管理されているように、近ごろは事例も増えている。 Redmine運用前の問題点 筆者がRedmine運用前に持っていたプロジェクト管理の問題点は下記2点だった。 1.Excelでのタスク管理の限界 従来からプロジェクトマネージャやプロジェクトリーダーの多くは、進ちょく管理やタスク管理Excelで行ってきた。 プロジェクト管理では顧客へ進ちょく報告するために、残工数と残タスク数を計算する必要がある。だが

    脱Excel! Redmineでアジャイル開発を楽々管理
  • なぜシリコンバレーのエンジニアは仕事しやすい? – シリコンバレー・カンファレンス2009 を終えて - アメリカでがんばりましょう

    先日告知したように、シリコンバレー・カンファレンス 2009 に行ってパネリストの1人として話してきた。(関係者の方々お疲れさまでした。) パネルセッションでは「渡米を決意した理由」として、日の電機メーカーでの気合や精神論で何とかしようとし、残業につぐ残業を強いる生活に疑問を持ったということを挙げ、現在のアメリカでの生活との違いを紹介した。 参加者の中にはメーカーで働いていて同じような疑問を持っていた人も多かったようで、うれしいことにパネルセッションの後や懇親会で「何でアメリカはそれでうまくいくのか?」、「どうして日メーカーはこうなんだろうか?」といった質問をたくさん受けた。 何らかの答を返していくうちに、シリコンバレーがどうしてソフトウェアエンジニアに働きやすい環境になったのか、自分の中でもそれまでぼんやりと思っていたことがまとめられた気がする。少し長くなるけど、セッションの補足とし

    tmtms
    tmtms 2009/03/27
    マネージメントは外注を使って人月をコントロールすれば何とかなると思っている / できる人には次から次へと仕事が振られたり、自分の仕事が終わってもズルズルと残業してしまう