1. A non-transitory computer readable storage medium embodying instructions executable by a processor to perform method steps for supporting multi-user collaborative program development, the method steps comprising: inputting a code snippet, wherein the code snippet is software program source code; automatically classifying the code snippet in at least one of a plurality of predefined classes by comparing the code snippet with code pattern templates of the plurality of predefined classes; automatically assigning a quality score to the code snippet according to an authoring developer of the code snippet; storing the classified and scored code snippet in a code repository, wherein the code repository maintains a plurality of classified code snippets of software program source code that are shared, wherein the classified code snippets are organized in the code repository using a multi-level class hierarchy structure; and providing automated programming assistance by searching the code repository for one or more code snippets in the code repository having the same class of the code snippet and having a quality score greater than the quality score assigned to the code snippet, wherein the one or more code snippets are output in response to the input code snippet.