@inthehands I was asked to estimate the time to build a small program to reformat data and do a little math on it. The math part turns it from an uncontrolled utility to something that falls under our software QA process. The coding might take a week or two but the full process takes months: use case, needs analysis, software grading form (is it safety-related or not), requirements, design, spec, [code gets written here], user's manual including technical basis (what math is it doing, why, and how), Controlled Software Installation Form (formal request to IT to install the software in our production environment), acceptance and installation test plan and test reports, user qualification card and training materials, software release form (to formally allow people to use it for doing engineering work).
I'm sure I've missed some parts of the process but that's what we go through for every release of engineering analysis software (needs assessment and grading form are only done once). Updates are not as onerous as the initial release but it's still a lot of reading, writing, revising, technical review, and manager approval. Some people might think this is overkill but each part of the process demonstrates we know what we're doing and we're doing it correctly over the long term (documentation is retained "for the life of the facility" which is estimated at 60-80 years.)
Coding is easy compared to documenting your models, writing test cases and documentation of what each test is testing and what the acceptance criteria is, traning materials, etc. We should have a written record of every piece of analysis software we've ever used in production. Other reactor vendors have had to rerun analyses from the 80s based on regulator questions and long-term software lifecycle management is vital to keeping us honest and out of trouble.
Yes it's tedious work and yes; sometimes you have to review or revise some grotty piece of F66 code that nobody wants to rewrite, but it beats the hell out of high velocity web development. You learn interesting new science and you have time to actually take care of the entire software system. You avoid a lot of development churn and cowboy antics ("Let's port everything to Rust! Now Zig! Now Haskell!") It's not for everyone but I'm comfortable with it. The process is heavyweight but we remember what happens when you don't have good V&V, training, docs, and use cases - people die and you get to explain your software to Congress https://www.govinfo.gov/content/pkg/CHRG-108hhrg89216/pdf/CHRG-108hhrg89216.pdf