Fullmetal Alchemist and the philosophy of Debugging
Fullmetal Alchemist: Brotherhood (2009) Hagane no renkinjutsushi (2009) Ref: https://www.imdb.com/title/tt1355642/mediaviewer/rm277853441

Fullmetal Alchemist and the philosophy of Debugging

Finally got through all the content around the much-hyped Fullmetal Alchemist in 2020, and I was not disappointed; quite the opposite. It evokes philosophical questions on the things we do and how we do them. So naturally, with software engineering for me.

One of the standout things for me is Alphonse Elrich's statement when discussing his brother and his fate. Some things in the world have to be authoritatively "true" - the principles that you follow depend on those to be "true," and without that, everything can fall apart. 

No alt text provided for this image
"We must seek a possibility without being bound by principles." - Alphonse Elric (Fullmetal Alchemist: Brotherhood)

The paradoxical principle of not being bound by principles serves the Elric brothers' well ultimately due to the nature of their quest (no spoilers here) through the series. 

This perspective is very compelling when seen from debugging an issue since it is similar to their quest, albeit in a different context (and importance - not a life-or-death situation like theirs but significant for your customers)

Here is my go-to algorithm to debug for reference.

Step 0 - If you are taking over a colleague's review, get a brain dump. I am biased towards a written note, considering we are all remote and work asynchronously.

Step 1 - Did the issue occur as described? Do you have all the signals necessary to indicate that something abnormal happened?

Step 2 - If yes, proceed with Step 4

Step 3 - If no, why not? Find what is missing in the issue report and your assessment. Then go back to step 1

Step 4 - Can you create a replay and safely run it multiple times?

Step 5 - If yes, proceed with Step 6; else, go to Step 3. Real-world replay would be excellent where feasible; else, build a virtual setup and teardown of the issue's environment

Step 6 - Congratulations, you are looking in the correct place. Dig deep and propose potential solutions after high-level validations in the replay environment.

The challenging bit is when you find yourself stuck at a 3-5-3-5-3 loop. The Elrich brothers also hit these repetitive walls; one can even call those events as a "loop" of their own.

Bringing back the question of truths, you have the choice of asking the question at step 3 or 5, but do not restrict to just that. Question Step 1, as well. How complete is our picture in Step 1 now with the information you have uncovered so far?

With enough exposure, you can make the jump quickly from 1 to 4 without difficulty. But be aware that you can still be wrong, exceptionally so. That's what helped the Elric brothers find their answers consistently without falling prey to shortcuts even when the answers were not what they were ultimately looking for, but that is the nature of truth.

P.S There is one other step that you can think of adding to your process.

Step 0 - Part 2 - Ignore all of that. But keep it in your back pocket in case you need to look it up later.

Though caution - treading the same path is time-consuming, do it only when you can afford to.

References

  1. Fullmetal Alchemist: Brotherhood is available on Netflix in India - that's the complete version as the mangaka intended or go to the source - read the manga.
  2. Interesting breakdown of the philosophy - https://www.youtube.com/watch?v=Y8uh9eIBGmE&t=1203s
  3. Image credits to https://www.imdb.com/title/tt1355642/mediaviewer/rm277853441 and https://en.wikipedia.org/wiki/Fullmetal_Alchemist

要查看或添加评论,请登录

Aravind Baskaran的更多文章

  • Playback Theatre and the Startup mindset

    Playback Theatre and the Startup mindset

    I have always been fascinated with the theatre and aspired to "learn" theatre (still do). Between 2017 - 2019, I was…

    2 条评论
  • State of Cycling in Bengaluru 2020 ??

    State of Cycling in Bengaluru 2020 ??

    My opinions, albeit with a clickbait This past week I had to cab it. My cycle is on a break, getting a full workup done.

  • Cycling in Bengaluru?—?Lessons and challenges ??

    Cycling in Bengaluru?—?Lessons and challenges ??

    Recounting the challenges and lessons from 3 years (and counting) of cycling in probably a not-so-cycle-friendly “big…

    4 条评论
  • Clojure -Lessons from?Laziness

    Clojure -Lessons from?Laziness

    Laziness can be a good thing. Maybe the best of things? Surely at the backend of computations, being lazy is mighty…

    1 条评论
  • Racist Security with Clojure

    Racist Security with Clojure

    Many of you may have landed here based on the first half of the title, maybe the title is a tad misleading. Sorry about…

  • Destructuring Clojure with Javascript

    Destructuring Clojure with Javascript

    Clojure is a language I am learning as I work on awesome stuff at Swym Corporation. When I came on board last year, I…

  • A series of mistakes

    A series of mistakes

    Inertia. The only thing momentum is afraid of.

    1 条评论

社区洞察

其他会员也浏览了