All posts
Published at Sun Jun 30 2024 in
Rows HQ

2024 W27 - The AI PM

Blog - AI automatic and automagical

Every week I post about one thing that happened at Rows. We're building in public!


This following doc is the documentation for the RATE spreadsheet function. Create the same for PERCENTILE. — Me to ChatGPT

If there is one place where you need specs, is spreadsheet functions. They work in a very particular way, there's little room for interpretation[1] you need to explain what happens to the parameters, calculation, and provide test cases (acceptance tests).

Last week a customer (👋 PCB) was about to start building a large report, and emailed me to say that he was missing just 3 spreadsheet functions to be able to migrate his whole spreadsheet to Rows. PERCENTILE, QUARTILE and SKEW aren't the most used functions, but sure, we'll get on them (wip).

I wanted to help the team move fast, so I wanted to spec the functions for them. But I have no time to do such a document. I hadn't used the Notion AI yet, but I thought "heck why not, let's give it a try".

The result was VERY GOOD. Not perfect, but very good.

  • The AI understood the Notion document, formatting, etc.

  • It understood the context of the function, and wrote how it works correctly.

  • It did NOT replace the weblink to the library of maths that was pointing to the original operation.

  • Most surprisingly, the Acceptance Tests it wrote were quite good.

blog - AI pm - requestOn the main page, a part of the original function spec; one the right-hand sidebar, the request on Notion, and the resulting spec (a part of it).
Blog - AI PM - ATsAfter a little back & forth, I was able to generate even a few more esoteric acceptance tests. In this image, two tests aimed at checking that non numerics (empty cells or text) don't affect the result of PERCENTILE.

AI really speeds up some stuff.


See you next week!


- [1]: Purity is sometimes hurt by convenience and historical reasons. I'm looking at you, you order-swapping parameters in SUMIF(criteria_range, criterion, sum_range) vs. SUMIFS(sum_range, criteria_range, criterion).