“Java is to JavaScript what car is to Carpet.” – Chris Heilmann
I have always considered myself to be a “non-technical” person. In my role, I could comfortably explain the product, but never enough to do any development. However, one day an itch of curiosity occurred after seeing my developer write a line of HTML code. Naturally, I decided to take a coding class for fun. At the end of my first class, my perceived fictional barrier to technical knowledge crumbled. It was replaced by the vision to be a better Product Manager and Consultant.
Write Better Stories
After going through my first assignment in my programming class, I can say clarity is everything. With reading, and rereading, instructions you begin to feel a great sense of empathy towards developers tasked with untangling requirements and piecing together desired outcomes. Programing classes help shift into a new perspective on creating stories. You start to ask, “If this was something I had to build, would I be able to understand the outcome?”
It also forces you to reevaluate if your requirements are restrictive. Being too specific with requirements leaves little room for the natural process of creative problem-solving. Your writing is refined when you accept the plethora of ways a story can be perceived. Instead of focusing on one solution, write stories with a commander’s intent. Emphasize how you communicate the vision, and let development teams have the creative room to successfully problem solve.
Break Down Barriers of Communication
Communication is tough. The difference between understanding technical knowledge and trying to repeat it is the same as talking on the phone or playing telephone. During the game, you are so focused on passing along the exact information you heard that you forget to consider the accuracy. Did your partner really mean, “I hike nice cream?”. If you speak the same language you can start to eliminate possible misalignment.
A good consultant and product manager can pass some technical information back and forth from client to team. A great one engages everyone in one conversation with immediate, fluid translations. Ideas flow when both client and team are a part of the dialogue. It allows you to bring your client more into the discussion and unlock greater value in your product.
Develop Deeper Product Understanding
Products have many layers. Learning the software behind a product helps you to develop accurate requirements and better-designed use cases. The functionality of technical products is about what it does and how it does it. You start to make better decisions about the product and the role it can manage by improving your aptitude in both areas.
The backbone of many technology products is the software that drives its capabilities. Software products hold critical advantages, but retain limits and risks. Understanding the software behind your product helps you to ask the right questions on potential issues and estimate time and effort.
Improve Your Thinking
Programming is frustrating. You write, rewrite, error, debug, internally cry, and eventually get to your solution. It is a process. However, this struggle develops critical skills. You learn to lean into patience and step outside of the problem. These skills are valued when faced with unanticipated issues and unforeseen events. Debugging your code teaches you a great lesson about being detail-oriented with problem-solving. Don’t forget to look at the scope of the issue and consider all answers. You might just find it was only missing a semi-colon.
It also helps you to exercise your brain to expand problem-solving competencies. According to a study done on the brain’s ability to learn, coding helps to strengthen and activate our learning centers. It’s like going to the gym for your brain; coding can help you strengthen how you process, remember and strategize in your everyday role.
As roles evolve with technology, we need to expand our definition of expertise. With that, I dare you to challenge yourself and say to programming <h1>Hello World</h1>