One recent incident led me to think of another that led me back to some profound words by a previous supervisor “If it was easy, we wouldn’t need you Fernando”. I think those words came after he thought I was complaining about how hard the current problem was.
I spent more than a few good hours yesterday learning the ins and outs about Webpack. I started by taking the course on Udemy – Webpack Fundamentals by Joe Eames. I then went and created an Asp.net core react project using VS 2017. The project worked out of the box but I wanted to learn more about configuring Webpack myself. So I went through adding all the required modules and loaders to get the project to run using Webpack.
Later, I found this was a waste of time because VS 2017 React project uses react-scripts which already provide all that plumbing. The more I think about the word “plumbing” the more I think it’s a good name for it since I know next to nothing about plumbing. And sometimes that’s where the problem exists, in the area we know nothing about.
In the end, I got a good lesson out of all this. I learned how to configure a project for Web-pack to build it and run it. Albeit, it was a waste since Create React App already provides that through the react-scripts module.
At least now I know what goes on under the hood of react-scripts. React-scripts hides all that Webpack stuff from you. When something just works it is awesome. Until it doesn’t and if I know one thing about coding is that at some point that cool thing that just works will break.
This got me thinking. There is still a lot of value in learning what goes on under the hood.
I’ve always said that the software development industry is like any other other industry. In any other industry each layer further back is more specialized. For example a mechanic can replace an alternator but he does not rebuild one. That is not necessarily true for developers. When our stuff breaks we are required to fix it, by the most feasible way possible. Essentially, sometimes, we have to dig in an replace the electrical brushes on that alternator.
Thank goodness for websites like Stack Overflow and online resources. But, even then, sometimes that is not enough. Sometimes all we are looking at is the symptom but there are hundreds of possible root causes. With that, it can lead you to some very specific fixes that display the same symptom that your problem exhibits but it may be due to a different root cause.
Who are we going to call then? We have some options, like our peers and try digging some more until we hit a breakthrough. So that’s why it’s good have a lower level understanding of the tools and technologies we work with, like learning how react works, even if we don’t need to know. At some going we are going to deviate from the normal path and things will get unruly.
That can get us stuck. Sometimes it takes the whole team. Sometimes we are still stuck after all that. One thing we can do is bring our options to our supervisor and they can suggest a path. Many times that works out the best. After all, they have to make the decision on how to best allocate resources.
One thing we can never, ever do is complain about how hard it is unless we want to hear those dreaded words “If it was easy we wouldn’t need you, Fernando”.
The lesson here is that you should try to get deeper levels of the technologies and components you use because google does not always have the answer and regardless of that you are going to be responsible for fixing the issue.
One final disclaimer is that this supervisor was actually really cool guy and he meant it as boost of confidence not by any means in bad way.