現在の悩みと経緯について
Python3でバックエンド開発を行っており、複数の協力会社にモジュール作成を依頼しています。
その際に上がってくるモジュールに各社個性が大きく、二度手間が多い問題に困っています。
外注は並行作業で開発時間削減を目的に行っていますが、
①仕様書を細かく作るほど時間を要し、時間と品質のトレードオフが課題です。
②協力者の開発の創意工夫ややりがいも尊重しつつ、適切な制限を課して品質を確保したいとも思っております。
なお、現在は、API、インターフェースだけ制限をつけ実装は裁量にお任せしています。
この課題に一定の基準を見つけて解決をしたく、この度質問に至りました。
現在の理想の納品モジュールは以下のような要件です。
1.当然だが使われることを想定して各関数またはメソッドにDocが揃っている。使い方がすぐに理解できれば形式は自由。
・形式まで指定すべきか?指定されたいか?
・指定するならどのような形式がいいか?
2.用途に応じてsetup.py、各種設定ファイル一式(定番のもの)も用意してほしい。すぐに使い始められる状態で納品を希望。
・必要な際、いちいちsetup.py等の要求をすべきか?
・自己判断はどこまで可能か?何を基準に判断しているか?
・逆に一般にどのような時setup.py等を用意しようという認識があるか?
3.pycを削除している外部企業もあるが、削除はしないで欲しい
・削除しないということは常識ではないか?
・通常削除するものなのか?どういうときは削除を考えるものなのか?
4.クラスで作るか非クラスで作るかの判断はこちらで指定したい。
・依頼するのが一定のまとまりのモジュール群の場合、クラス使用・不使用まで口を出されるのは自由度を狭めやりがいを削ぎすぎないか?
・実務でのPython開発でクラスで作るか非クラスで作るかの判断において一定の基準・慣例はあるのか?
5.自分が発注をして、上がってきてイラッとしないモジュールを考えて作って欲しい。
・各開発者、組織ごとにそれほど基準のばらつきがあるものなのか?
・一定レベルの開発者ならこうするといったプラクティスはあるのか?
6.頼んだ通りでなくとも、意図を汲み取って設計の修正や追加作業をしていただけるとまた頼みたくなる。
・サービスを強制せず、双方の利益拡大や働きがい考慮ができるよう協力したいが、
Pythonモジュールの外注では開発者側で最低限これだけは指定してほしいといった要件があるのか?
・逆に、ここまでは指定しなくていいといった要件とは?。技術力の不信感強調、自由度減によるやりがい減等は避けたいです。
助けていただきたい事
上記の関係で質問やお伺いしたい点が数多くありますが、
お答えいただける範囲で構いません。
それぞれについて理想の納品モジュールが備えるべき基準、それらの疑問へのご回答、
ほか不明な点などありましたらお聞かせ下さい。
言語はPythonを想定していますが、幅広い分野の方のご回答も視野を広げる上で大いに役立つと思っています。
コーディング文化は違いますが、Ruby, JavaScript等Web関連の言語からそうでないものまでのご経験をお持ちの方も
それぞれの視点からのご回答をいただけましたら幸いです。
ビジネス上の制約はありますが、
頂いたご回答は広く一般にも開発のやりがいと協力のしやすさについて指針を与え、
同じような悩みを抱える多くの方々に希望を与えるものと思います。
なお、ベストアンサーの基準が付けにくい質問のため、
1週間以内の回答で個人的に一番納得する答えだった場合にベストアンサーとさせていただきます。
ここまでお読みいただきありがとうございました。
皆様のご回答、お待ちしております。
宜しくお願いいたします。