This is the title of an outstanding presentation given by Brian Glendenning and his team at the recent SPIE meeting in Montreal, Canada (June 22 -28, 2014). The ALMA software has been an impressive effort over 12+ years, involving 100 staff (peak effort) at 12 sites on 4 continents. This effort has resulted in 60M+ lines of code, and a significant increase in the world’s coffee consumption. The high level architecture, with the archive at its center, is shown below for context:
Here are the ten lessons, with a few notes:
#1 It’s alive – keep the architecture process going.
- Always have a Chief Architect and analysis group on staff until the end of construction.
- Keep the distributed teams in contact.
#2 There’s only one ALMA array – wishing for improved simulation capabilities.
- Make the simulations a project deliverable.
#3 Keep it simple – things become more complicated anyway, but never simpler.
#4 Take all factors into account – why XML databases failed on us.
- …and they failed because XML documents were stored without schema validation, which caused a maintenance nightmare and made searching slow.
#5 Go mainstream – avoid niche solutions.
#6 Many small pains are easier to deal with than few big ones – deliver software more often.
#7 Testing ain’t easy – don’t believe that one small team can do it all.
- In particular, involve stakeholders in testing and and have a software release manager lead the delivery process.
#8 One for all doesn’t always work – hardware access must be easy.
#9 Commissioning comes before operations – transient and steady state are very different!
#10 Look who’s looking – GUIs are for the users.
“Ten things we would do differently today: Reflections on a decade of ALMA software developmen”t by B. Glendenning, E. Schmid, G. Kosugi, J. S. Kern. J. Ibsen, M. watanabe, M. Chavan, M. Griffith, R. Soto. Paper 9152-55, in “
Posted in ALMA, archives, astroinformatics, Astronomy, Computing, cyberinfrastructure, data archives, DBMS, High performance computing, informatics, information sharing, Operations, programming, Scientific computing, software engineering, software maintenance, software sustainability
Tagged ALMA, astroinformatics, astronomy, computing, cyberinfrastructure, data archives, information sharing, scientific computing, software, software maintenance, software sustainability