Minimizing boolean algebra expressions
Invert it. Inverted logic often gives better results if there are more 1's than 0's.

When minimising gates also group similar subexpressions so they can share gates.

$$a = \overline{\overline{ABC}D + \overline{A}B\overline{CD} + A\overline{B}CD + AB\overline{C}D}\\
= \overline{\overline{AC}(\overline{B}D+B\overline{D}) + AD(\overline{B}C+B\overline{C})}\\
=[A+C+(B+\overline{D})(\overline{B}+D)][\overline{A}+\overline{D}+(B+\overline{C})(\overline{B}+C)]\\
=(A+C+\overline{BD}+BD)(\overline{A}+\overline{D}+\overline{BC}+BC)\\
=(A+C+\overline{B\oplus D})(\overline{A}+\overline{D}+\overline{B\oplus C})$$