これは、私が「永遠の対立」(ビジネスとエンジニアリングの間)と考え始めたものに要約されます。解決策はありません。それは決してなくなることはないが、軽減するために役立つことはできるからです。
多くの人が気付いていないことは、エンジニアとして、「ビジネスの成功」の問題を常に想定しているということです。新しい機能を追加し、既存の機能を迅速に調整し、より良いコードによって妨害された奇妙なフリンジケースを発見することにより、最小限の顧客が私たちのためにQAを行うことができるように、私たちのコードはすてきできれいで維持可能です。優れたコードが直接貢献し、そもそもより良いコードを必要とする多くの理由を伝えるビジネス上の勝利は、顧客を維持し、他の誰も十分に速く生産できない機能とフィネスで競争力を維持することです。
だからそれを綴りなさい。「コードベースでXを実行したいのは、Yが原因でビジネスに悪影響を及ぼさないから」または「...新しい改善や機能をより早く方向転換する能力を改善することにより、競争力を維持する能力を高めるためです」 」
そして、最善を尽くして、改善が機能しているという明確な証拠を得ようとします。アプリの一部のサブセットを改善することで機能/改善が高速化された場合、その証拠として使用している可能性のあるバックログツールを確認し、適切な会議で指摘します。
自我はしばしば問題です。エンジニアリングチームが非常にひどく必要とすることの1つは、Kool Aid d'jourをよく知っているすべての人に対して、特定の種類の問題を解決するための何らかの合意された一貫したアプローチを持つことの価値を確立することです。他の人の好みがあなたよりも悪いと信じても構いませんが、彼のアプローチが実行可能であり、勝てない議論である場合、より適切であることよりも一貫性を重視します。一貫性を保つための妥協が重要です。物事が一貫している場合、一貫した確立された方法が通常最速の方法であるため、それらを間違えることはより困難です。
frameworks / toolsets / libraries / whateverの2つの学校があります。「99%を自分用に設定しているので、ほとんど知らない/やらなくてはならない」vs.「そこにいなくても邪魔にならないが、実際に欲しいものを非常に迅速かつ一貫してDIYで手伝ってくれるスティックの原理ではなく、ニンジンで使用します。」2番目のものを好む。迅速な転換の祭壇では、柔軟性ときめ細かな制御を決して犠牲にすべきではありません。ビジネスにとっては、「独自のツールでは許可されないため、これを行うことはできません」は決して受け入れられない答えであり、些細な/使い捨ての製品エンジニアリング。私の経験では、柔軟性に欠けるツールはほとんど常に大々的に開かれたり、巧妙に回避されたりして、大きな巨大なメンテナンス不可能な混乱を引き起こします。多くの場合、柔軟で簡単に修正できるソリューションは、いずれにせよ、短期的には同じか非常に高速です。適切なツールを使用すれば、高速で柔軟性があり、保守が可能です。
- FFS、エンジニアが決定しない場合、少なくともツールの選択に関するエンジニアの意見を得る
これは開発者の観点からの質問であるという感覚が得られますが、技術者の判断なしでテクノロジーの決定が行われる状況は非常に多くあります。地獄は何ですか?はい、最終的に誰かが最終的な電話をかけなければなりませんが、あなたが非技術的なマネージャーである場合、セールスマンやデモサイトが自社の製品について言っていることではなく、適格な意見を得る必要があります。人々はそれほど賢くする必要がないため、または開発者を自分自身から保護するため、お金を節約することを約束するものはすべて、不潔で汚い嘘です。信頼できる人材を雇います。スタックまたはその他の技術ソリューションから何を望むかを彼らに綴り、彼らの意見を真剣に受け止めてから、どの技術の時流に乗るべきかを決定します。
ツールは実装用であり、そのために役立ちますが、そのアーキテクチャを構築するためのおもちゃのセットに関係なく、アーキテクチャを最優先する必要があります。結局のところ、KISSとDRY、そしてそれらが.NETかJavaか、あるいは無料で吸わないものであるかどうかよりも、それらの問題から拡張されるすべての優れた哲学。
事業者側があなたがそれを悪いやり方で行うと主張するとき、その電子メール、特にあなたがなぜあなたに費用がかかるかと言った部分を保存してください。すべての予測が実現し、ビジネスに重大な損害を与える問題が発生した場合、エンジニアの懸念をより深刻に受けとめるための大きな議論が山積みになります。しかし、慎重に時間を計ってください。燃え盛るインフェルノの真ん中では、次のファイアーコードに関する「I-told-you-so」にとって悪い時期です。火を消し、過去に無視された懸念のリストを回顧会議/会話に持ち込み、表現され無視された工学的懸念と、実際の人々の名前ではなく、なぜ彼らが無視されたのかを理解した推論に焦点を当てようとする無視する決定を下す。あなたはエンジニアです。人々ではなく、問題にとどまります。」Xに対する懸念を表明したのは、Yの問題につながるのではないかと恐れたためです。私たちはZに、それを処理するのを先送りするように言われました。」