When you arrive in the morning, you find that your software does not work anymore, even though it did when you left yesterday evening.

What do you do? What do you check first? What do you do to stop being angry and start working on your problem? Do you blame your colleagues and go directly to them? What can be done to avoid being in such a situation?

The usual suspects are:


You thought it worked yesterday, but after a full day of work you were too blind to realize that it didn't work.
This morning you no longer can refer to what was in IDE cache memory yesterday.
The workstation has rebooted last night or a nightly maintenance operation cleared /tmp directories.
Something has changed in the code base: check whether someone (possibly yourself) has commited changes between your last compile of yesterday and your last compile of today.
Something has changed in the support libraries: check whether those libraries have been recompiled or upgraded. The cause may be inside the project for specific libraries or outside if a new version of an apparently independent package has been deployed.
Something has changed in the testing environment: new version of a virtual machine, a stub that has been modified, changes in a remote database server...
Something has changed in the compilation chain: changes in Makefiles, new version of IDE, of compiler, of standard libraries... 

