The Flow of Change Excellent model on how to do branching and merging of code lines with a source code control system. I am a big fan of Perforce's SCM P4 and have been using it since 1995/6 -- the paper's model is agnostic to SCM tool you use.
The expression problem (aka the extensibility problem) refers to a fundamental dilemma of programming: To which degree can your application be structured in such a way that both the data model and the set of virtual operations over it can be extended without the need to modify existing code, without the need for code repetition and without runtime type errors.