Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

顧客はコード品質を要求しているか

前回のエントリでは、あちこちに波紋が広がってしまいました....www。
 参考になるコメントを頂いてありがとうございます。(各Blog伴に)
「誰が何を要求しているのか」と「各行程の作業実務者の品質意識」と「行程管理者の管理意思」と「各担当の利益」を同一の土俵にするのは不可能に近いでしょう。どこかで妥協しなければなりません。その妥協点が合意出来れば最良なのでしょうが、不満総量が最小になる箇所で自然に落ち着く気がします。大同小異で各行程の人が同じ位の不満を持つ状態が、実務の姿かなぁ。  と斜に構えて、発言してますが、開発者としては寂しいです。
テーマが大きくて、全体的には考えが纏まらないので、「顧客はコード品質を要求しているか」の点で考えて見ました。
一般的な業務アプリは、集計作業の固まりとみて良い思います。(統計分析・予測含む)
機能は、データの入力と抽出と加工と出力 です。(単純化するため制御系や言語系やゲーム系は省きます。)
入力要件と出力要件と応答性が満たされれば、業務システムは合格点と見なされます。製品の品質は不問です。
品質云々は開発者の意識度と、納品監督部署がソースの品質を考慮するかしないかの人間性に依存します。
品質を定量的に測定するツールはないです。テストツールはテストパターンの自動化は厳しいので定量性とは言えないでしょう。
 問題を複雑にしているのは、汚いソースでも綺麗なソースでもエレガントなソースでも、要求通り動いてしまうことです。汚いソースでも、正常系処理では落ちない程度の品質は保っているでしょう。(楽観的期待ですが)
異常系操作で落ちても、「想定外のデータを入力した操作員が悪い」という言い分がまかり通る「未熟な実体」も時々目にします。
 ラジオやテレビが単純なIC構成であった時代は、回路を平面エッチングで結線していました。エッチングパターンも明らかに下手な配線というのもあって、ノイズの元になったりします。回避策として、回路切断して、ジャンパ配線で取り繕うこともあったようです。つまり、汚いソースのまま納品するのと同じです。でも、顧客は、テレビを見ることは可能なので、回路品質は不問です。

 あちこちで書かれているように、ハードに進歩が非効率なソースの冗長性を隠してしまうのが現実です。
5倍遅いソースでも10倍はやいCPUなら結果として早くなるので、困ったものです。

ソースが読める顧客は、要求する品質が可能な開発者に発注するので、この手の問題は起こり難いでしょう。
納品後の改変や仕様変更に対応すること踏まえて、変更の容易さはソース品質に比例します。
変更作業者にとって読みやすいソースが望ましいと考えています。
只、問題があり、新人や知識の少ない変更作業者が保守する会社があることです。その人たちに品質を合わせると、議論が振り出しに戻ってしまいます。
 私は「IT業界はまだまだ成長期で、あるべき姿になっていない。」と感じます。

投稿日時 : 2008年11月23日 0:57

Feedback

# re: 顧客はコード品質を要求しているか 2008/11/23 12:37 ネタ好き未記入

品質を要求していると思います。
ただし、お客様の品質と我々の品質は違うと思います。
昨今は、「お客様の品質」も「開発者の品質」も全てが駄目だと思います。

# re: 顧客はコード品質を要求しているか 2008/11/23 12:41 ネタ好き未記入

ちなみにお客様の品質とは「細部まで言わずともちゃんと動く」だと思います。
建築を依頼した際に、柱の数を注文していないからといって削除されるのは理不尽です。

# re: 顧客はコード品質を要求しているか 2008/11/23 13:51 Ognac

>建築を依頼した際に、柱の数を注文していないからといって削除されるのは理不尽です
顧客要望の定義如何だと思うのです。
柱の本数や太さなどは設計図の問題です。要求設計に相当します。
施工は大工の範疇です。施工技術は職人の品質に依存されます。
いくら、設計にコストをかけても、施工技術しだいで、仕上がり具合は左右されます。
住居ならば、施工技術の下手さは表に見えるので、文句が言えますが、プログラムソースが汚くても、表に見えないので、
発注主は気づく術がないと思うのです。
柱の削除が低品質ではなく、見えない処を手抜きしても、要求品質悪化にはなりにくい点で問題だと考えるのですが。

# re: 顧客はコード品質を要求しているか 2008/11/23 17:51 ネタ好き未記入

