Smash the Bug: Episode 17
Your host: Joseph Maxwell, Founder and CEO of SwiftOtter
Special Guest: Max Chadwick, Back-End Tech Lead at Rightpoint (formerly Something Digital), 5-Time Magento Certified
Connect with Max:
Website: MaxChadwick.xyz
Twitter: @MaxPChadwick
LinkedIn: mpchadwick
Every now and then, this podcast finds a guest who has about a thousand valuable stories to share. The most difficult thing is deciding what to actually talk about. Max has been around the block as an ecommerce developer and, as a Tech Lead at a large agency, finds himself at the helm of the ship whenever one of their clients has an urgent problem to address. His experience has led him to pinpoint the key differentiators between a novice developer and a seasoned professional, and subsequently, what makes for a high-functioning team.
The developer community is amazing. We collaborate and help each other discover the remedies to all sorts of woes on a daily basis. However, like most [truly] great developers, Max figured out a while back that finding the real root of an issue and documenting your entire process is the way to achieve excellence, not just seeking out a quick (and likely temporary) fix to a problem. Maxchadwick.xyz is Max’s public blog where he documents his processes, from taking the initial call from a merchant in distress to informing them that the issue has been handled. You might want to take a second right now and go bookmark that website before you read any further, because it could sure come in handy for you in the future.
“Debugging can kind of feel like a bottomless pit at some times, and you can feel like you’re just throwing stuff at a wall” says Chadwick, as he urges us to make sure we are being “systematic” when we approach solving problems. We can all scribble notes down on a pad of paper while we go through a debugging session. In fact, most of us probably do that, at least so that we can show our managers what we spent all of that time doing, or to be able to hand the problem off to another developer. But why is blogging such a powerful tool? Long story short: making sure that you know how to explain your process to someone else will solidify the process in your own mind and actually help you to learn more from the whole experience. Max has been creating blog posts about his debugging experiences for more than eight years and continues to see blogging as a necessary part of his daily work.
Documenting Your Debugging:
It’s important to first develop a habit of trying a potential solution, then documenting if it worked or not, and if possible, figuring out why it did or didn’t produce the desired result. You want to have all of these steps documented in the same place so that you can visualize the data you’re gathering. Max argues that a spreadsheet can come in handy in these kinds of situations to help you categorize where and when you’re seeing these “cases” (Max’s synonym for “bugs”) and be able to start framing in a solution based on trial and error. You might even be able to use the statistics you generate in order to narrow down the root of the issue or at least prioritize which potential fixes you are going to try first.
Max’s Quick Debugging Tip:
Check out n98-Magerun2’s dev:console. It can come in handy when you’re dealing with production issues and want to troubleshoot without actually interrupting what is happening. This is a little-known feature of n98-Magerun2 and should be in your tool box for just the right situation.
Max continues to sharpen his skills by participating in the Bug Bounty program and seeking out security bugs and vulnerabilities in Magento. It’s a great way to improve debugging skills and give time to a “cause” that will actually improve the work lives of developers all over the world.
It’s clear that Max is going to be back on Smash the Bug in the near future, with all of the wisdom he has to share and the knowledge we can glean from his experiences. What would YOU like to hear about from Max next time? Submit your questions to [email protected]!
(Theme music courtesy of Trending Audio)