個人での受託開発はほとんど死んだか

受託開発の問題は、リスクが高いことだ。

納品まで最低でも数か月はかかる上に、仕様変更などが発生して、納品が延期されたり、結局開発がキャンセルされたりするリスクがある。

作業開始前に着手金をもらうという手はあるが、リスクの埋め合わせになるほどの金額ではない。

受託開発の場合、ほとんどは請負契約となる。
そのため、納品物を顧客が受領しなければ報酬は発生しない。

発注元の顧客にとっては失敗しても失うのは着手金と時間だけだが、受注元が失うのは開発期間の時間と労力とその間に別案件で得られたであろう収入だ。
つまり、受注側は途中キャンセルが発生しないように仕様変更が発生しても泣く泣く飲まざるを得ない状況に陥りやすい。

これは受注側の技術レベルやメンバー体制によっては改善できない問題だ。
顧客側の仕様変更や突然のキャンセルは完全に顧客側の事情だからだ。

この問題を解消するには、顧客との間に強固な信頼関係を構築する必要がある。
しかし信頼関係を構築するには、受託開発の回数をこなす必要があるというジレンマがある。

Webデザイナーやイラストレーターの場合は、一転して事情が変化する。
こちらは作業期間が多くても1カ月と短いので、受託のリスクが小さい。
仕様変更が生じる余地も小さいし、受注額も小さいので、顧客が支払いを渋る問題も起きにくい。
多くの場合は並行して2,3件を受託できるので、請負契約であっても受注キャンセルのリスクが小さくなる。
これがWebデザインやイラストの分野で個人が独立しやすい理由だろう。

会社間であっても受託開発はリスクはやはり大きいままだ。
個人の場合よりも若干はマシになるだろうが、やはり上述した同じ問題がつきまとう。

請負契約のリスクを解消あるいは緩和しながら、個人開発者が受託開発をしているのならば、その方法は是非知りたい。
探してはいるが見つからない。受託開発での納品時のトラブルはよく聞くが。

開発するプログラムの単位が長くても1カ月程度で終わるような小さい単位に分解できるのならば、デザインやイラストと同様にリスクはかなり緩和されるだろう。
しかし、プログラムの場合はそれはかなり難しいと言える。
それが実現するには疎結合のアーキテクチャが完成している必要があるし、その中の部品のレベルでも疎結合が実現している必要がある。

スマホの1カ月程度で作れるような簡単なアプリならば、受託開発のリスクはかなり緩和されるだろう。
しかしそのようなアプリを発注するような需要は存在しない。用途が思い浮かばない。

結局、プログラマ個人としては、個人で自宅で受託開発をする、という「夢」はかなり難しいというのが近年の状況なのだろう。

では個人開発者はどのようにして独立するべきなのだろうか。
自作ソフト販売、セルドナ、教材販売、セミナー、くらいか?
そもそもプログラマの枠にこだわるべきではないのだろう。