07/11/2023
Short answer: always because it matters !
(source: Wikimedia)Improving must be part of your workflow !
My codebase is so huge that it's difficult to make any changes
-> You're probably lacking unit-tests, projects don't scale well without it.
> My experts are so good that it's really difficult to hire someone
-> As soon as you have a sane codebase, even young-developers should be able to contribute.
> It takes ages for newcomer to make a simple fix
or
> That's the third young developer that leaves the company this year
-> You probably created a barrier that makes most newcomers un-comfortable in making any change in your golgoth
It's probably time to slice the beast !
> We don't have time for this !
-> Will you have more time when the next project starts and this one requires bug-fixes ?
> This is not for us, we do embedded (or xxx) development
-> The more complicated your platform is the harder it will be to debug and fix incoming issues once development is over.
> I know my job, I don't make bugs !
-> Even if you write only bug-free code (which I doubt) your environment is likely to change (compiler, dependencies, protocols ...) creating side-effects.
> I don't need all this, it's a loss of time !
> Unit-tests are not needed, I manually test everything !
> I don't need all this, I'm alone on my projects !
-> Either your products are really-really simple (meaning you're molding bricks) or your projects probably tend to regress in time.
As soon as you are working for a company, maintenance and reliability does matter, you should never consider you'll always be alone and nothing will change.
Illustration: Wikimedia Commons (CC)(source: Redbubble.com)(source: Medium.com)(source: Wikimedia)General DevOps cycle (source: medium.com)Style, Lint, (type)check : because you like it shinny
Documentation and KISS : because you like it crystal-clear
Unit-/Integration-/Functional-Tests : because you like when it works
CI/CD : because you like when it rolls on its own (and you're a lazy cat)
All this because it needs to scale
Not working with those would be like driving with eyes closed, it may work, but not for long
Respository organization and workflowKanBan board & Daily-scrums
(source: CERN Jira, CERN Mattermost)A good week is when you learnt something, or you're proud to share your work
Playground code examples
(source: base-vue playground)n_ToF applications
(public WebSite, DIMon, operation-control)n_ToF continuous deployment (EDMS 2417691)Example pipeline: libccutMRO applications
(TIM, RadMon, SSVG...)SAMbuCa & SCT functional test-benchs (937 motors-lab)