ITエンジニアにおける開発に携わるフェーズはいくつあります。
- 想像(0 → 1): 新規サービス・開発の立ち上げ
- 構築(1 → 100): 構築、土台を固める
- 拡大(100〜): 成長、プロダクトの進化
普段の業務・プロジェクトは2か3のフェーズに携わることが多いのですが、たまに1にも携わります。
例えば、全社横断データ分析基盤の立ち上げや、今携わっている新機能開発がそれにあたります。
1においては、最小限の要件で立ち上げること、ITエンジニアであればモノを作る必要があります。その際、うまくいくかわからないことが多く、また何を必要とされているのかが不明確であることも多いです。
そのような状況下で、私自身のスキル不足もありますが、当時はうまくできていると思っていても、デキる人からみれば稚拙に見えてしまうものです。その道について私より知見もスキルがある人にとっては、そのシステムが今後どういったところで行き詰まるのか、イケてないのが見えてしまいます。
しかし、そのシステムがたとえどんなに稚拙であったとしても、一定の役割を担っていて、利益(もしくはコスト削減)に貢献しているのであれば、それを簡単に揶揄すべきではありません。
若い頃であれば「今どきこんなレガシーなのww」と嘲ってしまいがち。でも、そのシステムが稚拙だったり技術的負債が溜まりまくっていたとしても、それに至る理由があります。当事者でない人がその理由を知らずに揶揄したりするのは筋が通りませんね。
たとえ、どんなに問題があるシステムを引き継がれたとしても、嘲るのではなくまず敬意をもってシステムについての理解を深めていくところから始めるべきではないでしょうか。そしてどんなにイケてない、直せるところがたくさんあると感じても、安易な非難は避けるべきです。もちろん改善につながるフィードバックなら歓迎されますが、ただの悪口だったり生産がない意見については何の価値ももたらしません。
こういう記事を書いたのは、そういったことを昔から常々言われてきたから。そしてそのような話(生産性につながらない愚痴など)をされるととたんにモチベーションが下がります。ちょっと気持ち的にブルーになっていたのをブログに書いて昇華させていこうと思った次第です。