Chapter 31. Don’t Touch That Code!

Cal Evans

image with no caption

IT HAS HAPPENED TO EVERY ONE OF US AT SOME POINT. Your code was rolled onto the staging server for system testing, and the testing manager writes back that she has hit a problem. Your first reaction is “Quick, let me fix that—I know what’s wrong.”

In the bigger sense, though, what is wrong is that as a developer you think you should have access to the staging server.

In most web-based development environments, the architecture can be broken down like this:

  • Local development and unit testing on the developer’s machine

  • Development server where manual or automated integration testing is done

  • Staging server where the QA team and the users do acceptance testing

  • Production server

Yes, there are other servers and services sprinkled in there, like source code control and ticketing, but you get the idea. Using this model, a developer—even a senior developer—should never have access beyond the development server. Most development is done on a developer’s local machine using his favorite blend of IDEs, virtual machines, and an appropriate sprinkling of black magic for good luck.

Once checked into SCC, whether automatically or manually, it should be rolled over to the development server, where it can be tested and tweaked if necessary to make sure everything works together. From this point on, though, the developer is a spectator to the ...

Get 97 Things Every Programmer Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.