Knowledge sharing is critical for successful software development projects – Software Engineering community has been investing huge amount of efforts in supporting and promoting knowledge sharing over the last many years with mixed outcomes. Knowledge sharing for gaining common understanding is considered a central concern when software development work crosses geographical, cultural, or organizational boundaries. One of our key research topic is knowledge sharing in Globally Distributed teams. Recently I was invited to give a keynote talk at the XIII Brazilian Symposium on Software Quality (SBQS 2014) to be held in August in Brazil. Here are TalkinBrazil-05August2014 (19 MB size). I spoke about the knowledge sharing challenges and solutions . I shared our findings and observations of knowledge sharing problems and solutions in industrial settings. I shared some of our conclusions that most of the existing literature pays little attention to explicitly provide insights into the contextual situations in which different knowledge sharing strategies can play an effective coordinative role for gaining common understanding. I presented our findings from a series of cases studies aimed at discovering the situations in which social ties and artefacts are used as the main knowledge sharing strategies for gaining common understanding. I also reflected upon the strengthens and weaknesses of different types of knowledge sharing strategies and how different approaches can be combined to provide a comprehensive solution.