私が思うに「手抜き」と「出来ない子に合わす」のでは違うと思うのです。
出来ない子は素人同然であり、その素人に合わすのは、プロが顧客に調整するようないい意味での手抜きとは違います。
よい意味での手抜きとは、お客の予算内で材料(コードやハード)を調達する行為ではないでしょうか?
私がシステム構築屋としてよく思うのですが、手抜きにも技術力は必要とされますし、そういった意味での手抜きが出来ない人はアマチュアであり、プロとは呼べないと思います。
しかし、出来ない子に合わすのは、最初から手抜きも作ることも放棄しているとしか思えません。

# re: 顧客はコード品質を要求しているか 2008/11/24 0:23 Ognac

>出来ない子に合わすのは、最初から手抜きも作ることも放棄しているとしか思えません。
少しずれているような気がします。「出来ない子」の定義は、主観が大きいので、一致しないのは仕方がないのですが、
「出来ない子」=「素人」とし、彼らに開発を依頼することは、顧客背任とも見られますので、ネタ好き未記入 さんの主張も納得できます。しかし。
製品性能の評価が「要求仕様を満たすこと」とするなら、顧客からはプロの仕事(出来る子)と見えると思うのです。
平たく言えば、「出来ない子」と評価できるのは、綺麗なコードが書ける人です。しかし、開発現場の局所的範囲内の評価です。顧客視点では「出来る子・出来ない子」の区別をする術がないと思うのです。
要求仕様通り書けるけれども、センスの無い人(だらだら書きでべた書きするような)はいます。
その人を「出来ない子」と評価する基準も仕組みもありません。定量的に評価できないだけに根が深いと表現しました。
出来ない私がいうことですがら、当たらずとも遠からずだと思います。

# re: 顧客はコード品質を要求しているか 2008/11/24 1:47 Pasie.

 どのような契約かに寄りますが、動けばよろしいんじゃないかと。コードの品質なんてどうだっていいと思いますが。

# re: 顧客はコード品質を要求しているか 2008/11/24 7:05 ネタ好き未記入

成るほど。確かに定量的に評価できないと思います。
ただ、そんなセンスのない人をそのまま放置していいのでしょうか?
Ognacさんがしていることではないので、これは業界の風潮へ対する私の意見なんですが、センスのない人に合わすのでは「商売人として間違っている」と思います。
お客様の為に最善を尽くすのがプロであり、自分たちの都合をお客様に押し付けるのは如何なものでしょうか・・・
センスの無い人をある人に合わすべきだと思います。
コードレビューとかもっとするべきです。
そうしないと、出来る人は出来ない方が経済効率が良くなりますので、どんどん業界全体が低レベルへなっていくだけだと思えてなりません。
言うなれば、お客様のための手抜きと自分のための手抜きの違いかな?

# re: 顧客はコード品質を要求しているか 2008/11/24 7:09 ネタ好き未記入

>顧客視点では「出来る子・出来ない子」の区別をする術がないと思うのです。

鋭い指摘です。
これを読んで思ったのですが、もっと技術者が顧客サイドに行くべきですね。
そうしなと、最終的には「業界不振」へとつながり、産業全体が落ち込むと思います。

追伸
Ognacさんの問題提起、非常によかったのです。
続編もしくは違う切り口からの記事を待っています。

# re: 顧客はコード品質を要求しているか 2008/11/24 10:00 Jitta

「コードの品質を要求するか」という問いには No。しかし、お客様の要望を満足させるためには、コードの品質を追求しなければならないと思います。
お客様の要望は、「止まらないシステム」です。しかし、実際にはバグなどで止まってしまいます。止まったときに要求されることは、少しでも早い復旧です。そのよう強雨を満足するために、コードの品質を上げておかなければならないと思います。

# re: 顧客はコード品質を要求しているか 2008/11/24 10:01 Jitta

typo

:s/そのよう強雨を/その要求を

# re: 顧客はコード品質を要求しているか 2008/11/24 10:56 choir

>技術者が顧客サイドに行くべき
これ、専ら自社側から妨害受けるんですよね。困ったことに。
営業とかマネージャーとかそのへんから。

目の届かないとこで仕様変更受けるな…ってのはわからなくもないけれど、
こっちに降りてくるまでやたら時間かかったり、降りてきた情報が歪んでたり。
(もちろん逆方向に話が流れるのも同じ)
そんなのが多いと疲れます。

どうにかしなきゃとは思うのですが、猛反発くらうの目に見えてるしなぁ。と。

# re: 顧客はコード品質を要求しているか 2008/11/24 11:34 ネタ好き未記入

choirさん、実はそうなんです。
私も直接エンドユーザーにシステム売ろうとしたら妨害された事がありますw
従って、犯罪天国日本だからどうしようも無い部分もあります。
おまけにお客様は看板しかみない傾向があって、何十倍払ってでも私のシステムを看板つきでしか購入しようとしませんorz
厳しいのは実感しています。
でも、開発者が奴隷になってもいけません。

