私は今のところPHPを専門としてるので、新規開発より長年運用されてきたシステムの運用開発に携わることか多い。
10年ぐらいかそれ以上稼働してるシステムに、新規機能追加や既存バグの対応等で手を入れるタスクがメインだ。
昔から運用されているシステムの大体のパターンとして、
・スキルの高いエンジニアばかりではないので、疑問に思うコードが混在しる
・マジックナンバーが頻繁にある
・テーブル定義書に記載されてない、タイプ型項目の追加タイプがある
・絶妙なバランスで成り立ってる将棋崩し状態で、手を入れづらい
等ある。
タスクをこなすためにはソースをよく読み込む必要があるし、その際に理不尽なコードに当たってもいちいちイライラせずに「そんなものだ」と受け入れることが必要だ。
そして、一度タスクが開始されるとスケジュールは無常に過ぎていくため、最初の工数出しのパートで「読み込み工数」を強くアピールしないといけない。
この部分は、理解度が低いマネージャーには通じずないことがあるので、マネージャー層との交渉に苦労することがあるかもしれない。
上記の内容は運用開発に携わるにあたって結構遭遇することなので、すでに関わってる人は共感してもらえるだろうし、これから関わるかも?という人は頭の片隅にでも留めておいて貰えれば良いと思う。
システムが世の中に増えるほど運用開発の手は必要になってくるのは必然なので、途切れない「手に職」のジャンルとして見るならば悪くはないだろう。
また、新規開発に携わるためにスキルアップをしたい!という参入したてのエンジニアにも、運用開発の小・中規模改修をこなして経験を積み上げていくのは良いかもしれない。
地道だがしっなりこなせば実力がつく分野。
それが運用開発だ。