  Increasing the impact of software engineering research in the software
industry and the society at large has long been a concern of high priority for
the software engineering community. The problem of two cultures, research
conducted in a vacuum (disconnected from the real world), or misaligned time
horizons are just some of the many complex challenges standing in the way of
successful industry-academia collaborations. This paper reports on the
experience of research collaboration and knowledge co-creation between industry
and academia in software engineering as a way to bridge the research-practice
collaboration gap. Our experience spans 14 years of collaboration between
researchers in software engineering and the European and Norwegian software and
IT industry. Using the participant observation and interview methods we have
collected and afterwards analyzed an extensive record of qualitative data.
Drawing upon the findings made and the experience gained, we provide a set of
14 patterns and 14 anti-patterns for industry-academia collaborations, aimed to
support other researchers and practitioners in establishing and running
research collaboration projects in software engineering.

Software Engineering;Machine Learning