brunchybit
New Member
- First Name
- Micah
- Joined
- Jun 19, 2024
- Threads
- 0
- Messages
- 1
- Reaction score
- 1
- Location
- New Orleans, Louisiana
- Vehicles
- 2024 R1S Quad
- Occupation
- Software Engineer
Hi! 17+ years of experience in software engineering over here. Here's my take:Let me start by saying that I love my R1T! Driving a ICE vehicle is grueling after a year plus of having my Rivian! However, I get frustrated every time there is an update because I have to wonder what glitch will pop up after it is installed! So,can the more tech savvy among us please explain why Rivian can't do these updates without giving us more headaches? Is it the people they have hired to update the software or the software itself?
Building any software system is like trying to constantly improve a house with a million moving parts, all the time. Every component must work with every other component, and any tiny error in say, the plumbing, might actually take out your electrical panel, or even compromise the structural integrity of your roof.
But let's add some more layers of variability and complexity. Given the above metaphor, now imagine that every 3 months or so, the design of the house completely changes. Not only are you trying to patch things like leaky pipes, cracking concrete, or electrical wiring, you have a completely new spec every quarter or so that you need to implement. What is more, you can't actually sell the house to anyone unless you embrace the consistently changing house spec as a cost of doing business.
So, if the house plans change every 3 months, but we have to ensure that the house doesn't burn down, flood, or collapse, we can add an additional layer of complexity to this metaphor. Clearly if we have ever changing specifications and constraints, we can't expect a single worker to do this job. So, it's going to take teams of workers to coordinate, plan, and execute on the quarterly plan to actually get the house into specification for that 3 month cycle, and anticipate where the next specification could possibly change what we've just built!
I'm not saying that this is the way software will be built in the long term. But, until the rosy-tinted day that we create a sophisticated enough Artificial Intelligence to solve all of these problems, we're going to be stuck with the constant build, deploy, release, and fix cycle for the foreseeable future.
For those of us excited about AI, just keep in mind one more aspect of variability that AI will add to the mix I've outlined above. We actually don't know, deterministically, how AI works. With code, we understand the inputs, outputs, expected behavior. And we still write buggy code, despite having the ability to deterministically test and deploy it!
Now if you factor in some sort of massively intelligent, sophisticated, yet extremely naive and fallible free-agent into the mix of the ever changing house - we have a ways to go.
Sponsored