NextEra Energy Inc · Sr UX Designer · 2026

Work Execution Planning

Turning the manual assembly of work readiness across 8 fragmented enterprise systems into a single planning view cutting a two-hour check down to minutes, for grid operations managers.

Work execution planning readiness overview

Overview

Grid operations managers rely on numerous interconnected systems to coordinate field work. Before any work can begin, multiple operational dependencies — materials, approvals, engineering reviews, scheduling — must all be completed across 8 disconnected enterprise systems. None of those systems talks to the others, so determining whether a single work item was actually ready to execute meant assembling the answer by hand, for every work request.

The process had become slow and frustrating for managers, making it hard to tell which work items were ready to start, and which were held up by blockers or pending dependencies in the source systems.

Project Type & Involvement

Work for NextEra Energy Inc. Enterprise Product Design

Timeline

May 2026-June 2026

Platform

Enterprise web application

My Role

Sr UX Designer working across IT stakeholders, grid operations managers, and a distributed engineering team from discovery through release.

Impact

~2 hrsof manual reconciliation per work request — assembled across eight systems, in between everything else a manager is responsible for. The same answer now takes minutes.
8 → 1data from 8 separate enterprise systems consolidated into a single view
3management areas live, each covering around 50 substations

A manual business process, digitised

Readiness assembly moved out of spreadsheets, notes and multiple enterprise systems into one view, complementing the existing work management system rather than replacing it.

Adoption driven by user trust

The grid operations manager who first raised the problem advocated for the tool and drove its rollout.

Business and IT relations strengthened

The business owner fronting the operations–IT relationship is scoping additional work in the same shape.

Still Measuring: If this can also reduce redundant crew rollouts

The opportunity

The IT team was building an AI assistant for looking up work requests. It was far enough along to demo, and the operations leads who saw it weren't convinced.

The assistant was meant to be a faster way into a single work request: give it a number and it returned what the legacy system would otherwise take several tabs to show — the details, who it was assigned to, and whether it was complete or not started. It never touched the eight systems holding the dependencies that decide whether work can go ahead. Nobody had defined which data answers the only question a manager needs answered: is this work ready to execute?

Built without discovery

It handled the narrow case: give it a work request number and it returned detail about that item. Nobody had tested that against how managers actually plan.

No model of readiness

It reported on the work request itself, not on the dependencies that decide readiness. No follow-up question could get there, because those systems were never in scope.

What we built

Defining work readiness changed what needed to exist. Instead of a faster way to ask questions about a single work request, the solution computes the answer and puts it in one view — for managers who have to make the readiness call in real time.

×Before

  • Check 8 enterprise systems by hand, one work item at a time.
  • Reconstruct the readiness picture by hand, for every work request item.
  • ~2 hrs per work request, fitted in around everything else.
  • Track down who owns a blocker — often someone new, because area managers rotate.

✓After

  • One view, with readiness computed across all 8 systems.
  • Explicit criteria, so “ready” means the same thing to everyone.
  • Blockers surfaced at planning time, not at execution time.
  • Owner shown on the blocker, and notified without leaving the view.

The experience

The planning view follows how a grid operations manager actually works: see what is ready to execute, narrow to what isn't, open the blocker, and act on it without leaving the page.

Interactive — narrow to a management area, then open a work request to see what is holding it. Best viewed on desktop.

Detailed process ↓

AI-assited design thinking process

I used AI to accelretate solution delivery and work as a solution builder rather than as a traditional designer.

Five-stage process: Discover, Define, Ideate, Validate, Build8 enterprise sourcesone readiness modeltwo directionsAI-assistedhuman decision0102030405DiscoverDefineIdeateValidateBuildInterviewed gridoperations managersand ITSynthesised interviewsand technical docswith AIValidated AI outputMapped the current-stateworkflowDefined user needs anddesign goalsDefined the readinessmodelSketched and wireframedAI-assisted prototypingin Figma MakeChose the direction withusers and engineeringRan usability sessionsRefined prototype fromsession findingsValidated with tech anddependent data teamsWrote design.md specsBuilt with AI-assistedengineering teamQA'd in dev

Discover

Discovery and research

Conducting interviews and early research

