The high degree of complexity, tight competition and scarcity of resources involved in real life projects necessitates the application of modern management techniques for the satisfactory achievement of objectives and smooth execution of the projects. The situation becomes more complicated when multiple projects, mostly of different nature, are to be managed simultaneously. Here, the critical and scarce resources have to be shared between the projects at different times. This challenge of allocating different scarce resources to the competing activities of different projects is of great concern to any project manager. Over the years, several solution techniques have been suggested and tried for this problem of resource constrained scheduling including analytical methods, heuristic methods, and search algorithms. This paper presents a survey of the methods reported in the literature, tries to categorize them and indicates directions for future developments.