開発アーキテクチャ
主にパッケージベース開発とフルスクラッチ開発がある。またコンポーネント開発というものもある。
パッケージ開発
パッケージとはいわゆる特定の業務に特化した市販ソフトウェアを指す。
自社で開発した業務ソフトウェアやWordPressなどがパッケージに該当すると思われる。
なお、フレームワークはパッケージと呼ばないようである。
このパッケージを顧客の業務に合わせてカスタマイズするのが主な開発作業となる。
パッケージ開発はベース部分が開発会社の著作権になる。
その代わり、カスタムや差分だけの開発費をクライアントに請求しなければならない。
フルスクラッチ開発
システムを1からすべて作り上げる開発手法。
ソースコード一式はすべてクライアントの著作権となる代わりに、開発したものすべてに対して開発費を請求できる。
開発工数は当然大きいが、クライアントの要望に応えやすい。
コンポーネント開発
フルスクラッチ開発のように1からシステムを作り上げるが、共通コンポーネントを組み込むことにより工数を少なくしている。
共通コンポーネントは機能を部品化したものであり、著作権はそのコンポーネントの開発側にある。
共通コンポーネントの著作権は自社および開発側にあるため、クライアント側に開発費請求するのはふさわしくない。
その他
SOAというサービス思考アーキテクチャもある。
機能ごとにサービス化したものを統合したシステム。一つのサービス自体が一つのシステムのようにふるまうようだ。