The Meticulous Coding Strategy Applied to Metabase Issue #14782

Written by turbobureaucrat | Published 2021/07/22
Tech Story Tags: programming | code-quality | bureaucracy | meticulous-coding | software-development | checklist | productivity | coding-skills

TLDR In the "3 Sharpest Instruments for Debugging" story, I describe the approach enhancing your debugging possibilities. I decided that adding a meticulous coding description would add misleading details to the narrative. On the other hand, real-life applying might be an excellent opportunity to demonstrate method flexibility. We do not need three of the 11 steps in the checklist, so I removed them. We delete all the tasks from the sixth, add another verificatory one and end up with the following completed checklist.via the TL;DR App

In the "3 Sharpest Instruments for Debugging" story, I describe the approach enhancing your debugging possibilities. On the one hand, I decided that adding a meticulous coding description would add misleading details to the narrative. On the other hand, real-life applying might be an excellent opportunity to demonstrate method flexibility.

This contradiction led to emerging of this auxiliary story.

What Is Going on?

On GitHub, there is a project called Metabase. I discovered it by searching through the trending repositories. I narrowed down my search by filtering to only those repositories that use the Clojure language I like. My specialization is mostly front-end, so I've chosen UI issue #14782 that might not be of considerable interest to other developers. I acted so as not to discover that someone passed over me with fixing it. After some investigation described in the primary article about fixing, I found out that the bug exists in the AccordionList component.

Diving Into the Details

Here's how the initial checklist would look:

1. Understand the actions required to implement task #14782
2. Write the commit messages for task #14782
3. Create a branch for task #14782
4.
5. Verify the correspondence of the implemented solution to task #14782
6. Create task #14782 PR
7. Pass the review of task #14782
8. Merge task #14782 into `master`

In the original article about meticulous coding, there were 11 steps in the checklist. We do not need three of the administrative tasks, so I removed them. Also, I rewrote the last one to reflect the aspects of the situation.

Let's act on the first task here and understand what do we need to do:

2. ...
3. Create a branch for task #14782
4. Prevent `AccordionList` from jumping on inner search value change task #14782
5. Verify the correspondence of the implemented solution to task #14782
6. ...

The second task asks to write the commit messages. I didn't find any recommendations about the formatting of commit messages, so here is mine:

Prevent Saved Questions search input from jumping

The third task is about creating the branch. I also didn't find any recommendations on branch naming, so here we go:

fix/14782-prevent-saved-questions-search-input-from-jumping

Now it's time to solve the problem. The full description of discovery and solution is in the dedicated "Three Sharpest Instruments on Your Debugging Service" story.

While trying to prepare the necessary state of the AccordionList component, I discovered that the problem might no longer exist. I need to verify this.

3. ...
4. Ask if task #14782 is still relevant after the "Add saved questions picker" update
5. Wait for someone's reply to my question about the relevance of task #14782
6. Prevent `AccordionList` from jumping on inner search value change task #14782
7. Verify the correspondence of the implemented solution to task #14782
8. ...

I've shifted all the undone tasks by adding two on the fourth position. The fifth might sound unusual. I learned such a type of task by reading "Getting Things Done" by David Allen. You set something reminding you about liabilities others have taken. By doing so, you clearly state the next step of the process and know the action required to unblock it. Or at least to try doing so.

It turned out that, indeed the PR #16808 removed the problem I was tackling. As I mentioned before, the meticulous coding method is flexible. We delete all the tasks from the sixth, add another verificatory one and end up with the following completed checklist:

☑ Understand the actions required to implement task #14782
☑ Write the commit messages for task #14782
☑ Create a branch for task #14782
☑ Ask if task #14782 is still relevant after the "Add saved questions picker" update
☑ Wait for someone's reply to my question about the relevance of task #14782
☑ Ensure the closing of task #14782

Thank you for reading! Please reach out on Twitter if you want to discuss the ideas I describe.


Written by turbobureaucrat | Software development process architect @ Devexperts. FE-development and Clojure. Read 10000 pages per year since 2016.
Published by HackerNoon on 2021/07/22