2011年6月27日月曜日

人に上下なし。工程にも上下なし。

「超上流」という言葉が一昔前流行していた。多分データさんが普及させている考えだと思われる。設計作業等を「上流」と呼ぶ傾向があり、さも「製造工程」(プログラミング)が「下流」であるかのような言い方である。この「上流」、「下流」の言い回しが日本のソフトウェア業界をダメにしている。

ある社内会議に参加していた時に、開発品質について議論となった。その社内会議では、様々な製品を担当するプロジェクトリーダー級の担当者が品質状況を報告し、重要な情報はその場で横展開するという場となっている。
最近は上級幹部も参加しており、あたかも、公開処刑の場のように幹部は担当者に指摘を浴びせる。公開処刑のやり方変わってきて、最近の主流はトヨタ流のなぜなぜ分析だ。「コーディング誤り」、「設計考慮漏れ」等に障害を分類し、どの「工程」で失敗かを議論するやり方。

ただ、この分析であまりにも「ソースコード」が見えてこない。プロセス改善はいいことだが、本当に本質的な改善なのか疑問に感じる。コードが一度も資料として出てこないのに、設計書の書き方や、レビューチェックシートを追加するとか、訳の分からない議論をして満足している。調理をあまりしないコック長が、食材そっちのけで、レシピの書き方を改善してても、そんなレストランにお客さんを来ないと思うのだが。

これはまさに「上流」であるプロジェクトリーダが「下流」のソースコードを理解できないまま、プロジェクトが運営されていることの象徴であると考えるわけで。日本のソフトウェアがダメになっているのはまさにこういう文化だと思う。つーか「上流」、「下流」っていう、この言葉自体をなくさないといけない。




2011年6月1日水曜日

誰がコーディングに工程を持ち込んだ?

 本当に使い勝手の良い製品には、説明はいらないはずである。つまり、マニュアルなんて必要なく使えるものがユーザビリティが高い製品と言える。カタログも必要ない。使って見れば勝手に流行る。それは、とても魅力のある製品であり、そこに説明が必要ないから。
 本当に作りやすい構造には、設計書なぞいらない。それ自体の構造が最適化されているため、改修もしやすく、構造自体が作り手にさらなる創造を与えるから。
 本当に美しいコードには、他に何も必要としない。それ自体が全てを語る。

 コードを書くとは、知性、感性、創造の活動と考える。本当のプログラマーのコーディングとは、設計、製造、テストという工程というものは存在しない。ただ感じ、考え、書いて、確かめるという、単純な創作活動だ。誰がコーディングに工程を持ち込んだ?

 ソフトウェア開発において品質専門組織というのが存在する会社があると思うが、そんな組織になんの価値がある?本当にお客さんに評判の料理を出すレストランでは、多分レシピの書き方にこだわっているレストランがあるとは思えない。素材、技術、調理法に重点をおいて、調理人が切磋琢磨しているはずで、マネージング力だけでおいしい料理が出来上がるとは思えない。日々の調理技術を磨き、湧きたつアイディアを何度も試作し、試行錯誤した結果、本当においしい料理ができあがるはずだ。そして本当の有能なマネージャはそうした思考試作を数多く経験した人間ではないか?