{"id":1785,"date":"2010-07-13T18:31:09","date_gmt":"2010-07-13T22:31:09","guid":{"rendered":"http:\/\/www.easterbrook.ca\/steve\/?p=1785"},"modified":"2010-07-13T18:34:38","modified_gmt":"2010-07-13T22:34:38","slug":"can-we-improve-the-engineering-of-climate-software","status":"publish","type":"post","link":"http:\/\/www.easterbrook.ca\/steve\/2010\/07\/can-we-improve-the-engineering-of-climate-software\/","title":{"rendered":"Can we improve the engineering of climate software?"},"content":{"rendered":"<p>William Connolly has <a title=\"Stoat: Engineering the Software for Understanding Climate Change\" href=\"http:\/\/scienceblogs.com\/stoat\/2010\/06\/engineering_the_software_for_u.php\" target=\"_blank\">written a detailed critique<\/a> of our paper &#8220;Engineering the Software for Understanding Climate Change&#8221;, which follows on from a very interesting discussion about &#8220;<a id=\"a157400\" href=\"http:\/\/scienceblogs.com\/stoat\/2010\/06\/amateurish_supercomputing_code.php\">Amateurish Supercomputing Codes?<\/a>&#8221; in his previous post. One of the issues raised in that discussion is the reward structure\u00a0in scientific labs\u00a0for software engineers versus scientists. The funding in such labs is pretty much all devoted to &#8220;doing science&#8221; which invariably means publishable climate science research. People who devote time and effort to improving the engineering of the model code might get a pat on the back, but inevitably it&#8217;s under-rewarded because it doesn&#8217;t lead directly to publishable science. The net result is that all the labs I&#8217;ve visited so far (UK Met Office, NCAR, MPI-M) have too few software engineers working on the model code.<\/p>\n<p>Which brings up another point. Even if these labs decided to devote more budget to the software engineering effort (and it&#8217;s not clear how easy it would be to do this, without re-educating funding agencies), where will they recruit the necessary talent? They could try bringing in software professionals who don&#8217;t yet have the domain expertise in climate science, and see what happens. I can&#8217;t see this working out well on a large scale. The more I work with climate scientists, the more I appreciate how much domain expertise it takes to understand the science requirements, and to develop climate code. The potential culture clash is huge: software professionals (especially seasoned ones) tend to be very opinionated about &#8220;the right way to build software&#8221;, and insensitive to <a title=\"Serendipity: A Theory of Shared Understanding in Software Teams\" href=\"http:\/\/www.easterbrook.ca\/steve\/?p=1735\" target=\"_blank\">contextual factors<\/a> that might make their previous experiences inapplicable. I envision lots of the requirements that scientists care about most (e.g. the scientific validity of the models) getting trampled on in the process of &#8220;fixing&#8221; the engineering processes. Right now the trade-off between getting the science right versus having beautifully engineered models is tipped firmly in favour of the former. Tipping it the other way might be a huge mistake for scientific progress, and very few people seem to understand how to get both right simultaneously.<\/p>\n<p>The only realistic alternative is to invest in training scientists to become good software developers. <a title=\"Greg Wilson's blog, The Third Bit\" href=\"http:\/\/www.third-bit.com\/\" target=\"_blank\">Greg Wilson<\/a> is pretty much the only person around who is covering this need, but his <a title=\"Software Carpentry Course materials\" href=\"http:\/\/software-carpentry.org\/\" target=\"_blank\">software carpentry<\/a> course is desperately underfunded. We&#8217;re going to need a lot more like this to fix things&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>William Connolly has written a detailed critique of our paper &#8220;Engineering the Software for Understanding Climate Change&#8221;, which follows on from a very interesting discussion about &#8220;Amateurish Supercomputing Codes?&#8221; in his previous post. One of the issues raised in that discussion is the reward structure\u00a0in scientific labs\u00a0for software engineers versus scientists. The funding in such [&hellip;]<\/p>\n","protected":false},"author":392,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"aioseo_notices":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/posts\/1785"}],"collection":[{"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/users\/392"}],"replies":[{"embeddable":true,"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/comments?post=1785"}],"version-history":[{"count":3,"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/posts\/1785\/revisions"}],"predecessor-version":[{"id":1787,"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/posts\/1785\/revisions\/1787"}],"wp:attachment":[{"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/media?parent=1785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/categories?post=1785"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.easterbrook.ca\/steve\/wp-json\/wp\/v2\/tags?post=1785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}