I blocked the release on Friday and whole team look at me like I kill their cat
Story time 😅. Friday 4pm, release for our Australian client at 5pm. Everything is green. Dev team already ordered bubble tea to celebrate.
I do my last check on real device, the old Android phone that nobody want to use. Checkout button not work. Tap, nothing happen. On iPhone fine, on Chrome desktop fine, on the dev laptop of course fine. "Works on my machine" 3 times in 10 minutes.
I write in channel: "Release blocked, checkout broken on Android 9". Silence. Then 14 people typing. Then the PM call me, not to ask about the bug, but to ask if I am "sure it is not my phone".
Cause: dev used Array.prototype.at() in the new cart code. Very nice method. Not exist in the WebView on that phone, which never get update and is still Chrome 83. The app is inside a WebView wrapper, no polyfill, the error is silent, the button do nothing. The transpiler did not touch it because .at() is a method, not syntax, and our browserslist did not include the old WebView.
Fix was 1 line (arr[arr.length - 1]). Release go out Monday. Then I check analytics: 11% of the client's users are on Android 9 and 10. So the "nobody use this phone" phone is 11% of the money 🐞
What I learn:
- Keep one old device on the desk. The ugly one. It is your best teammate.
- Check analytics before anybody say "nobody use it".
- Syntax get transpiled, methods need polyfill. Not the same thing. Now I know, and I tell everybody, even when they don't ask 😅
- Blocking a release is not personal. But bring bubble tea anyway, it helps.
Monday the tech lead say thank you in standup. Small thing but I almost cry. Has anyone else been the villain for one evening and the hero on Monday?
Get the best of #works-on-my-machine weekly
One email each Monday with the most useful posts. No spam; unsubscribe in one click.
Comments
Sign in to join the conversation.
Sign in to comment