Doing the SDLC in the AI Era: How to Use AI Efficiently
I haven’t written a blog post in a while, but this topic has been on my mind because so many teams are still struggling with it: where does AI actually fit in the software development lifecycle?
AI is here, and at this point that is no longer the
interesting part. The more important question is how to use it strategically.
As these tools become more expensive, organizations need a clearer plan for where
AI creates real value and where it simply adds cost, noise, or unnecessary
complexity.
When generative AI first exploded into the workplace, many
companies rushed to experiment with it without fully understanding how it fit
into their delivery model. Some teams wanted to use it everywhere. Others
pushed back hard, especially when the conversation turned to job security. A
few years later, I still see many organizations wrestling with the same
underlying problem: they are treating AI as a blanket strategy instead of a
tool that should be applied selectively.
So here is my view: if you want to improve time to
production without burning through budget, you should be intentional about
where AI enters the SDLC. In this post, I am using the traditional SDLC model: Analysis,
Design, Development, Testing, and Deployment.
Analysis
Analysis is still, in my view, a deeply human phase. This is
where teams define the problem, surface the real requirements, and make sense
of business context that is often messy, political, and difficult to capture in
a prompt. Could AI help? Sure. But to make it genuinely useful, you would need
to feed it a substantial amount of context: organizational history, team
culture, domain knowledge, and stakeholder nuance.
At that point, I start to question the return on the effort.
Yes, AI can help generate user stories or draft tasks once the thinking is
already done. But in most cases, I do not see analysis as the phase where AI
gives you the strongest payoff. I would keep its role limited here and rely
primarily on people to do the hard thinking upfront.
Design
Design is where AI starts to become much more useful. If
your requirements are reasonably clear, AI can help you think through
architecture, edge cases, tradeoffs, and supporting concerns such as
performance, scalability, cost, high availability, and disaster recovery. This
is one of the few phases where iteration with AI often feels worth it.
That does not mean humans step out of the process. The
quality of the output still depends heavily on the quality of the input. But if
you already understand the problem space, AI can help accelerate design
thinking and expose issues you may not have considered on the first pass.
Development
Development is where my opinion tends to differ from the
louder AI narratives. Can AI generate code quickly? Absolutely. Can it
sometimes produce solid output? Yes. But that still does not automatically make
it the best place to lean in heavily.
My concern is cost. Many AI coding tools are effectively
metered by usage, and that usage adds up fast. Prompts get longer, context
windows expand, files pile on, and before long you are paying a meaningful
amount for generated output that your developers still need to review, correct,
and own. If you already have capable engineers, I am not convinced that broad
AI-driven coding is the most efficient investment. I would rather use AI
selectively in development, for example, to help with debugging, small
refactors, or code explanations—than make it the center of the coding process.
You have great developers within organizations that love to write code let them
decide on how much and where using AI makes sense.
Testing
Testing, on the other hand, is where I think AI can deliver
some of the clearest wins. In many organizations, testing is still heavily
manual, and entire categories of testing are either underdeveloped or skipped
altogether. That creates a perfect opportunity for AI to help expand coverage,
script repeatable scenarios, and catch edge cases that might otherwise be
missed.
No, it will not produce perfectly bug-free software. Nothing
will. But it can absolutely improve consistency, speed, and the overall quality
of your testing approach. And if better testing prevents hundreds of hours of
bug fixing later, the cost of using AI here may be one of the easiest to
justify. I would also use AI to help diagnose and fix defects once they are
found, with developers staying firmly in control of the final decisions.
Deployment
Deployment is another phase where AI can be genuinely
practical. Deployment scripts are usually narrower in scope than application
code, and they often require less context to produce useful results. If your
team does not have a dedicated platform or release engineering function, AI can
be a helpful assistant for building and refining deployment scripts.
There is also a compounding benefit here: once a script is
written and validated, it can often be reused with only minor changes. That
makes deployment one of the more sustainable places to apply AI, especially for
smaller teams trying to move faster without adding new headcount.
Conclusion
So yes, AI can save time and increase productivity across
the SDLC. But that does not mean it should be used equally in every phase. If
you want the benefits without the runaway cost, the smarter move is to apply it
where the payoff is highest and the context is manageable.
·
Design – Use AI to explore architecture,
tradeoffs, and edge cases such as performance, cost, high availability, and
disaster recovery.
·
Testing – Use AI to improve coverage, generate
scripts, and strengthen the overall quality of your testing process.
·
Development – Use AI selectively for bug fixing,
small refactors, and support tasks rather than full-scale code generation.
·
Deployment – Use AI to help create and refine
reusable deployment scripts and supporting automation.
Your developers should still be focused on building thoughtful,
high-quality applications and making the kinds of decisions that require
judgment.
If your organization has the budget, tooling, and patience
to automate more of the lifecycle with AI, you can absolutely push further. I
am not arguing that it cannot be done. I am arguing that for most teams, a
disciplined and selective approach will deliver better results than trying to
force AI into every phase simply because it is available.
Comments