Before designing anything, two things had to be established in parallel: what operations actually needed, and what the data could actually support.

  • I interviewed two regional grid operations managers to understand the pain points with their existing tools, and why the chatbot wasn't useful in their day-to-day work.
  • Interviewed IT leaders and engineers to understand the existing AI chat solution, the data model, and the technical architecture — specifically what data was available across the 8 source systems, and how it could be represented.
  • I used the organisation's internal AI, which already had context about these users and business processes, to synthesise and theme the discovery data — feeding it my interview transcripts, technical documentation, data architecture diagrams and previous Jira stories.

Inputs to AI

Interview transcripts

Grid operations manager and IT stakeholder conversations.

Session recordings

Video from the discovery interviews.

Technical documentation

Data models, architecture, and the 8 source systems.

Synthesis, with judgment kept human

Interview transcripts, IT's data model and the existing technical documentation, run through the company's AI portal, which already carried context on operations and data sources.

AI compressed weeks of transcript analysis into days, and I used my design judgement to refine and validate the output. Mostly filter and distill the information necessary for next stages based on business goals and timelines.

  • AI clustered interview transcripts and technical documentation into recurring themes across both operations and IT.
  • Reviewed the synthesis against what managers actually described, discarding themes that didn’t hold up.
  • Built personas and journey maps from the validated themes, rather than from the raw AI output.
  • Translated the result into explicit design goals to build and validate concepts for solutioning.

Outputs from AI

Themes

Validated patterns across operations and IT.

User Context

How grid operations managers plan work.

High-level design goals

Explicit targets to build against.

When does a work request become ready to be executed

I mapped the exisitng business process the users followed to understand their current state workflow and how work readiness was deduced. The messy fragmented process they use today had a lot of manual searching and finding data from multiple sources, and all this had to happen in between other roles and resposibilites for their Area.

Each work request carries its own set of dependencies- locates, staking, permits, gold tape, outage, SWO and material -held across 8 enterprise systems, the eighth being the CRM. Roughly 2 hours of manual checking to conclude whether one item is ready, against 20+ items a day.

Discover

Findings

Five patterns came out of the interviews and synthesis. Together they explain why a Chat bot to ask questions about a work request item was not solving the probelm for the users:

No single source of truth

To assess operational readiness, users had to access 8 different complex systems and manually determine the status of each data point.

Information spread across 3 management areas

Each user maintained and accessed this information across 3-4 management areas, and covered additional areas whenever leads were out, amounting to hundreds of records.

Heavy reliance on manual investigation

Establishing whether an item was ready to execute, blocked on an incomplete data point, or not started at all was slow and entirely manual.

Difficulty identifying ownership

Users spent days tracking down the right person to clear a blocked work item, or to sign off on moving the next one into the pipeline.

Delayed planning

Each manager handles 15–20 work requests a day while completing other responsibilites, and chasing that data by hand was chaotic. Planning and restoration slipped, causing redundant crew roll-outs.

Why this surfaced now

Assembling readiness by hand was never quick. What changed was how much of it there was.

A platform migration moved operational data onto new systems and spread it across more of them. Checks that were a single lookup a couple of years ago became several, and every additional source was another place a manager had to visit before calling a work request ready. The job itself hadn't changed. The number of steps in it had.

That is what turned something these teams had absorbed for years into a problem worth solving -and it is also why a tool that answered for one work request at a time was never going to be enough.

Define

Understanding the user’s current-state workflow

Mapping how readiness actually got assembled before the redesign:

Current state map of how readiness information is assembled across disconnected systems

Who are the users:

Since this was an enterprise problem, I used a lean role based persona to empathize with the users:
‍
Two roles, one problem: the area manager accountable for a region they cannot see in one place, and the grid operations manager coordinating across teams and systems that do not talk.

AM

Area Manager

Delivery Assurance Lead

I am responsible for reliability across my region, and for keeping customers in power every day.

Goals

  • Keep the trust of homeowners, commercial and government customers
  • Resolve complaints fast by coordinating crews and control centres
  • Catch problems before customers do

Challenges

  • Answering one question means pulling from several legacy systems
  • Accountable for a region; the work happens feeder by feeder
  • Analysis happens between outages and escalations
GM

Grid Operations Manager

Production / Operations Lead

I want to investigate faults efficiently and catch risks before they become outages.

Goals

  • Maintain daily uptime for field and control room teams
  • Isolate environmental risks before failures occur
  • Coordinate field workflows across shifts and patrols

