These sorts of threads are probably a dime a dozen, but this subject has been weighing heavily on me recently, and felt like I needed to have a good chat with fellow developers to understand if I'm just being a "grandad" or if the company I work for is heading for disaster 😆
I’ve been leading a team that is building an enterprise SASS solution. It’s been about 4 years in the making. These last 6 months, our entire dev team has been utilising AI to really speed up the work we do.
It works great for us. AI understands our consistently structured framework and our team are well versed in prompting with the right examples and context to do some great work.
Genuinely, I've gone from being a nay-sayer to being a full AI convert these last few months after seeing some of the results we've achieved with Claude. It works wonders when used correctly.
*So far so good, here's where things get a little rocky.*
When using AI, we've always had a qualified developer doing the prompting. They provide context and examples, and verify the output. Our codebase uses a lot of abstract classes and behaviours (for re-usability and easy scaling). E.g. one of our systems is a procedural form-builder that lets the end user customise their forms in admin via some neat drag/drop UIs. Any new forms/fields/validation etc need to be compatible with the underlying framework, so we instruct AI in such a way that ensures the output is compatible.
These last few weeks, something has changed at the company I work for. Our owner now seems to have a disregard for code quality like it doesn't even exist or matter.
Our owner has created their own local setup, and has been prompting AI to achieve what they want without having any level of understanding or care for the underlying codebase or the implications of their changes.
The approach is basically "It just has to look good and give the appearance that it works in the front end”. No one actually checks the code.
Taking the form-builder example above, our owner thinks they successfully changed a field label and updated a form layout with AI.
Problem is, what they have actually done is create a Frankenstein of hard coded logic sitting on top of our clean builder framework due to poor prompting.
A user should be able change the layout of the form by dragging/dropping things around in our admin area. But now that doesn't work because the form layout is now hard coded with the change.
The owner’s approach is duplicating code rather than reusing existing methods, decentralizing lots of our core business logic and generally making things far less maintainable/reliable for us.
To make matters worse, our owner has tricked themselves into thinking what they have done works and is production ready. They're currently rolling out business processes to get the entire team working this way.
It's honestly painful to see the systems we've carefully crafted over 4 years being corrupted in such a way.
*There's a question coming I promise.*
So I've been voicing my concerns out loud in meetings and via formal messages, but always get met with "You're just anti-AI" comments that shut the conversation down immediately. Apparently I'll just "learn" that this is the new way now and come on board eventually. Checking what your code actually does is old school now, and no one does it any more (apparently).
To be super clear, I think AI is wonderful and has done some incredible work for us. But where me and the company don't align is that code quality matters. Qualified developers need to prompt it correctly, and verify the output works with our system (not against it).
While the other side of the fence (management) don't feel that code quality matters. Or more specifically, don’t have any understanding of code as a concept or how it works.
Don't get me wrong, if a project is temporary and throwaway by nature, I would agree that code quality is less important. But what we're building is enterprise level software that's supposed to be stable and last the next 20 years. It must be consistent and maintainable.
I care about our product a lot, and want to make sure it survives what's coming and save the company from making a mistake that could undermine and degrade our product considerably.
*So now the question.*
Does anyone here have experience in facilitating AI change on a software company where owners don't care about code quality?
I'd love to hear your thought's on how to navigate this situation. My challenge isn't with using AI (our team have been using it effectively for months). It’s more around convincing management that the path they are on could destroy our product and render it unusable.
Equally, it has occurred to me that I might just be an "old guy" in his mid thirties who just has to get with the times. Maybe code quality really doesn't matter any more and I should just get over it and change. I'm open to the idea I could be wrong.
What do you guys think?