Again, No One Knows the Time
Chapter 16
The next day, three people sat in the conference room.
The team leader, the junior developer, and me.
On the screen was the document I had organized the day before.
Operations Failure Analysis Automation PoC
The team leader spoke.
"Let's not set the goal too big."
"How far are you thinking?"
I asked.
"When an outage occurs, we collect logs, deployment history, and past failure records to organize possible root causes."
The junior developer said.
"Then we'd reduce the time people spend digging through everything from the start."
"That's the goal."
I moved to the next slide.
I had written down the order I usually check when an outage occurs.
Recent deployments.
Error logs.
Traffic during the specific time period.
Database status.
External system responses.
Similar past failures.
Operational exception conditions.
The junior developer looked at the screen and said.
"This is basically what's in your head."
I laughed.
"Yeah."
The team leader laughed too.
"That's why we need you."
That statement sounded oddly double-edged.
Because I was needed,
I was sitting in a position to create something that might make me unnecessary.
But now that thought didn't seem as strange as it did at first.
I had done similar things many times while developing.
I turned manual work people did into programs.
I moved what was done in Excel to systems,
I converted phone verifications to APIs,
and I made nightly manual tasks run as batch jobs.
Each time, someone's workload was reduced.
And other work emerged.
It could be the same this time.
Or it might not be.
No one knew yet.
The team leader spoke.
"Then let's try it with an actual incident."
I picked a recent incident record.
It was a case where order creation was delayed after payment.
It was similar to a problem I had personally found the cause for before.
I collected logs.
I attached deployment history.
I briefly explained the related service architecture.
The junior developer opened the AI window.
"Should we just try putting it in right away?"
"Wait."
I said.
"Don't ask it to find the cause right away."
"Then what?"
I thought for a moment.
And I typed:
Before analyzing this failure, please ask me any additional information you might need first.
The junior developer looked at the screen.
"Why are you doing it that way?"
"Because if you ask for answers without enough information, it can just say anything."
After a few seconds, the AI started generating questions.
Are there deployment records around the time the failure occurred?
Were there changes in the external payment system's response time?
Do you have metrics related to database connections and transactions?
Was there a traffic increase during that time period?
I read through them one by one.
They were good.
Better than I expected.
The junior developer said.
"Even someone seeing this for the first time could follow along?"
"Maybe."
"Then we could get by to some extent even without you."
The junior developer said it casually.
I laughed.
"That's the goal."
Strangely, my heart felt lighter after saying that.
Before, hearing such words would have made me think about my position shrinking first.
I wasn't completely free of such thoughts even now.
But thinking about only that didn't lead anywhere.
I added the information the AI had asked for.
I ran the analysis again.
This time the possible causes narrowed down to three.
External API response delay.
Processing order confusion during retries.
Specific status value update failure.
We checked them one by one.
It wasn't the first.
It wasn't the second.
Strange logs were found at the third one.
The junior developer said.
"I think this is really it?"
I looked at the logs a bit more.
"Not yet."
"Why?"
"We need to see why this value didn't change."
I traced through the code.
There was an exception condition.
It was logic added a very long time ago.
It was set up to follow a different flow only for specific payment methods.
There were no comments.
Only a ticket number remained.
I searched for the number.
A ticket from a few years ago came up.
It was an exception hastily added due to an incident at the time.
The junior developer said.
"Another old policy."
"Yeah."
I added the ticket content to the AI.
I asked again.
Please summarize the failure cause again, including this information.
This time it was almost right.
The junior developer said.
"Wow."
The team leader also looked at the screen for a while.
"This might actually work better than expected?"
I didn't answer.
To be precise, it was about halfway there.
The AI organized information well when given it.
It asked pretty good questions too.
But people still knew a lot about what information to provide.
That we needed to find the ticket number.
That the ticket is still relevant.
That the strange condition left in the code might be a trace of a past failure, not a mistake.
It would be hard to know that from the start.
But things could change if we kept feeding such information.
If we made it searchable for all past tickets,
linked documents,
and showed code change history together.
Someday it might find things in a way similar to what I do.
Maybe even better.
The team leader spoke.
"If we build this properly, operations responses would change a lot."
I nodded.
"Probably."
"What do you think?"
"About what?"
"Think it'll work?"
I thought for a moment.
In the past, I would have spoken about possibilities based on experience.
It's difficult with this structure.
There's not enough data.
Operational information isn't organized.
There are too many exceptions.
That wasn't wrong.
But this time I didn't want to give that kind of answer.
"I don't know."
The team leader laughed.
"Even you don't know?"
"No."
I looked at the screen.
"We'll know once we try."
The team leader nodded.
"Then let's just try it."
At that moment, an old memory came to mind.
A book fell on the desk.
Thunk.
Have you used this?
No.
I haven't either.
This time, I have to do it this way.
No one knew back then either.
We opened the book,
installed it,
failed,
and tried again.
Now, instead of a book, an AI window was open.
The method was different.
The speed was different too.
My age was different too.
I was in my twenties then.
I had nothing.
No career,
salary,
or position to keep.
Not knowing wasn't that scary.
It was different now.
I was approaching fifty.
I had a long career,
and a salary equal to my experience,
a family,
and I had to worry about next year's contract.
Saying "I don't know" wasn't as lighthearted as it used to be.
But the task in front of me was the same.
No one knew for sure.
Someone had to start, though.
After the meeting, the youngest member followed me to my seat.
"Senior."
"What?"
"Can we try that a little more?"
"What?"
"The failure analysis. If it automatically searches for past tickets, it would be even better."
I pushed my chair aside.
"Sit down."
The junior brought his laptop.
We put two screens side by side.
I said,
"Let's try another real failure."
"Okay."
"This time, I know the answer."
"Why?"
"To see how far he can find it."
The junior laughed.
"A test."
"That's right."
We chose a failure from a few years ago.
We put in the logs,
some of the relevant code,
and connected the deployment records.
The AI asked questions.
We answered.
It asked again.
The junior said,
"This is more fun than I thought."
I laughed.
"Right?"
After a while, the AI presented possible causes.
It wasn't completely right.
But it was close.
I pointed out the mistakes.
The AI answered again.
It got closer.
The junior asked,
"If we keep training this, won't it eventually become like you?"
I looked at the screen and said,
"Maybe even better."
It wasn't as upsetting as I thought it would be.
The junior looked at me.
"Then what will you do, senior?"
I laughed.
"I'll figure that out later."
"Aren't you worried?"
I didn't answer and looked at the screen.
Of course, I was worried.
I was watching the process of my best skill being automated.
In a few months,
in a few years,
I didn't know how many developers would be needed.
I didn't even know if my experience would still be valuable.
My contract for next year wasn't confirmed yet.
But strangely, at that moment, something else was bigger than that.
Where will this go?
I typed a new question into the AI window.
Don't judge based on the information provided so far. Ask me questions about additional items I need to check to confirm the cause in order of priority.
The answer started coming out.
As the junior read the screen, he said,
"Do you think this will work?"
I laughed.
"Who knows."
And I pressed the Enter key once more.
"So let's try it."
It was a new era of not knowing again.
I didn't know if I would be the last one standing this time either.
But today,
there was something I had to do.