Human capital is the main asset of software organizations. Knowledge has to be preserved and leveraged from individuals to the organization. Thus, the learning software organization will be able to continually learn and improve. Knowledge management has various components and multiple aspects such as socio-cultural, organizational, and technological. In this paper we address the technological aspect; specifically, we survey the tools available to support different knowledge management activities. We categorize these tools into classes, based on their capabilities and functionality, and show what tasks and knowledge processing operations they support