Use cases / When someone needs an answer
Works on staging. Not for the customer.
A customer's import keeps failing, engineering cannot reproduce it on staging, and the ticket has bounced between support and engineering three times.
Jigward reproduces the failure with the customer's settings, traces it to one line and returns a workaround, a bug with exact steps and a tested draft fix. The customer reply and the merge stay with the team.
The film
Chapters
Read the narration
0:00 Bounced three times
This ticket has bounced between support and engineering three times. I'm Jigward. Jordan just handed it to me. What's different about this customer? An admin connected our account API, read only. Their account is German, so numbers use a decimal comma.
0:21 Reproduce it like the customer
Our staging test account uses American English. I'll switch it to German, like theirs, and set it back afterward. Now a row like theirs, with a decimal comma. Rejected, same as for them. With a dot, it imports. That's a workaround Jordan can send the customer today, while the real fix is on its way.
0:44 From request ID to one line
The page doesn't say why. The logs do: the quantity parser trips on the comma, at one exact line. Dates and prices follow the account's settings. Quantity ignores them. There's the gap.
1:01 A failing test and a bug with steps
Before any fix, a test that fails like the customer does. Same error, same line. Now anyone can reproduce it. Jordan asked for a billing bug, Anna for exact steps. This one has the settings, the request, the line, and the failing test.
1:21 The fix and a draft pull request
The fix: quantity now reads the account's decimal comma. Dots still work, so the workaround stays safe. All tests pass. Then a draft PR for Anna. It explains the cause, shows the proof, and lists what I didn't check.
1:43 Both sides of the ticket
Jordan, a workaround for today. Anna, steps that reproduce it every time, and a tested fix to review. The merge and the customer reply are theirs.
What changes
Today. Support escalates the failing import. An engineer tries it on staging, it works, and the ticket comes back as "cannot reproduce, need steps". Support cannot see how the customer's account is set up, and engineering has no reason to compare it with the test account. Logs and error reports show that the import failed; they do not set a test account up the way the customer's is and try again.
-
Before: "Cannot reproduce, need steps", three times over.
With Jigward: The one difference, a German account's decimal comma, found and reproduced on staging.
-
Before: Nothing to tell the customer until engineering finds the cause.
With Jigward: A workaround tried on staging that support can send today. Write quantities with a dot.
-
Before: A bug report that comes back for missing steps.
With Jigward: A billing bug with the settings, the request, the line and a failing test, and a tested draft fix.
What Jigward does
Reopened. Jigward, find what's different for this customer. If it's our bug, file it in the billing project with steps.
Connected beforehand
- The escalations and billing projects in Jira, both software projects, are named with the team's Context.
- The company's own account API answers at a public address with a key. It is a custom integration worked out from documentation the team provided, and an admin applied only its reading operations.
- A staging browser profile holds a synthetic test account's login. Jigward types the values itself, and they never reach the model.
- An AWS account is connected, so Jigward can read the staging log groups an admin allowed.
- The billing repository is connected through GitHub, and #support-escalations in Slack is named for the same Context.
-
Reads the customer's settings
The account API shows what the ticket never did. The customer's account is German, so numbers use a decimal comma. The staging test account uses American English.
-
Reproduces it like the customer
It switches the shared test account to German and imports a row with a decimal comma. Rejected, as for the customer. With a dot, the row imports, which gives support a workaround. Then it sets the account back.
-
Follows the request to one line
A log search on the request ID finds the quantity parser failing on the comma, at one line. In the code, dates and prices follow the account's settings, and quantity ignores them.
-
Writes the failing test first
Before any fix, a new test fails the way the customer's import does. Jigward files the billing bug in Jira with the settings, the row, the request ID, the line and the failing test.
-
Fixes the line
Quantity now reads the account's decimal comma, and dots still work, so the workaround stays safe. The parser tests and the repository's Gradle check pass, and the fix goes up as a draft pull request.
-
Tells both sides
It reports on the escalation issue and messages the support lead and the engineer in #support-escalations, each with what they need and what it did not check.
Jigward in this case
-
Jira
The assignment makes the reopened issue a Task. Jigward files the billing bug in Jira and reports back on the escalation issue.
-
Custom API
The account API gives the customer's locale and number format. Only its reading operations were applied.
-
Browser
A staging browser profile signs in to the test account. Jigward changes its locale, tries the import both ways and sets it back. The recording, network log and screenshots stay on the Task.
-
AWS CloudWatch Logs
A log search on the request ID from the browser's network log finds the exception and the line that raised it.
-
GitHub
Jigward reads the parser and opens the fix as a draft pull request once the tests pass in its own workspace. It never merges.
-
Slack
Besides the report on the issue, Jigward messages both people in #support-escalations with links to the bug, the pull request and the Task.
What comes back, and what stays with the team
What comes back
- Jira A billing bug with the account settings, the row, the request ID, the failing line and the failing test, and a report on the escalation issue.
- GitHub A draft pull request with the cause, the test that failed before the fix and passes after it, and what was not checked.
- #support-escalations in Slack One message for the support lead and the engineer, linking the bug, the pull request and the Task with its browser recording, log lines and test reports.
What the team decides
- What to tell the customer, and when to close the escalation issue. Jigward never replies to the customer.
- Whether the fix is right and whether to merge it. Jigward merges nothing, and the team decides when it deploys.
What Jigward did not check
- Other locales that write numbers with a decimal comma, and thousands separators.
- The export path.
- The customer's own files.
- How the fix behaves in production.
Meet your next engineering coworker
Bring a question
from your own project.
See how Jigward can help your team understand the system and move the next task forward.
Jigward is in closed testing. Accounts are created by hand; sending a request does not create one.