最近、私の友人がベンダーから在庫アプリケーションを購入し、「10000行のコードに基づいて作成」のようなステートメントをマーケティングスローガンとして市場シェアを拡大しました。他のソフトウェアが、特別な言語(C#、PHP、Javaなど)で構築されている、または特別なテクノロジーに基づいていると主張しているのを見たことがあります。
私の質問は次のとおりですこれらの要因に基づいてソフトウェアを道徳的かつ論理的に価格設定できますか?つまり、エンドユーザーには何行のコードを記述したかが重要ですか?または、どのプログラミング言語を使用しましたか?
この場合、プラットフォームのような要素は論理的であるように見えます。なぜなら、一部のユーザーは、アプリケーションをWindowsまたはMacなどで実行したいからです。しかし、使用されているテクノロジー、アーキテクチャー、コード行、プログラミング言語、さらにはデータベースのような他の要素についてはどうでしょうか?
ベンダーが顧客に変更を加えるためのソースコードを提供する場合、言語は重要です。それ以外の場合は、パフォーマンスに影響する可能性があります(Cで記述されたデスクトップアプリケーションは、JREや.NETなどの仮想ランタイムに基づくものよりも高速に起動することを意味します)。
コード行は、独自のアプリケーションを展開することを考えている顧客に、実際にそれを構築するためにどれだけの労力が必要かというアイデアを与えるためにあります。正直なところ、10k LOCは比較的小さなソフトウェアなので、彼らがそれをマーケティングステートメントとして使用するのは奇妙だと思いますが、それでもそれがあなたがそうする理由です。
編集
あなたの質問にもっと直接答えるために、「価格はLOCに基づいていますか?」
はい、できます。道徳的、論理的、何でも。価格は自由に設定できます。顧客がそれを購入するかどうかは、販売ピッチの説得力次第です。
それはマーケティングの話です。うまくいけば、あなたの友人は、LOC(コード行)が最終製品の品質と関係がないことを知っています。私が今考えることができる近いアナロジーは、車のネジとファスナーの数について自慢しているマーケティング情報で車を売ることです。車を一緒に固定するために使用されるネジの数は、車を購入する際の決定要因になりますか(または、まったく考慮に入れられますか)。
言語に基づくマーケティング可能性があります顧客が統合プログラミングを実行するか、特定のプラットフォームで実行するかは重要です。
お客様が別のプログラムよりもLOCの高いプログラムを購入したい場合は、問題ありませんが、あまり意味がありません。
「それは道徳的/倫理的ですか?」という質問... LOCを自慢することは無意味な指標であり、知らないことを顧客に訴え、「より多くのLOC = >より良いプログラム」なので、[〜#〜] no [〜#〜]と言います。
VBコードの数ページで自分でできると思っているお客様に、思っているよりも難しいことを納得させ、代わりに販売されているものを購入することを支援します。
私の質問は、私たちはこれらの要因に基づいてソフトウェアを道徳的かつ論理的に価格設定することはできますか?
道徳はそれとどのように関係していますか?ロジックに関しては、ニッチな製品とマスマーケット製品のどちらを使用しているかに大きく依存します。
あなたはニッチな製品を開発することで金持ちになることはありません。主な目標は、利益、任意の利益、期間を作ることです。製品の開発にかかるコストは確かにニッチな製品の方程式の一部であり、コードサイズは開発コストの重要な要素です。たとえば、ココモを見てください。コードサイズは、ココモの推定開発コストの大きな要素であり、ココモのより最近の子孫では依然として大きな要素です。ニッチ製品に請求される価格のもう1つの要因は、製品をリバースエンジニアリングするために誰かにかかる費用ですが、それもコードサイズと高い相関があります。
製品が大衆市場の製品である場合、経済学は劇的に変化します。多くの顧客がいる場合、コードサイズはそれほど重要ではありません。ゲーム開発者は、数十万、さらには数百万の購入者に及ぶ天文学的な開発コストを完全に償却できます。
ソフトウェアの種類 によって異なります。
統合開発環境(IDE)またはその他のソフトウェアツールの場合、言語が最も重要です。
サードパーティのライブラリでは、展開のフットプリントが懸念される場合は、コードの行数が関係する場合があります。相互運用性を制限する可能性があるため、言語も重要です。
パッケージまたはオンデマンドのアプリケーションソフトウェアの場合、言語またはコードの行数が製品のコストを決定する関数の一部であるのは奇妙に思えます。顧客の観点から、ソフトウェアが顧客に提供する価値は、手動で(またはより安価なソリューションで)タスクを実行する顧客のコストと比較検討されます。顧客は、コードの行数や使用する言語を気にしないでください。
開発者がソフトウェアの消費者(直接的または間接的)である場合、実装(言語、OS、コード行など)はすべて価格式に表示される場合があります。実装の選択にパフォーマンスの問題がないと仮定すると、他のタイプの顧客は気にしません。
あなたの友人の在庫アプリケーションの場合、それをそのように売り込むのは私にとってばかげています。
言語を知ることは、アプリケーションを拡張したい顧客にとって役立ちます。 Java開発者よりも.Net開発者の方が多いため、JavaおよびOracleを使用したシステムよりも、C#およびMSSQLデータベースを使用したシステムを好みます。カスタム開発を可能にするアプリケーションを除いて、言語の主張は非倫理的ではありません。拡張するつもりのない人は誰もそれが書かれている言語を気にしないので、それは単に貧弱なマーケティングです。ほとんどのユーザーは、VBとバイナリの違いを知らず、本当に気にしません。
LoCに関する限り、ほとんどの企業はおそらくこれを自社の製品が「超強力」であることを売り込んでいますが、ERP 500 LoCで書かれたシステムの方が、書かれたシステムよりもはるかに感動します500ラインバージョンは、保守と拡張が指数関数的に容易であるため、500,000になります。繰り返しますが、これは実際には非倫理的ではありません。これは、ほとんどの場合、ユーザーにとってレーダーのどこにもなく、実際に開発者の購入を思いとどまらせる可能性があるためです。
要するに、いや、90%の恣意的なものに基づいて価格体系を立てないでください。顧客は価値を関連付けません。それほど倫理的なことではなく、基本的なビジネスのことです。 。それは、飛行機の重さと、飛行中に出てくるピーナッツのブランドに基づいて航空券に請求されたようなものです。
30行のコードを5行でリファクタリングし、10行のコードに同じことを実行しました。適切なフレームワークが使用された場合、これらのコード行を1行に減らすか、データバインディングと検証の構成にすることができます。
コードの値を元の3分の1に減らしただけですか?
Certianly、使用するテクノロジー、アーキテクチャ、およびデータベースは、ビジネスのソリューションを選択する際の有効な考慮事項です。コードの行数は、おそらく興味深いスローガンですが、ほとんど無関係です。 C#では、メソッドごとに1行にすべての命令を配置し、多くのことを行うことができるので、誤解を招く可能性があります。これは製品の品質や効果については何も言いません。
価格は市場の問題です。 20分で80億ドルを稼ぐことができる製品を、それをさらに生かそうとしている会社に売ることができれば、いいと思います。コード行ごとの価格設定は、ビジネスモデルとして成功する可能性は低いと思います。
会社が開示したいと思っている限り、私は学びたいと思っています。他の製品と同様に、お客様はニーズ、知識、認識に基づいて独自の決定を下します。意味がないように見えるかもしれないが、そうではないかもしれないいくつかの要因(言及されているものと言及されていないもの)を以下に示します。
[〜#〜] loc [〜#〜]-ええ、表面的には、私はほとんど気にしません。これは、アーキテクチャ、コーダーの才能、およびその他のさまざまなことに基づいて、非常に大きく変動する可能性があります。これは、evalを実行しているコードを実際に記述できる人にとっては、良い参照ポイントです。何かがあなたが合理的だと思うものからずれている場合、それはおそらく営業担当者に理由を尋ねる価値があります。
プログラミング言語-JavaとC APIの両方を使用していて、(一般に!!)a Java API多くの異なるOSが実際にそれらすべてに対応している可能性があると主張しています。同じ主張を行うAC APIは、テストの実践の証拠を示す方がよいでしょう。SunSolarisおよびHP UNIX with "="コンパイルに成功しました "真剣に私が探していた製品ではありません!
基盤となるテクノロジー-一般的ではありませんが、彼らが教えてくれればそれを採用します。アーキテクチャについてできることは何でも知っているのが大好きです。これは、製品がどこに行くのか、何が弱点なのかについての洞察を私に与えるからです。
[〜#〜] cots [〜#〜]-つまり、このアプリケーションを実行するために必要な他のソフトウェア(データベースブランドなど)-大きなもの(データベースやディレクトリサーバーなど)には必須の機能-私はかつて、1つのシステムに対して3つの異なるタイプのデータベースを提供する、提供されたソリューションを見ました。それはすべて「アプリケーションの一部」でしたが、そのようなことはITの悪夢だと思わざるを得ませんでした。たとえば、Oracleショップでは、セクシーな新しいアプリがOracleデータベースの下で実行できることを誰もが理解しやすくなり、現在のネットワーク構成、バックアップ手順、およびその他の構成が可能性があることをシステム管理者に安心させます。正常に動作します。また、セキュリティオタクについては、バージョンとパッチレベルが必要なので、修正されたセキュリティの脆弱性を把握します。
誰が書いたか(質問はありません)-防衛産業で働いている場合、これは明白なものです。軍事用アプリは、多くの場合、国内で作成(およびサポート)する必要があります。私はこれがすべての最大のトレードオフであると思う傾向があります-結局のところ、何かが米国で書かれていなかったからといって、製品が低品質であるという意味ではありません。 IMO、これは少し人種差別主義者に見えるかもしれません...しかし、あなたが気にするなら、あなたは気にします。結局のところ、なぜですか? 「Made in the USA」のラベルはTシャツの販売に役立ちますよね?
ソリューションの存続期間全体を検討しているシステムエンジニアと言えば、ベンダが教えてくれるのと同じくらい内部について知りたいです。実際、私はほとんどすべてのWebサイトのフロントページに表示される「ビジネスを可能にし、タスクフォースを推進し、顧客を満足させる」すべてのマーケティングフラッフよりもこのようなものが欲しいです。
私が倫理について考えたいのであれば、私が最も倫理的なことは、あなたが何を開示してもよいかを理解し、それを開示する最も誠実な方法を見つけることだと思います。たとえば、LOCが10,000であると言わないでください。それが製品全体のほんの一部にすぎないことを理解させてください(「コア」のように、何も実行せず、すべてに必要です)。一部が10,000 LOCであると言ったら、必要なライブラリのLOCも開示します。それは私を落胆させる偽の広告です。