« ソフトウェア開発はオーバーヘッドが大きい | トップページ | アジャイル開発はツールに依存している~SW構成管理を再考しよう »

2009/08/15

システム開発に必要な役割

プログラマやテスターの能力に関して考えたことをメモ。

【元ネタ】
小野和俊のブログ:1・10・100、それぞれの力

小野和俊のブログ:プログラマー風林火山


プログラマと呼ぶ時、すぐにイメージするのはGoogleのように独創的なプログラムを書く人をイメージする。
しかし、実際の現場では、色んな役割の人達が必要になってくる。

新規顧客の新規開発の場合、初めてのフレームワークを元に、スクラッチで作っていく。
最初に必要な人は、何も無い所から動くものをまず作る役割。
このタイプは、新しい技術の飲み込みが早く、試行錯誤するのが好き。

新しいフレームワーク、新しい言語を使う場合、独特のプログラミングの書き方がある。
その作法に慣れるまでに、普通の開発者は時間がかかる。
だから、最初は、新物好きの技術者にプロトタイプを作ってもらい、そのサンプルを真似ながら、普通の開発者は作っていく。

そして、システムにどんどん機能追加されて、一つのシステムとして稼動するようになった時に必要にされる人は、テスターの役割。
バグを発見し、バグを検証し、一つずつ積み重ねながら、品質を上げていく。
このタイプは、設計書をこまなく読んで理解でき、丁寧に、地道な作業ができる人。

実際の開発では、結合テストやシステムテストでこの役割の人が重要になってくる。
この工程で初めて、開発者も自分たちのソースが動く所を見れるから、初めて実装のミスマッチに気付く。
テスターは、プログラマが何もない所で切り開いた道をなだらかにする。

RedmineやTestLinkを運用していると、プログラマとテスター、設計者の連携作業が実はボトルネックだったという事実によく気付く。

例えば、仕様変更があったとしても、アサインしたタスクに漏れがあったりする。
あるいは、せっかくバグ修正したとしても、たくさんのバグを発見しすぎて、バグ検証が遅れたりする。
又は、一つのバグを見つけたら、それに関連する機能や要件はテスト不要なのに、無駄にテストしてしまう。

チケット駆動開発やテスト管理のツールは、この連携作業をサポートするのが一番の目的だ。

そして、アジャイル開発は、システムを小刻みにVerUpさせる戦略を意図的に採用することで、品質維持と機能拡張という矛盾する目的を実現しようとする。
このアジャイル開発のタスク管理やテスト管理をサポートするツールが、Redmineであり、TestLinkであったりする。

色んな役割の人達が集まったチームに対し、開発インフラを提供し、そのコミュニケーションを支援するのが、チケット駆動開発であり、プロジェクトファシリテーションだったりする。

色々試してみたい。

|

« ソフトウェア開発はオーバーヘッドが大きい | トップページ | アジャイル開発はツールに依存している~SW構成管理を再考しよう »

プロジェクトマネジメント」カテゴリの記事

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

TestLink」カテゴリの記事

プロジェクトファシリテーション」カテゴリの記事

チケット駆動開発」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: システム開発に必要な役割:

« ソフトウェア開発はオーバーヘッドが大きい | トップページ | アジャイル開発はツールに依存している~SW構成管理を再考しよう »