The importance of information retrieval systems is unquestionable in the modern society and both individuals as well as enterprises recognise the benefits of being able to find information effectively. Current code focused information retrieval systems such as Google Code Search, Codeplex or Koders produce results based on specific keywords and therefore they do not take into account developers' context such as development language, technology/framework, goal of the project, project complexity and maturity or developer's domain expertise. They also impose additional cognitive burden on users in switching between different interfaces and clicking through to find the relevant code. Hence, they are not used by software developers. In this paper, we discuss how software engineers interact with information and general purpose information retrieval systems (e.g. Google, Yahoo) and investigate to what extent domain-specific search and recommendation utilities can be developed in order to support their work related activities. Based on our user studies, we found that software engineers followed many identifiable and repeatable work tasks and behaviours. These behaviours can be used to develop implicit relevance feedback based systems. Based on our results, we discuss the implications for the development of task-specific search and collaborative recommendation utilities embedded with the Google standard search engine and Microsoft IntelliSense for retrieval and reengineering of code. We have implemented a prototype of the proposed collaborative recommendation system which was evaluated in a controlled environment simulating the real world situation of professional software engineers. The evaluation has achieved promising initial results on the precision and recall performance of the system.