AI in Utilities
Bridging the Gap Between Domain Experts and Software Engineers using Pair Programming Concepts
November 2025
- When utilities think about Artificial Intelligence (AI), they tend to focus on areas such as forecasting, predictive maintenance, or customer engagement. However, one of AI’s most effective uses comes from helping to bridge the knowledge gap between domain experts and software engineers. By using AI as a pair programming tool, AI can accelerate collaboration and reduce friction in utility software projects.
The Knowledge Gap Between Domain Experts and Software Engineers
- At utilities, operators, engineers, and analysts have domain expertise, while software engineers excel at writing and deploying code. Each has only partial knowledge of the other’s domain. Without complete overlap, software projects often turn into lengthy discussions, misunderstood expectations, and development cycles that take longer than necessary. In effect, domain experts and software engineers already engage in pair programming, even if they do not call it that.
Setting the Stage with Pair Programming
- In traditional software engineer practices, pair programming involves a driver and a navigator. The driver writes code while the navigator reviews the code written, checks for issues, and ensures the code follows a specification.
- In a utility setting, domain experts and software engineers perform similar roles during a software project:
- Specification Phase
- Domain experts drive by defining rules, processes, and constraints
- Software engineers navigate by asking clarifying questions
- Development Phase
- Software engineers drive by writing code based on the rules, processes, and constraints as well as deploy the solutions for the domain experts to test
- Domain experts navigate by testing and validating results
The Problem with the Current Process
Traditional software development pair programming works well in the use case of a new developer (either as a new software engineer or a new employee) as the driver and a seasoned employee as the navigator. This allows the seasoned employee to convey their knowledge effectively to the new developer.
This may make it seem that using a pair programming process between a domain expert and a software engineer would work effectively, but projects often encounter delays or miscommunication as the two types of individuals have different models of understanding:
- Conveying domain knowledge into technical requirements for software engineers is time-consuming
- Misunderstandings about expected outcomes can create frustration and tension
- Decisions made by software engineers may not be effectively communicated to domain experts
Introducing AI as a Pair Programming Tool
AI can reduce, but not eliminate, the issues which persist in software development involving domain experts and software engineers. The following are ways AI, especially generative AI, can accelerate collaboration:
- Translate rules, processes, and constraints into scaffolding and prototypes
- Provide rapid prototypes which can be validated by both the domain expert system design perspective and the software engineer from an understanding of what should happen
- Discover existing models used for communication and storage, such as the Common Information Model
- Shorten the amount of time it takes to document the design and the code
By providing short, quick feedback, both domain experts and software engineers can work at a controlled, but rapid, pace.
AI does not replace humans, as humans must validate the results at every stage, but provides a tool which allows the project team to focus on overall system design and validation, as opposed to translating knowledge and lengthy development cycles.
Case Study
Building a Quick Historical Viewer
- Imagine a domain expert who wants to quickly view day-ahead market (DAM) location marginal pricing (LMP) from an ISO such as CAISO or ERCOT. The development team assigns a software engineer with deep software development experience, but new to the utility space.
- During the initial meeting, the domain expert describes what they want:
- Log into a website, pick a day, and view the LMP data for a given node for a period of 24 hours on a graph
- Compare the LMP data against the weather forecast on the same graph
- However, the software engineer leaves the meeting without understanding all the terminology since they were hesitant to ask.
- The software engineer starts asking questions to the utility AI system:
- What do the terms day-ahead market, locational marginal pricing, ISO, CAISO, and ERCOT all mean?
- Are there existing models which can help with communication and database stores?
- Have there been any other projects in the organization which have similar functionality? Unknown to the software engineer, the domain expert also asked the utility AI system the same question.
- During the next meeting, the software engineer first validated all the terminology they had learned about with the domain expert. Then, they presented a CIM-based approach to the domain expert, which coincided with several other projects in the organization the domain expert learned about during their discovery with AI.
- Development began shortly afterwards at a quicker pace than other projects the domain expert had been involved with in the past, with generative AI assisting with data retrieval, scaffolding, and initial prototyping.
Challenges & Issues
Even though AI can assist with bridging the gap between domain experts and software engineers, the same challenges bringing AI into an organization persist:
- Data Sensitivity – External AI tools may risk exposing proprietary and sensitive data
- Adaptation Levels – While organizations can deploy internal AI solutions, as discussed in the case study, many organizations have different levels of adaptation maturity
- Trust – Not everyone trusts AI suggestions and teams must learn to trust the output and integrate them into established workflows
- Human-in-the-Loop Validation – The output from AI is still only as good as the input. AI can also suffer from hallucinations. Users need to validate the outputs to ensure validity
With careful planning, review, and collaboration, using AI can reduce the friction software projects that may arise.
Looking Ahead
AI’s role in utility pair programming has the potential to evolve in the following ways:
- Domain-Specific AI Models – Domain experts will help train AI to understand utility domain terminology, rules, and processes. Even though they may be different between utilities, the concepts will still apply across all over them
- Package Development – Software engineers can also train AI in generating reusable software packages, thereby freeing engineers to focus on more complex problems
- Repository Management – Both data and software repositories can be aided using AI. Finding internal and external datasets as well as packages to support development will be crucial as groups within the utility become more interconnected
AI does not replace domain experts or software engineers but is a tool. When used as a bridge, it can aid in accelerating learning, prototyping, and collaboration between experts in their respective groups.
As your utility begins exploring how to integrate AI into your pair programming experience, we can aid teams in an AI deployment, provide measures to the impacts of AI, and transfer our knowledge of effective use of AI as a tool between teams.