Navigating the challenges in creating complex data systems: a development philosophy