Challenges

  • Critical reports mean stitching data across disconnected tools
  • No cross-system view, so crews roll out on costly truck rolls
  • Manual entry, scheduling and risk reporting absorb the day

Why the previous understanding of the problem was not in the right direction:

The assistant built by engineering wasn't broken. It did what it was designed to do, and the managers it was for still didn't want it. The research showed why: it had been scoped against an assumed problem rather than an observed one.

Re-framing the probelm: what was actually to be solved?

Readiness wasn’t a fact sitting in any one system waiting to be retrieved. It was an inference a manager had to construct by hand, every planning cycle, across 8 of them. That reframed the brief from retrieval to visibility, and changed what needed to be built.

×Framed as

A retrieval problem. Users can’t get to the data, so give them a faster way to ask for it.

✓Actually was

A visibility and decision problem. Users can’t tell whether work is ready, and no system holds that answer.

Defining high level design goals:

The research pointed at five things. They were written to be arguable, each one rules something out, and each one is answerable against a finding.

01

Show what is ready, not ready, across Areas

If a manager has to reconstruct it by hand, the system hasn't done its job.

02

Show all assigned work requests per User

Managers plan across hundreds of work requests. Answering for one at a time was the chatbot's ceiling.

03

Show blockers across 8 data sources tied to a work request item

A blocker without a name is a search task handed back to the user.

04

Act on blockers without leaving the view

Every exit to another system is a step where the picture goes stale.

05

Provide necessary context and data for all data sources

A blocker found while planning is a decision. The same blocker found later is a delay.

These set the bar. What they didn't settle was what the thing should look like to people who spend their day in enterprise software — which is where ideation started.

Ideate & solution

Solutioning

With the problem defined, the work moved into deciding what the view should be — first by testing the fastest route available, then by steering it with what the research had established.

Five stages from first prototype to handoff. The loops matter more than the arrows: direction went back into Figma Make until it held, and the front end went back and forth with developers until the design.md matched what shipped.

Ideation

Before settling what the view should look like, it was worth being precise about two things: what these managers already spend their day in, and what the view actually had to let them do.

Detailed design goals

01

An overview, not a lookup

Work requests per area manager, across one or two management areas at a time.

02

Status and dependencies together

The state of a work request and every dependency on it, visible at once rather than opened one at a time.

03

Which dependency, and what to do about it

Not just that something is outstanding, but which one is holding the work and what addressing it involves.

04

A read across the whole area

What is ready, not ready and blocked within a management area, without counting it up by hand.

05

Reach the owner from where you are

Contact or notify whoever owns a dependency for status and an ETA, without hunting for who that is.

06

All of it without leaving the page

Every exit to another system is a step where the picture goes stale and the task gets abandoned.

07

Leave having finished something

A manager should close the view having acted, not holding a list of things to go and chase.

AI-assisted prototyping

Iteration 1: Early and quick concepts using figma make

The fastest available route was to let the tooling try first. I used the existing chatbot to generate a prompt describing the problem and fed that into Figma Make. It returned two concepts, a dark operations console, and a lighter list-and-detail layout. Both worked. Neither was one these managers would use: each solved the brief generically, without the density or the patterns their day actually runs on.

The list-and-detail concept, marked up. Blue for what I took forward, red for what needed rethinking. Recreated for this case study; the original work is under NDA.

The operations console concept, marked the same way.

Neither was close to shippable. Neither followed our colour or interface conventions, and neither read as enterprise software — one looked like a consumer task app, the other like a control-room monitor. But between them there was enough right to be worth arguing with.

Early user feedback

Users mentioned it works as a concept, however they were feeling overwhelmed and suggested they do not want more work/task and an additional application with multiple steps, they showed a lot of other tools they use on a day to day basis whose interaction patterns they were already accostomed to:

  • Data tables
  • Reports and Excel sheets
  • Power BI dashboards
  • WMS and Salesforce applications
  • Electric design products including SCADA and Design Manager
  • Constant switching between Teams and Outlook to chase people

Other feedback on interaction and UI elements

  • Multi-select on the filters, since managers rarely look at one status at a time
  • Terminology changed to match how these teams actually speak
  • An email notification template, so contacting an owner didn't mean composing from scratch
  • Owners and teams made visible per data source, not just per work request

Feasibility in parallel

