The analogy between engineers and the carpenters will help us to understand the role of software engineering and how to solve engineering problems.
Last year, I had a good conversation with my senior. During our conversation, he told me the metaphor that Software Engineers are basically Carpenters. What??… I was shocked for a while. He was comparing software engineers with carpenters. Initially, I was not able to understand the meaning of it but, as I am thinking about it and after a year’s of more experience, I am getting his point of view and it’s a very helpful one.
How carpenter develops his experience
When carpenter joins the industry, generally a family business, then she starts learning about the basic tools i.e. the chisel, the screwdriver, the hammer etc. She spends a lot of time to practice these instruments before going to the next level. Her seniors also give tasks that require to use these basic tools only. When she is ready to move on the next level, she learns about the measuring tape, the moisture meter, the level, the layout square etc. Now, she has more skills in her skillset. Whenever she gets a new task, she thinks about the skills which she possesses and the skill which will be best suited for the current job. She practices this routine so many times in her career that, it will become automatic. This is how a carpenter’s career look like in general.
Software Engineer Journey
How software engineer develops his experience
How this analogy is useful?
The carpenters are doing their job great so do software engineers. But, as per my experience with other software engineers at different roles, I witnessed that sometimes software engineers tend to forget the last rule. They forget to think about the best-fitted skills for the current problem. They become a victim of “Every problem is a nail for a person having a hammer in hand” fallacy. This is one of the biggest problems in the software industry. If we can solve this one problem, we can solve so many other related problems easily. At our company, LogicalStreet.com, we inspire every developer to think before developing any code. We have a practice of creating documents for big features which again force us to think. This one single habit is helping us to earn our client’s happiness. Please let me know in the comment if you want to know more about our practices.
As we are growing the number of tools i.e. skills, we need to be very focused on choosing it while solving the problem. We need to think deliberately that which tool i.e. skill will fit the best into the solution and then, use it.
Call To Action
I am running my two online courses. Join my master 4-week course on “Ignorance of Software Developer and How we can reduce its impact” here: https://forms.gle/ 8RWe119KgGo8mBHF6.
If you are short on time then join my short course for “Practical Tips for Ruby on Rails” here: https://forms.gle/DLKSdhb7xardVreE6. This course is for all the levels of programming.
You will receive a PDF in your inbox once a week. It’s absolutely FREE!! Sign Up.
Mayurkumar is helping companies to take the stress out of software development and make their business shine. He has more than eight years of experience in designing and building scalable applications using different technologies.
Thank you for reading my article. Read more at https://mayurkumar.info