読んでいる。

プログラマが知るべき97のこと

プログラマが知るべき97のこと


本日もカテゴリ「バグとその修正」より

30 そのコードに触れてはならない! カル・エヴァンス

webシステム開発プロジェクトの環境は、次のようにアーキテクチャ分割されているのが普通です。


●開発者のマシン上の、ローカル開発/ユニットテスト環境
●総合テストを手動、あるいは自動で行う開発サーバ
●品質保証(QA)チームや顧客が受け入れテストを行うステージングサーバ
●本番環境


こんなのであったためしがないけれどね。残念な人だな俺は。他にもソースコード管理や問題管理システムがあるかもしれないけれどもねとこの話は続いているのだけれど、実感できない。実感したい。ソースとかさ、普通にディレクトリで管理してたりすることあるからね。気持ちが悪いよー。うなされるよー。

開発者は−たとえ上級開発者であっても−決して、開発サーバより後の環境に触れるべきではありません。

QAチームおよび顧客は、開発サーバ上のものに手を触れるべきではありません。あくまで受け入れテストができる状態が整ってからリリースし、配備するのです。


なあなあにするなということでしょう。小規模のプロジェクトでは全フェーズに関わることもあるかもしれませんが、修正作業等の発生時、プロジェクトの進捗はどうなっていて、修正者はどの役割として、何をどうしようとしているのかをきちんと理解するべきですと。「まあまあまぁ」とかって、修正。とかありえないから。ということでしょうね。おかしくなるの目に見えていますから。


だからこの提案

たとえどんなことがあっても、開発者は本番環境に触れてはなりません。問題が起きた場合でも、それを修正するのは基本的に運用チームの仕事であり、仮に開発者が修正にあたるにしても、それは運用チームからの依頼であるべきです。


ただし、この章で彼が言っているのは、責任は絶対に押し付け合えってことではありませんので、くれぐれもお間違え無きようよろしくお願い申し上げますよ。