Quantcast
Viewing all articles
Browse latest Browse all 34

Why scientists need software engineers

Image may be NSFW.
Clik here to view.
Las Cumbres Observatory 1m telescope

 I build telescopes.

This is what I tell people, if they should show the slightest interest. It usually instils just enough awe and sometimes a little jealousy; astronomy is the vocational equivalent to astronaut for the vertigo-sufferer. Of course I don’t build telescopes all on my own. At times, I’ve commissioned everything from optics to hydraulics, and motors to pneumatics. I can read panel-drawings, align encoders and tap-out a blind hole.

In fact, I’m a software engineer.

By the time I get my hands on a telescope the construction team has patted themselves on the back for a job well done, and flown home. The commissioning team are left alone at 11,000 feet, with a lump of metal, a few pent-up electrons and a whole lot of photons to collect.

Software engineers often write software programs, but more than that, they following an engineering process. The process advances a software project through a number of stages, from initial requirement gathering, design, review, implementation, testing, deployment and maintenance. Many models exist to guide engineers through these stages; some step through the stages in a regimental manner, while others iterate and blur the steps into a continuum of steadily improving software solutions. Then there are über-softies; that rare software engineer who can scale the tallest scaffolding tower without crying for their mummy, and accept a slipped spanner across the knuckles without a whimper.

For several centuries, astronomers were largely satisfied collating ever more detailed maps of the sky. Modern astronomy came to realise things change in the universe on every time scale we can study, even as short as a millisecond. Time domain astronomy is therefore the study of things that go blip, pop or bang.

I work for Las Cumbres Observatory (LCO); a global network of optical telescopes, for time domain astronomy. Our motto is we’ll keep you in the dark. Uniquely, we can single-handedly track the light-curve of a supernova, or the evolution of a micro-lensing exoplanet, for as long as it takes, and all with near-identical telescopes and CCD cameras. LCO was conceived and created by Wayne Rosing, an IT visionary with a life-long passion for astronomy. If you could go back to every seminal moment in the last 40 years of the IT industry, you would see him quietly guiding events from the background.

Like all big experiments, it is essential for the scientists and engineers to pull together towards the common goal. The scientists are at the top and bottom, choosing the strata to mine and working the coal-face. The engineers are the props holding up the roof and the tubs carrying the precious coal to the surface. Software binds it all together, but do mines really need glue? To put it less esoterically, astronomers pursue their science programme with single-minded determination, and they write software. So, why do they need software engineers?

It’s true, astronomers can, and do, write software, but it is often bespoke. A specific problem arises, so they create a tool to solve it. Astronomy is full of behemoth software tools which started out this way, but now terrify those charged with their maintenance. Admittedly, this is less true than it was a few years ago, but it can still be hard to get a clear list of project requirements. It’s not uncommon for an astronomer to donate a lump of code and claim 90% of the solution is contained within. Don’t get me wrong, I have a huge respect for astronomers (I started out as one). No other science requires the mastery of so many disciplines. They really are the polymath of the modern age, but they are not software engineers.

Software engineering collapses the space between computer science, engineering and scientific experiment. If you’re unclear about computer science, I refer you to the late great Edsger Dijkstra; “Computer science is no more about computers than astronomy is about telescopes”, which I think clarifies things nicely. If I had to reduce software engineering to one phrase it would be ‘pattern matching’. Half of our software-team hold a PhD in astronomy or applied mathematics, while several have degrees in other areas of engineering. Such a disciplinary mix is common in software engineering teams on large science projects. It gives us the skills required to abstract each engineering or science problem until it resembles a generic software pattern. Importantly, each pattern is a proven development paradigm; it is astonishing how often an unpredicted problem appears down the road which is simple to solve within the context of the correct design pattern.

However agile the development process at your science institute, you will always benefit from the discipline of software engineers. It is our dogged obsession with infrastructure coding which means your new temperature sensor can be monitored and displayed on a web page, with only a tweak to a configuration file. Our patient insistence on version control which means we can roll-back from that one-line change which really should have worked. Our sweat-and-blood determination to master database replication which provides a record of what temperature a CCD camera was running at last month, and allows you to plot the variation from night to night. All our talk about modular design and maintainability might delay first-light by a day or two, but your next project will spring from the aether, like inspiration.

So, am I lying when I say I build telescopes? If the inquisitive person could see how I spend my average day, they would be less impressed. Tuesday to Thursday I can be found at a small office in Birkenhead, Merseyside, trying to convince Eclipse to run my Java tests. A couple of times a year I fly off to some distant mountain, wrestle a dozen tonnes of metal down to micron precision and deliver those precious photons to a cryogenically-cooled wafer of silicon. If all the above fails to intrigue, I tell them about the science fiction novels I write on Mondays and Fridays.

Okay, I admit it. I still want to be an astronaut.

Image courtesy Las Cumbres Observatory

The post Why scientists need software engineers appeared first on physicsfocus.org.


Viewing all articles
Browse latest Browse all 34

Trending Articles