How to Engineer Serendipity