今日のソフトウェアコミュニティにおける努力の多くは、ソフトウェア開発のプロとビジネスピープルとの間のギャップを解消するための橋渡しを目標としているが、一部のブロガーは問題をすこし異なった視点から見ており、開発者と彼らが作るソフトウェアとの間のギャップを強調している。
Jeff Attwood 氏によると、開発者が定期的にカスタマサービスで仕事をするという Amazon の経験は、ソフトウェアの品質とユーザビリティを向上させるための有益な手段である。彼は実際、「ソフトウェア開発者が単に自分たちの書いたコードを見てまわるだけの旅行者であるケースが多すぎる」と考えている。なぜならソフトウェア開発者たちには、ユーザおよびユーザが抱える問題や関心事についての基本的な理解が欠けているからだ。このことについて、彼は「象牙の塔のソフトウェア開発」というタイトルで早くから言及している。
他の無視することのできない証拠がなければ、開発者は他人がみんな開発者であると勝手に想定する。 [...] 開発者がまわりから浮いた存在になればなるほど、結果として生まれる成果物はひどいものになる。ほとんどのチームにはビジネスアナリストがいるが、彼らは開発者をユーザから守ることが自分たちの仕事だと感じているので助けにはならない。 [...] ユーザが誰なのかを開発者が知ることのできない環境を作るのは危険である。
しかし Abhijit Nadgouda 氏によれば、今日の業界は、階層構造と複数のレイヤの存在、そしてそれらのレイヤ間を遮断している情報によって特徴づけられる。これは管理を簡素化しビジネスをより安全にするが、ソフトウェアの品質面においてかなりのマイナス要素をもっている。
私たちは自分のプロジェクトに階層構造を作成し、すべてのレイヤはその下位レイヤを何らかの情報から隠蔽するようにしている。ソフトウェア開発チームにいるメンバーのうち何人が自分たちの取り組んでいるソフトウェアの価値を知っているだろうか? クライアントのビジネスの重要さを知っているだろうか? 彼らうち一体何人が、自分たちの取り組んでいるのとは別の部分について知っているだろうか?
[...]
よりよいビジネスとよりよいソフトウェア開発の間に断絶があるように思える。これが、私たちのほとんどはよいビジネスをするがソフトウェア開発では相変わらずお粗末である理由であると、私は考えている。
ソフトウェア開発が相変わらずお粗末である理由を特定する彼の試みでは、Reg Braithwaite 氏もまた問題を提起し、経験の浅い人たちがコードを破損することを防ぐためにプロジェクトの作業を分割するのは誤りかもしれない、と主張している。
このようなアプローチに基づくアーキテクチャは開発者が抽象化を行うのを容易にしてくれることが多いが、これが行き過ぎると、開発者のタスクは機能という文脈からはずれて純粋に技術的なものと化す。これは潜在的に開発者と彼らの取り組んでいるソフトウェアとの間にギャップを生み出す可能性がある。
あなたの意見はどうだろう?このような保護主義的なアーキテクチャはソフトウェアのユーザビリティ確保の妨げになると考えるだろうか?それとも、全体像に無知な開発者が存在するアーキテクチャが効果的である場合があるだろうか?そういうアーキテクチャはソフトウェアと価値を提供できるだろうか?
原文はこちらです: http://www.infoq.com/news/2007/12/gap-between-devs-and-software