Skip to content
You've successfully subscribed to Amarinder Sidhu
Great! Next, complete checkout for full access to Amarinder Sidhu
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

A Lesson in Ingenuity

NASA's Mars Helicopter is powered by open source contributions of 12,000 developers. What does that tell us about the future of software?

2 min read
A Lesson in Ingenuity

On April 19, 2021, a small robotic helicopter completed the first powered flight on a planet other than Earth. The helicopter’s name is Ingenuity and it is operating as part of NASA’s Mars 2020 mission.

On the same day, GitHub placed Mars 2020 Helicopter Mission badge on the profiles of 12,000 developers who contributed to open source software projects and libraries used by Ingenuity. It is a nice looking badge.

None of the developers themselves knew that they had contributed to the projects that NASA’s Jet Propulsion Laboratory (JPL) used to build the flight control software for Ingenuity. GitHub took the initiative and worked with the JPL to identify all the developers who contributed. They wanted to “make the invisible visible”.

A related observation, which is less understood outside the developer communities, is that modern software is powered by Open Source. GitHub, a leading code repository provider for collaborative development, estimates that 99% of the software systems shipped today rely on open source components.

Even more telling is that the biggest backers of open source projects are the big tech companies. The cloud at the internet-scale has flattened the software innovation playing field to such an effect that even big tech has to rely on crowd-sourced innovation. Whether it is NASA building flight control software for Mars with FPrime, or Google enhancing its commercial services with Tensor Flow based machine intelligence: open-source projects drive the software technology innovation.

We shouldn't conclude that open source is the panacea from this. Because it usually isn't "in a box" software that most buyers want. So there is plenty of space for building commercial software for buyers who don't want to deal with the effort of making open source software legible.

A more significant takeaway is that participating in and enabling open and empowered developer collaboration is increasingly the key to build innovative software.

Because even if you look at the state-of-the-art of commercial cloud software (microservices accessible through Web API), it exemplifies the reusable innovation. Commercial cloud software makes proprietary software available for reuse for a fee. Stripe and Twilio build API products, i.e., building blocks for more finished applications, and are considered most valuable from the newer crop of tech companies.

We are using software to solve increasingly complex problems - whether for aircraft control algorithms for Mars, or software therapeutics for personalized health, or smart grids for climate change. No single team, entity, or organization can deal with the challenge on their own - even if they have all the money. The right recourse is the type of development collaboration exemplified by open source communities or enabled by commercial API-based software to create emergent value inherent in such use cases.

For complex problems, software agility is critical for discovering new business value. And software agility comes from "maximizing the amount of work not done" through artful reuse, and believing in "individuals", "interactions" and "collaboration".

Authors of Agile Manifesto told us about this 20 years ago. Ingenuity serves as a potent reminder.

 Cover Art by NASA: