The present invention relates to a system and methodology to facilitate
software development activities via the concept of "Shelving" which
provides an improved alternative to conventional branching technologies
in certain scenarios. In one aspect, a software development system is
provided. The system includes a shelving component that captures a
current state of an intermediate software design. A version control
component processes the intermediate design as if the intermediate design
were a completed software design.