# re: 顧客はコード品質を要求しているか 2008/11/24 11:42 Pasie.

>お客様の要望は、「止まらないシステム」
 「業務の要求を満たし、止まらないシステム」ですね。同感です。

>専ら自社側から妨害受けるんですよね
 これは経緯を知らない技術者が、いままで営業が積み上げてきた物を無視して、できません、とか言うからではなかろうかと。これはSEが製造のレベルが低いとわめいている状況や、テスト終盤で基本機能の仕様変更が入って憤ることとあまり変わらない気がします。

 ところで、この議論はいろんな視点がごちゃ混ぜになっているから、拡散こそすれ収束はしないと思います。

# re: 顧客はコード品質を要求しているか 2008/11/24 22:30 Ognac

>拡散こそすれ収束はしないと思います
ですね。拡散しましたが、有意義だったと思います。
私的には、何度も書いてますが、品質維持は縁の下の部分なので、表に出す必要はないと考えてます。
拡張時や改変の効率化を含めた品質維持は、一人の開発者の問題でなく、プロジェクトの在り方と思想の問題と考えてます
。収益性と経営意思決定の結果として、ソース品質軽視の現場が目に付く....という話だと思います。
儲かれば品質は軽視するのか....と突っ込まれると振り出しに戻るので、そうは思いません。軽視しても、商売が成り立つと意思決定した結果が今の姿だと思うのです。善し悪しで言えば、善くないとは思いますが、不幸に人の総不幸度は少ない妥協点なのかも知れません。
#Ognac個人は、悲しいですが....orz;

# re: 顧客はコード品質を要求しているか 2008/11/25 12:33 ちゅき

>私は「IT業界はまだまだ成長期で、あるべき姿になっていない。」と感じます。

大先輩のあるべき姿象がどんな感じなのかwktkでいつもognacさんの同様エントリを楽しみにしています^^
#どうも現在のソフトウェア工学が従事者の楽しみとは違う方向に進んでるのよねぇ、なんて思う今日この頃

アーキテクトなどの基盤やフレームワークづくりを担当する開発者には面白い流れかもしれない^^;

# re: 顧客はコード品質を要求しているか 2008/11/25 21:26 biac

出遅れた~ f(^^;

> 品質を定量的に測定するツールはないです。

「プログラマの誰もが納得できる測定ツール」 という意味なら、 たしかに無いでしょう。

url を、 とりあえず目についたものをひとつずつだけ挙げておきます。 ちぃと手繰ってみてください。

・コードメトリックス
ttp://www.infoq.com/jp/news/2008/07/ndepend-tutorial

・ソースコード品質診断サービス
ttps://www.ogis-ri.co.jp/solution/a-04-02.html

・ソフトウェアの評価技術の標準化に関する調査研究委員会 2007年度報告
( ソフトウェア製品の品質(SPE)委員会 のところ )
ttp://www.jsa.or.jp/stdz/instac/syoukai/H19_houkoku/h19kobetu/A-02_sofutohyouka.pdf

まとめると。
コード品質を定量的に計測するツールは、 すでにたくさんあって、 計測を商売にしているところさえあり、 国際規格として標準的な方法を決めようとしているところ ← いまココ

# re: 顧客はコード品質を要求しているか 2008/11/26 1:07 Ognac

参考資料ありがとうございます。
ソースを読み込んで、字面で解析するツールと認識しましたが、よろしいでしょうか?
仰るように、「誰もが納得できる」判定には難しいかな(?)

メソッド名などの名称や式が変わっていても、車輪の再発明を検知できるツールであれば良いのでしょうが....難しい感じですね。

# re: 顧客はコード品質を要求しているか 2008/11/26 8:56 biac

> ソースを読み込んで、字面で解析するツール

おおむね、 そんな感じです。

ただし、 Visual Studio 2008 Team System は MSIL (バイナリ) も解析します。 ほかにも、 バイナリを見るツールはあると思います。
ttp://msdn.microsoft.com/ja-jp/library/bb385914.aspx

> 車輪の再発明を検知できるツール

それは… 現在ではまだムリでしょうねぇ。 f(^^;
「車輪」 を認識するパターンマッチングの技術と、 多くの 「車輪」 を網羅するデータベースが必要になりそう。

#  ???????????? | ?????????????????? 2012/10/22 23:09 Pingback/TrackBack

???????????? | ??????????????????

タイトル
名前
Url
コメント