The technical team was kept in the loop throughout rather than consulted at the end, so feasibility concerns could surface while the design was still cheap to change. Their answer was that the data already existed, what it needed was APIs arranged to serve the view the users would agreed to.

Taken as inspiration

  • A count of blocked, at risk and ready at the top of the view
  • Dependencies as a status strip on every row, so readiness reads across items rather than one at a time
  • Dependencies split into what needs attention and what is already satisfied
  • A named owner against each dependency, not a team

ignored

  • Cards where these teams expect a table — they spend their day in tables and spreadsheets
  • Contacting an owner by phone or a mail client, which means leaving the view
  • Priority competing with readiness for the same attention
  • Crew and target dates given prominence, when neither decides whether work can start
  • Nothing scoped to the management areas a manager actually covers

That was the point to stop prompting and start drawing. The concepts had given me a set of ideas worth keeping and a clearer sense of what was wrong, and the fastest way to hand that back was to wireframe it myself.

What the tool was missing was not capability but context. It had no idea what these managers look at all day. So I wireframed the structure myself, what sits at the top level, what expands in place, how a barrier names its owner, and what happens when you act on one.

Rather than discard the tool, I changed what I gave it. The second prompt carried the wireframes, the colour and type conventions of the systems these teams already work in, and references to the data tables and dashboards they use daily, the context the first attempt never had.

What the second direction got right

Re-prompting with the wireframes and the conventions of the tools these teams already use produced something structurally sound. It was a table, at the density managers work at, with dependencies as columns. Four things carried over from the research and stayed in the shipped product.

01

A table, not cards

Rows a manager can scan at the volume they actually carry, instead of tiles sized for seven items.

02

Dependencies as columns

Seven marks against each work request, so readiness reads across items rather than one at a time.

03

Scoped to management areas

The first thing a manager does is narrow to the areas they cover, including a colleague's when covering for them.

04

Notify from the row

Contacting the owner of a blocker without leaving the view, and leaving a record that the chase happened.

The structure held from here on. What it didn't settle was whether anything on the screen meant what it appeared to mean.

Iteration 2: Simplified yet detailed

A dense table that looks authoritative is a liability if its numbers don't hold up. The next stretch wasn't visual. It was deciding what each element actually claimed, and changing the ones that couldn't support the claim.

Second direction. Structure right, claims wrong.

#
Component
What changed
Why
1
Metrics
Four cards became three, percentages replaced with plain counts
A manager clicking “not ready” didn't get every not-ready job back, and three percentages against two denominators answered nothing anyone was asking. The numbers had to agree with the list beneath them.
2
At Risk
Dropped as a status value
At risk was a subset of not ready, but rendered as its rival. Urgency is a flag beside the status, not a replacement for it.
3
Dependency strip
Labelled, keyed, not-required state added
Seven coloured dots meant nothing to a manager covering an area they don't know. And a job needing no permit was never going to read as ready.
4
Status column
One status per work request
Two ideas shared a column — whether work could start, and how soon it was due. Readiness is the question being asked.
5
Table columns
Type, SRD, PL and the progress bar removed
None of them change what a manager does in the next hour, and the bar was worse than idle: a job reading 43% looked nearly halfway there while its permit sat unsubmitted for 28 days. They were taking the space the blocker needed.

Next pass. The row now answers the question; three things on it still couldn't be trusted.

#
Component
What changed
Why
1
The row
Gained Blocker and Last Notified
What's holding the job, and who owns it, is the reason a manager opens this screen. Until now it sat behind a click.
2
Dependency strip
Moved beside Blocker, colours strengthened
The blocker names one thing; the dots show how much else is outstanding. Split apart, the row had to be read twice.
3
Metrics
On Hold folded into a subline
Held work isn't being chased. A card gave equal weight to the one thing a manager can't act on.
4
Status model
Perishing removed
Four values in a column three cards had to match. A job with everything cleared is ready.
5
Filters
Button removed
Two filters already sat at the top of the page. A button opening a near-empty panel teaches people not to press it.

The same build, expanded.

#
Component
What changed
Why
1
Detail panel
Summary tab removed
Every field on it was already on the row above. The history was the only thing unavailable anywhere else, so it leads.
2
Card grid
Equal heights, fixed order, tightened fields
Seven dependencies in an order a manager can learn, instead of a grid that reshapes on every work request.
3
Notify
Only where a person can be reached
Gold tape updates itself from the registry. Offering to chase it implied someone was there to chase.

