技術選択とQCDのトレードオフという結論がない話

経緯としては受託開発会社にiOSアプリの開発を依頼したら、Objective-C(Obで作ると言われて「え?Swiftじゃないの?」とエンジニア陣がざわついた。

同僚とオンライン・オフラインで話してたけどこれは難しい。iOSアプリ開発には詳しくないけど、技術的な制約がないのにObjective-Cかとなるのはすごいわかる。Java8の時代にこれからJDK1.4で開発しなさいと言われたらFXで有り金全部溶かした人の顔になる。AppleがこれからSwiftを使ってねと言ってて、これからObjective-Cを書ける人も少なくなってくる。書ける人が少なくなるということは、メンテコストも高くなる。

ただ、相手の会社からしたら、今のメンバー構成でQCDを守るためにはこの選択が最良と判断したのだろう。相手のスキルとかは知らないが、会社にノウハウが溜まってない技術をお客のサービスに納品するというのはリスクが高い。内製開発と受託開発ではそもそもビジネスとしてのゴールが違うのでどちらも間違ってないから余計辛い。(もちろん最初に「この技術」でという制約があれば話が別だけど今回はなかった)

言語ではないが自分もそれまで使ったことがない技術をお客のサービスにいれたことがあった。新しい技術を使わないと問題を解決できない可能性があることを伝え、技術検証も含めてスケジュール・費用はきちんと頂いて仕事をした。

自分は検証とか好きなので自宅で素振りして会社にフィードバックしてたがそれがすぐ使えるかというとそういうわけではない。ビジネス・技術の制限事項や、そもそも今のチームで運用ができるのかというところまで考える必要がある。明日自分が倒れたらコスト・リスクが高くなる技術はみんなを不幸にする。それをなくすためにもスケジュール・費用は必要なものなのだ。それがないときは出してないものは成功するか失敗するかのスタートラインにも立ててないので、出してからその負債を返すか考えたほうがいい気がしてきた。今回は負債が大きすぎるのと、それをやると後辛いんだよなぁ...

ああ、結論がない。