Tensor product over non-commutative ring. I already knew the definition of the tensor product of two modules over a commutative ring : It takes two modules over the ring and spits out a module over a ring. I thought this was nice.
I was checking out the definition of a tensor product on a non-commutative ring and to my surprise I notices that :

*

*the result is no more a module but a group.

*This time we take as input a right module and a left module

How can we explain the reason behind those changes? Please keep in mind that I don't know much about tensor products or modules so I might not understand the shortcuts.
 A: A common generalisation you may find useful is to introduce bimodules. If $R$ and $S$ are (not necessarily commutative) rings, then an $R$-$S$-bimodule is defined to be a left $R$-module and a right $S$-module with the same underlying Abelian group $M$, such that furthermore $r(ms) = (rm)s$ for all $r \in R$, $s \in S$, and $m \in M$. To summarise in other words, an $R$-$S$-bimodule is an Abelian group which can be scaled on the left by $R$ and on the right by $S$ in distinct but compatible ways.
If $R$ is a commutative ring, then an $R$-module is exactly an $R$-$R$-bimodule, because in the commutative case, we don't care which side we scale on. More interestingly, if $R$ is just a ring, then a left $R$-module is exactly an $R$-$\mathbb Z$-bimodule, and symmetrically, a right $S$-module is exactly a $\mathbb Z$-$S$-bimodule. Here, $\mathbb Z$ works as a trivial thing to scale by, because the only way to scale by an integer is repeated addition (with addition coming from the underlying Abelian group). To complete the diamond, a $\mathbb Z$-$\mathbb Z$-bimodule, that is, a $\mathbb Z$-module, is exactly an Abelian group.
What do bimodules have to do with tensor products? If we paraphrase the definition in question directly into the language of bimodules, we get the following property:

If $M$ is a $\mathbb Z$-$R$-bimodule and $N$ is an $R$-$\mathbb Z$-bimodule, then their tensor product $M \otimes N$ is a $\mathbb Z$-$\mathbb Z$-bimodule.

But, in the setting of bimodules, it's more natural to talk about the following more general definition:

If $M$ is a $Q$-$R$-bimodule and $N$ is an $R$-$S$-bimodule, then their tensor product $M \otimes N$ is a $Q$-$S$-bimodule.

This should then be much easer to motivate – the tensor product of bimodules is a form of typed composition for bimodules, defined when its operands agree on a mediating ring. Indeed, rings, bimodules, and linear maps together form a 2-category, generalising the monoidal category of modules over a fixed commutative monoid.
Concretely, given $M$ a $Q$-$R$-bimodule and $N$ an $R$-$S$-bimodule, their tensor product can be formed as a bimodule quotient of formal products of the form $mrn$, with $m \in M$, $r \in R$, and $n \in N$. This product makes sense because $R$ scales $M$ on the right and $N$ on the left. Note also that we can scale $M \otimes N$ on the left by $Q$ and on the right by $S$ by scaling the left ($m$), respectively right ($n$), part of the formal product. I won't right down the entire quotient, but it says amongst other things that scaling inside the tensor product by $Q$ or $S$ is the same as scaling outside, scaling by $R$ can be placed anywhere in the middle, and addition anywhere is distributed over by formal scaling ($(m+m')rn = mrn + m'rn$, $m(r+r')n = mrn + mr'n$, &c).
