
#124 プロセスにこだわることの難しさ
こんにちは。ITベンチャーエンジニアのこへいです。
前回は成果物とプロセスへの思い入れのバランスを取る話をしました。
今日はなぜプロセスにこだわるのかについて、システム開発の現場で起きるプロセスにこだわることの難しさについて考えます。
〇プロセスにこだわるべき理由
私は受託システムの開発・運用を担当するエンジニアであり、システムを作るプロセスに強いこだわりを持っています。
システム開発は家を建てるのと似ています。家を建てる際、しっかりした土台がなければ長持ちしません。同様に、システム開発においても、要件定義、設計、実装といった基盤が強固でなければ、持続的な運用や拡張が困難になります。
私の担当するシステムは売り切りではなく、開発したシステムを長期間運用し、必要に応じて追加開発することを前提としています。
そのため、初期開発で要件を満たすだけでなく、将来のメンテナンスも考慮した要件定義、設計、実装などのプロセスにこだわることが極めて重要です。
〇私がプロセスにこだわるようになった理由
若手時代、引き継いだ顧客のシステムがバグだらけであることを経験しました。システムを触るたびに新たなバグが発生し、顧客からの問い合わせが絶えませんでした。
前任者が雑な実装を重ねた結果、システムに多くのバグが埋め込まれていたのです。半年かけて、顧客に謝罪しながら少しずつバグを修正していきました。その期間は大きなストレスであり、追加の開発も難航しました。
この経験から、短期的な成果を追求し運用を軽視した開発は顧客の信頼を損ない、バグ修正に多大なコストを要し、開発の遅延を招くことを痛感しました。
組織の長期的な成長を考えると、運用保守のフェーズでのコスト増加を避けるためにも、開発のプロセスにこだわることが不可欠です。
〇運用を考慮することが難しい理由
運用を軽視した開発を続けることの弊害を説明しましたが、全てのエンジニアが運用の視点を持ち、プロセスにこだわるわけではありません。
運用の負荷を実感しないエンジニアは、適切な実装がどのように運用負荷を減らすのか理解しづらいです。穏やかな顧客を担当する場合や、新規プロジェクトのみに携わる場合、運用の実感が薄れてしまい、こだわりが生まれません。
運用を考慮した実装とは、読みやすく、メンテナンス性の高い実装です。複雑な仕様をシンプルに落とし込むことで、理解しやすく、運用しやすいシステムを実現することが大切です。
結局、エンジニアだけでなく、組織全体が運用を考慮したプロセスにこだわる必要があります。
例えば、顧客の業務を理解し、顧客に複雑な仕様をそのまま実装することのデメリットを理解いただいたうえで、長期的には顧客にとっても恩恵のある仕様を提案できる必要があります。
これは生産性向上のためにやらないことを増やすことでもあり、とても難易度が高いです。
また、顧客の要望をそのまま実現する方が顧客には喜ばれるため、営業からするとエンジニア視点での運用を考慮した要件調整には積極的に協力したくないインセンティブが働いてしまいます。
営業にも運用を考慮した要件に落とし込むことが、顧客に価値を提供し続けるには不可欠であると理解してもらう必要がありますが、技術的な難しさに共感してもらうのは難しいのです。
難しいことではありますが、なぜ運用を軽視してはいけないのかは理解しています。運用を重視した開発を推し進めることが、エンジニアだけでなく営業も組織全体にとっても「利」があることを理解いただけるように訴え、エンジニアとして出来る改善を進めていきたいと思っています。
ということで、プロセスへのこだわりを持つことの重要さ、難しさについての話でした。
最後までお読みいただきありがとうございました。