Refining the UI further

Three things were designed, built, and taken out. Two because the data couldn't support them, one because I'd read a status wrong.

Component
What it was for
Why it went
Idle tracking
A job can be not ready for a day or a month, and the difference decides what a manager chases first. The column showed days since anything last moved.
No source system records when a dependency changes state. The available dates are completion dates and poll timestamps, and neither produces an honest number.
Expiry warning
Some dependencies go stale. A locate that clears today can lapse before the crew arrives, so a job could be ready and quietly stop being ready.
Crew dispatch is decided in another system, sometimes deliberately left late. The warning would have been second-guessing a call this screen can't see.
Unseeable dependencies
If the dashboard can't reach a source, not started is a lie and cleared risks sending a crew on stale data. A third state said go and look.
The status it was built on wasn't a fault. It was a normal step in switching work, and it means the job is further along, not blocked.

The last one cost a state, a marker, a rule and a demo scenario. A plausible reading of a domain term is still a guess, and checking it with someone who knows costs less than being wrong.

Iteration 3: final polish

What the numbers claim and what the table shows now agree. Four ready and seven not ready against eleven, with one held aside. In the panel, three cleared, two pending and two blocked against seven dependencies.

Three counts that reconcile, the blocker and its owner on the row, and dependencies a manager can read without opening anything.

Seven dependencies in fixed order, each linking to the system that owns it. Notify appears only where there is a person to reach.

The second direction came back close to what shipped. The difference wasn't the tool. It was that the second attempt carried domain knowledge the first one couldn't have had.

The tool accelerated the making. It didn't decide what was worth making — that came from the interviews, and from knowing which patterns these teams already trust.

Deliver

The final solution

Testing settled which direction held up under real planning work. I refined the chosen one against what the sessions surfaced, then specified it in enough detail to build.

Build & handoff

AI-SDLC: designing for how the code actually gets written

Handoff wasn’t a document drop. Because the engineering team was building with AI assistance, the design spec had to be something their tooling could consume directly — not a set of redlines a person would have to translate first.

  • Wrote design.md specs describing structure, states, and behaviour in a form both developers and their AI tooling could read.
  • Shared the Figma Make prototype as the working reference, so the team had real interaction to build against rather than static screens.
  • Kept iterating the design.md through the build, so it stayed accurate rather than going stale the moment it was handed over.
  • QA’d directly in the dev environment to validate the build against the intended design.

Artifacts

design.md specs

Structure, states, and behaviour in readable form.

Working prototype

Real interaction, not static redlines.

QA in dev

Build validated against the design.

How it actually ran

The Figma Make link went across as the working reference, and the design.md as the spec their tooling could read. What followed wasn't a review cycle. When the build hit something the spec hadn't anticipated, or the implementation surfaced a case the design had missed, it was resolved in the design.md rather than in a comment thread — so the file stayed accurate as the build moved.

Most of what came back wasn't a design question. It was the tooling generating something that didn't match, or an edit the spec described loosely enough to be read two ways. Tightening the wording fixed more of it than redrawing anything did.

Recreated for this case study; the original work is under NDA.

The sign-off was a judgement, not a checklist. I approved the build when it matched what the spec described and the gaps left were ones I was willing to ship for this version. Not finished — good enough for the launch we were making.

Reflection

What I’d take into the next one

Embracing the AI-Native design process

AI now gets you to a working starting point quickly, and occasionally to something close to final. The work that remains isn't production-it's judgement. Which direction is worth pursuing, which output survives contact with how people actually work, and what to throw away."

Identifying what to build is still valuable

AI can build ideas and concepts quick, but as a designer steering it in the right direction is still our job.

Vibe coding is not uuseful method for enterprise apps

With data heavy systems and complex operation workflows, a. vibe coded design can give a pretty looking UI or structure the data but it cannot create usefulness and a coherent interaction patter yet.

The handoff artifact has changed shape

Writing specs a development team’s AI tooling could read directly was more useful than any redline file I’ve produced. I expect that to become the default rather than the exception.

Thanks for reading this far!

More Projects

Here are a few of more of my case studies.

Denlo Co-Living
Savi Community Profiles
Data Driven Decision Enabler