If you follow this blog, you know that it is about the intersection of PM and ‘sustainability’. Sustainability, for our purposes, is the consideration of the impacts of your project on the Triple Bottom Line (TBL), with the three elements being social, ecological, and economic.
In simple terms, it means considering the long-term operation of your projects outcome. It doesn’t mean you have to be the one operating it, just that you have considered what that operation means (from a TBL persective) as you initiate, plan, and execute your project plan.
This post focuses on the ecological element of the TBL, and it’s a different angle for me, because it is about software and programming languages, something I’ve not written about before.
I found a fascinating one-page (well, two sides on one physical page) article in Nature’s 1-August-2019 edition, about Julia.
No… not this Julia.
And not this Julia either…
And not even this Gulia.
Instead it’s the programming language Julia. You can’t consider me an expert in this area; my background includes programming, but it was in Assembly language, BASIC, Fortran, and Pascal. However I remain fascinated by the art and science of writing code.
What does this have to do with projects and sustainability? Well, the article is about a project undertaken by CliMA –the Climate Modeling Alliance.
Here is the CliMA mission statement:
We know that climate change is poised to reshape our world, but we lack clear enough predictions about precisely how. At CliMA, our mission is to provide the accurate and actionable scientific information needed to face the coming changes—to mitigate what is avoidable, and to adapt to what is not. We want to provide the predictions necessary to plan resilient infrastructure, adapt supply chains, devise efficient climate change mitigation policies, and assess the risks of climate-related hazards to vulnerable communities.
We are a coalition of scientists, engineers, and applied mathematicians from Caltech, MIT, the Naval Postgraduate School, and NASA’s Jet Propulsion Laboratory. We are building a new Earth system model that leverages recent advances in the computational and data sciences to learn directly from a wealth of Earth observations from space and the ground. Our model will harness more data than ever before, providing a new level of accuracy to predictions of droughts, heat waves, and rainfall extremes.
CliMA needed a programming language to build a climate model from scratch. They chose Julia, and this article describes the WHY and the HOW.
Julia is an open source programming language launched in 2012. It combines the capabilities of scripting languages such as R, Matlab, and Python, but it is also known for the speed of compiled languages such as C and Fortran. Yes, Fortran. You can imagine that young coders are not exactly thrilled to be coding in a programming language that hails from the same era as this car:
Attracting young, talented programmers is part of the project’s resourcing problem, and using Julia has helped solve that problem. Aside from attracting talent, Julia simply does things faster.
From the article:
Michael Stumpf, a systems biologist and self-styled Julia proselytizer at the University of Melbourne, Australia, who has ported computational models from R, has seen an 800-fold improvement. “You can do things in an hour that would otherwise take weeks or months,” he says.
Julia simply excels at what the article calls “computationally-intense” work. With the advent of AI (Artificial Intelligence) and big data in projects, it behooves us as PMs to introduce ourselves to Julia (and vice-versa). Should you want to emulate the success of the CliMA researchers for their project, here is some assistance.
• Julia: julialang.org
• Juno, a free Julia language ‘integrated development environment’ including a code editor, debugging tools and interactive console: junolab.org
• Debugger: go.nature.com/2jdfr5g
• IJulia, a ‘kernel’ for writing Julia code in Jupyter: go.nature.com/2jldaj2
• Packages: go.nature.com/30brtxe
• Julia language documentation: go.nature.com/2nxrqup
• Think Julia: go.nature.com/2y7skii
• Slack: julialang.slack.com
• Discourse: discourse.julialang.org
• Gitter: gitter.im/JuliaLang/julia
• An interactive and executable Julia notebook, highlighting some key features, is available at go.nature.com/2lxllfd