システム開発においてよく言われている
「トレードオフ」
について考えることがありました。
開発において大事にすべき要素(僕が大事にしていること)は
- スピード
- クオリティ(+セキュリティ)
- フレキシビリティ
です。
よく「何かを取れば何かを捨てないといけない、そこはトレードオフだよ」 と言われます。(何を隠そう、僕も言っています。)
この言葉を聞いてたまに思うのが、
「本当にそうしなければいけないのか」
という疑問です。
何かを得るために何かを捨てなければいけない
なんて誰が決めたのでしょうか。
それは本当にベストなやり方なのか(他にもやり方があるのでは?)、
自分の傲慢ではないのか、
他の人だともっと良いやり方がるのではないか、
あの人に任せてるからこんなに時間がかかっているのではないか、
などなどモヤモヤを上げればきりがありません。
何が言いたいのかというと、
トレードオフなんてくそみたいな前提条件は捨てる
常に今の自分を否定し続ける
ってやっていかないと良いエンジニアにはたぶんなれない