I wonder whether there are, or are recognizable in near future, industry specifics for CI/CD solutions in a space engineering company like SpaceX, compared to other companies where mass manufacturing plays a role, for example to car (supplier) companies?
Terms:
- CI/CD - continuous integration and delivery to support continuous improvement of software
- DevOps - body of methods, practices and also a mindset to leverage shorter delivery cycles of software; DevOps is agnostic with regards to project methodology, programming language and operation system1.
Topicality:
While this is not directly about space exploration, this topic does have an impact; imagine following use cases:
- your custom metal 3D printer, or a robotic assembler gets stuck due to some software error. How long does it take to deliver the patch? What is acceptable outage time?
- you should secure accurate operation of your mission software by sufficient acceptance tests which include automated testing like test coverage2. Do you need awareness through measurable facts here, while ECSS compliance requires 100% test coverage? How much is enough/a must for human spaceflight?
Research effort:
My research so far using these sources of information:
- the stackshare.io site (which does not need to be the source of current, correct and complete data, still somebody has published it once)
- LinkedIn search for peoples' titles and expertise around CI/CD and DevOps
- Job sites of major companies
What I have found so far:
- SpaceX does not list a CI/CD system. Ok they look currently for a build/release software engineer.
- BlueOrigin lists even less on StackShare; interestingly they use CloudFlare (DDoS protection). According to this position, they seem also to start thinking in this direction.
Following from the wording of the job descriptions and other sources, there is no (enteprise scale) CI/CD yet there, neither DevOps is a big topic yet. But they move in this direction, so there is no simple "no" answer I think.
There is also no simple strategy like "implement your own", or "take product X" because these systems being around since about 20 years are still in their development; for example, the issue and requirements board aka backlog of a major open source product counts about 30000 items! Possibly, many of them reflect common topics, but on this scale one can expect that some will be also industries specific or related.
For sure, in the beginning there must be a well-engineered concept, a CI/CD system is after all a smart helper3.
Footnotes
1 For example, CI/CD is used to build and test Kubernetes "with a need to execute over 10,000 CI/CD jobs per day across over 100 repositories of code". Also, Linux community has decided to use CI/CD for the Linux kernel.
2 Quote from the linked source about Margaret Hamilton: "without that software, not to mention Hamilton's well-documented insistence on rigorous testing, humans would've never reached the moon safely".
3 ".. Uber’s self-driving technology hadn’t been programmed to detect jaywalkers at all"