7 min, 1,693 words
Summary: If your software company uses software development automation the wrong way, you might build a product fast – but full of bugs. See how to use AI and automation for software development in a way that maximizes Time to Value with high-quality code and consistent results.
- GenAI tools need careful supervision when writing software code – or else they become “pasta makers.”
- Rules-based AI for software development automation can ensure consistency by encoding human expert knowledge.
- Software engineers and developers should embrace AI and automation while providing essential human discretion, context-based decisions, creativity, and innovation that no AI can replicate.
Which is more important when building software: building it fast, or building software with high-quality code? In the traditional approach to software development, companies typically want to bring a new product to market fast. They prioritize Time to Market. They want to get it done quick and dirty, create a minimum viable product (MVP), start gathering customer feedback, and hopefully start selling a profitable product as soon as possible. Using software development automation and tools like AI for software coding can definitely help you build software fast.
But here’s the problem with building software fast. Let’s say your company builds the MVP, and it’s successful. Immediately after the MVP launch, demands from customers are going to start coming in fast and furious, asking for new features. But there’s a problem: because the MVP was built so fast, it’s full of bugs. Your software developers will push back on the customer requests for new features, arguing “We need to rebuild this product the right way.”
Too late. Once the customer demands start, you’re stuck with the MVP. Your software team won’t likely be able to rebuild your software product at this point, so late in the game, under time pressure from customers who want new features (and salespeople who want to sell).
Your company should have prioritized Time to Value instead of time to market. Software development automation can help increase the quality of your software products, not just reduce your Time to Market.
Software development automation doesn’t have to lead to shortcuts or lower-quality code. With a smart approach to AI automation for software engineering, you can build more stable, scalable, profitable, and serviceable software products without compromising on code quality.
Let’s look at how software companies can achieve ROI with software development automation – with a pragmatic approach that maximizes the human talent and creativity of your team.
How to Use Automation in Software Development: Not a “Pasta Maker”
Using generative AI for software development, like ChatGPT or other tools, can be helpful. But beware. Too many software company executives and investors get mystified by AI. They get dazzled by how visually impressive it is, and how fast it can spit stuff out. But they don’t pay enough attention to the quality of the code.
It’s important for software company executives to remember that ChatGPT’s capabilities are not entirely new. Code generation has been around for a while. But bad code generators, which I call “pasta makers,” generate spaghetti code. If you leave ChatGPT to its own devices, ChatGPT is an excellent pasta maker.
Don’t be in excessive awe of the AI. People tend to think that computers don’t make mistakes. Yes, they do! If you want to get the most value from ChatGPT or other generative AI for automation in software development, the AI tool needs to be in the hands of a professional software engineer. You need an experienced human to review the AI’s work, line by line with a fine-tooth comb. This is the best way to make sure you can trust the AI-generated code quality.
Here’s a good example of how to use ChatGPT and machine learning AI the right way, based on your skill level and experience as a software engineer: ChatGPT is great at helping non-native English speakers write a clear, legible form letter to the city government. But if you’re a lawyer, don’t use ChatGPT to research and write your legal briefs – because it can get important details wrong!
In the same way, ChatGPT can give you a decent starting point for writing code in a certain function. But it needs careful review from an experienced set of eyes. ChatGPT or any generative AI tool will not architect a software product correctly. It will not do the higher-end thinking of building a stable, scalable, profitable, serviceable software product. In highly skilled hands, ChatGPT can be highly useful, as long as your software engineers can review the code and verify that it will work well in their environment. But in less-skilled hands, ChatGPT can be dangerous – because it can generate a false sense of security. And if used as a “pasta maker,” AI can create negative value.
Use the Right Kind of AI for Software Development Automation
Instead of making pasta, let’s talk about the right approach for using AI in software development. It’s fine to use LLM-based code generation like ChatGPT with close supervision from professional software engineers. But don’t expect any consistency from what GenAI can generate for you.
LLM-based code generation is very inconsistent. So it doesn’t make sense to use it in parts of the code where you need high levels of consistency. For that, you need rules-based AI automation that follows known rules based on human expert knowledge. Rules-based AI for software development produces more consistent results. And this is critically important if you want to have success with software automation. Just like building a car, you want consistency from your automation – you don’t want the factory floor robot to weld different spots on the car every time.
Think of it this way: a traditional software developer writing code without automation is like a bricklayer, laying bricks one at a time. Rules-based AI can do the bricklaying automatically, in a faster, repetitive, consistent way. And ChatGPT and machine learning AI can help you build big chunks of code at a time. But as a software developer or software engineer, it’s up to you to review everything that the AI puts out and maintain the integrity of your overall solution architecture.
Software teams need to remember: AI is not better than you. Don’t give up your power to the AI, don’t assume the AI can do everything, and don’t be intimidated by the AI. It’s not magic, it’s a tool to help you grow and create more value faster. There’s room for rules-based AI and machine learning AI for software development automation. Both types of AI for software development are useful and powerful in the right hands. But ChatGPT left unsupervised, or in the hands of a junior developer, can be risky.
Don’t Use “Too Much” Software Development Automation
There’s such a thing as too much automation for software development. Back in the early 2000s, Microsoft was working on a major software automation initiative called Project Green. The goal was to bring together all of Microsoft’s ERP systems, consolidate them under one codebase, and automate the entire process. I don’t know how many millions of dollars Microsoft spent on Project Green, but it failed; the project never came to fruition.
A few years ago, I met and talked with one of the Project Green software architects. I remember him saying that on the continuum of software automation from 0% automation to 100% automation (with no code writing at all), he believed that the ideal is 100% automation.
Based on the Modularis team’s 20+ years of experience using automation in software development, 100% automation is not practical—and I don’t believe it ever will be. If you push much past 80% automation, you’re painting yourselves into a corner.
For example, proprietary systems like PowerBuilder let you build software applications really quickly. But they have big limitations on what you can do, you’re stuck inside the box. You can use a system like PowerBuilder to bring new software products to market fast, but you have to make big compromises on architecture and user experiences. As a result of these limitations and compromises, PowerBuilder products now are becoming legacy products that can only exist within that black box. If your software company can live within that box, you can have high development velocity, and it’s completely proprietary – but there are tradeoffs.
In the same way, using too much automation for software development can box you in. You need the human elements of creativity, discretion, and context-based decision-making that software engineers provide. You can’t just push a button and out comes a finished, bug-free, commercially viable software product that’s ready to go to market.
Embrace AI for Software Development Automation…And Focus on Fundamentals
I am not a skeptic about AI for software development; I’ve been working in the automation space for 20+ years. I’m enthusiastic about the potential! And I want software companies and technology teams to embrace AI and automation in all its forms.
A few years ago when we debuted Modularis’s PlatformBuilder® version one, I remember that developers would come up to me afterward, half-joking and half-concerned, saying “You’re going to put me out of a job!” That’s the wrong attitude. I want software developers to have no fear of automation. Developers shouldn’t be afraid of ChatGPT or machine learning-based AI.
Instead, we need to focus on the real job and mission of software engineers and software developers: to create as much value for our customers as possible. We’re not just in this business to deliver Time to Market, we’re here to achieve Time to Value. Automation will help us do that.
This doesn’t mean “use ChatGPT for everything.” But remember why you’re here: to build commercially viable software products that are stable, scalable, profitable, and serviceable. Focus on those fundamentals of what your software product needs to achieve. That pragmatic, strategic, fundamentals-focused approach to AI for software development is what we’ve used to create PlatformBuilder.
Modularis’ PlatformBuilder enables accelerated software development by leveraging automation and AI to maximum effect. PlatformBuilder is a vehicle for guaranteeing stability, scalability, profitability and serviceability – qualities needed to build commercially viable software products, maximize value creation and Time to Value. We’ve poured 25 years of insights and learning into PlatformBuilder as a way to bring the best of software development automation and rules-based AI to our clients.
To those junior developers who might worry that “AI is going to replace me,” fear not. Our industry is not going to run out of software projects anytime soon! We’re still just barely scratching the surface. But smart usage of AI for software development automation can help all of us deliver viable software products faster, with higher-quality code, achieving better Time to Value for years to come.