Here’s one way to think of the impact that AI will have on the overall 
programming process.

A while back I worked at a place that proudly liked to remind everybody that 
they had attained “CMMI Level 2 Certification” and they were working hard on 
Level 3. I’d never heard of that before, so I did some digging. If you’ve never 
heard of it, here’s a link to their main site:

https://cmmiinstitute.com/

Reading over the various requirements, it seemed to me that the goal of this 
was to make programmers (people) as fungible (replaceable) as possible. 

Virtually every job involving software development and most IT jobs require 
some time to become familiar with the project’s history, leading up to and 
including its current state, before you start poking around making changes. 

Since turnover of personnel is always a big issue for companies, one of their 
biggest challenges is having sufficient documentation of past activities as 
well as current state of things.

Reproducibility of work is a key concept, and my interpretation of CMMI goals 
was to minimize the amount of time needed to integrate a new worker into a team 
to the point where they can become productive. 

The last job I had told me they figured it would take me 6 months of learning 
to get to the point where I could start working on their main (legacy) 
software. Over that time, I was just supposed to study the code and investigate 
possible issue and repairs. 

At one point after a few months I found what I believed was a bug. I documented 
it and was able to duplicate it most of the time. But I was told flat out, 
“THERE ARE NO BUGS IN THAT SOFTWARE!” 

Well, yes there were. Because it had recently been migrated from Win 7 to Win 
server 2012 (effectively Win 10) and this had to do with how the OS seemed to 
be queueing up internal message requests. I did some research and found a very 
subtle change had been made to Win 10, and no matter what I said, these guys 
ignored me. Of course, nobody could explain the test data I had and even 
accused me of rigging up a fake problem. 

Anyway, this organizatin wasn’t interested in CMMI, but if they were, this 
would have posed a big problem for them. Because part of the purpose behind 
CMMI is to ensure that issues like this don’t come up.

But the place I worked earlier that was aboard the CMMI train was going all-in 
to reach Level 3. That meant they put out policies like this: “Every line of 
code you change needs to tie back to a specific change request. Any that don’t 
will not be allowed to be pushed into a release.” 

The implication being, refactoring can get you fired. And finding bugs in the 
code yourself ... well, trying to fix some I found got me fired anyway.

The refactoring part really pissed-off a lot of devs there because the code was 
already over a decade old and was written by people who weren’t very 
well-versed with OOD/OOP and was quite gnarly. So the common practice there was 
to fix up bits of code while you were fixing related code. This “no 
refactoring” rule didn’t fit the aesthetics of most of their developers. 

The VP of Engineering had been overheard saying something like, “I don’t trust 
software developers to do refactoring any farther than I can throw them, 
because it always leads to more errors!” He also didn’t trust us to write test 
suites, and refused to fully staff a QA team to do it. Go figure.

Would you be surprised if I said this was the guy behind their CMMI 
initiatives? 

Anyway, I’m guessing these guys will be jumping onto the use of AI to help do 
their work, because it tends to write code that often looks like templates — 
IOW, it will write the same code to solve the same problem pretty much every 
time. (Just be sure you set the “temperature” setting to zero so it doesn’t 
start hallucinating.)

It all gets back to “reproducibility”. AI can be relied upon to be highly 
reproducible in terms of the code it writes (quirks and all) far more of the 
time than human programmers. At the end of the day, I’m guessing that AI is 
going to help far more companies be appraised at CMMI Level 5 than has been 
possible in the past. 

And those that replace most of their human programmers with AI will probably 
have far fewer problems because nobody will be arguing about whether changes in 
the environment can cause bugs to arise or not, because AI will refactor the 
code, build tests to verify all of it, and fix it, while documenting the entire 
process fully, clearly, and unambiguously — far better than 90% of most 
developer can or do.


-David Schwartz




---------------------------------------------------
PLUG-discuss mailing list: PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss

Reply via email to