A Year Under the Stairs with Python, aka Rekindling Innovation

Brian G Herbert
5 min readNov 29, 2022

--

I’m not a professional developer. I’m a product manager but my resume can confuse auto-filters because I love the creative process of development. Years ago when I was product-managing software built in Java, I earned a couple of J2EE certifications from Sun. Now that the analytics world is dominated by Python, I just had to get up to speed with it. When I started taking data science courses I actually hated Python. It's funny to think about my first impressions now, but comparing it to Java I felt it seemed too casual, or unstructured! I now admit I was wrong.

#The Zen of Python#
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.

I spent much of the past three years pushing myself to solve problems with python. I can now build python apps from scratch that integrate ~15 modules with perhaps 4000 lines of my own code, and I can complete an effort like that in 4–6 weeks. I identified analytics challenges from current topics where I could integrate popular NLP, ML, Visualization, and other packages. I set up challenges for myself that were non-trivial (not copying an overly simplistic tutorial) in order to have to work through tricky bugs and refactor my naive initial designs. Yeah- glutton for punishment! The weird thing about solving those problems was that the a-ha moments that ensued were ones I hadn’t felt in years. It was why I got into software in the first place.

I supposed what I did could be considered career suicide after 25 years in the software business. I had the resources to self-fund my deep dive into analytics for awhile, and I was fascinated by it but bored with what I had been doing. I took the road less traveled. After earning two data science certificates from Emory in Atlanta, I knew the concepts and read a lot of books and papers, but I felt like a poseur. If I couldn’t crank out Python, I wasn’t crap! I started designing and building stuff on my own.

Moving to PyCharm allowed me an efficient code-run-debug cycle and better concept of app structure

I started out hating python. In my data science courses it felt like we were doing serious quantitative analysis in something akin to VBA (yeah, I’ve done my share of programming Excel macros). Once upon a time, I was a certified Java J2EE developer, so I thought verbose, type-obsessed, and difficult to do anything past “Hello, World” was the mark of a true language. Then I realized that Python is more than a Jupyter Notebook, and the language was created and enhanced with an ethos of simplicity and power. The Python manifesto is something to return to periodically as more of the language is revealed to you.

Before diving in I did some research on development environments. I tested Eclipse Pydev, PyCharm Pro, Atom, Spyder, and a couple others. I found PyCharm Professional to be exactly what I wanted from an integrated desktop dev environment. The ecosystem of plugins and integrated tools is outstanding, the integration of source control and synch with Github is seamless, and the windowing environment allowed me to move quickly between coding, running, evaluating, and debugging. One of the most powerful features is the accessible list of runtime variables, allowing clickable drill-down into the structure of class instances or ML models. As for my dev machine, I’m a big fan of the macbook pro. Last year I upgraded to the fastest quad-core i5 with 16 gigs of RAM. For analytics stuff I run locally, it works great.

I decided to expand on my story because it is atypical. I go out of my way to test alternatives or to look at things differently. I feel without that there is no innovation, and innovation is more valuable than repetition when faced with accelerating change. I don’t believe in shaking things up for no reason, I just believe opportunities for continuous improvement are all around us everyday, yet our interests and allegiances too often discourage us from pursuing them.

Early in my career, I read books like, “The Soul of a New Machine”, or about the early hacker lab at MIT or skunkworks projects in Silicon Valley. We naturally apply consistency, repetition, and division of labor to everything we do in an attempt to become more efficient and squeeze out costs. But on the other side of cost is value and innovation- and the drive to identify breakthroughs. We need a bit of both in any going concern, but I think fears of an uncertain future and loss of protected markets have shifted us too far toward efficiency and cost control. The worker reaction: do what is required and no more.

I wrote an article on Medium recently on the #QuietQuitting phenomena and the changing workplace. I claimed the game-changing management approaches and methodologies of the last 70 years all have shared elements that motivate employees to take initiative and win. There’s an alignment to common interests and a shared responsibility for change, information transparency flowing down the organization, and empowerment of line workers or teams to make decisions to address problems and improve the business. from TQM through to Lean Startup, they are there because they motivate, empower, and get results. My python/analytics sidebar to my career was invigorating, but why did I feel the need to do it? I hadn’t worked so enthusiastically and through such long days as when I was determined to complete one of my custom analytics apps. It made me think a lot about motivation, trust, healthy cultures, and related things.

Enable innovation and continuous improvement by busting up the roadblocks that discourage it. Think about the agency costs in your organization that arise from conflicting allegiances and goals. The opportunity to suggest and implement a new idea or to fix something can truly make a job rewarding. What is the aggregate value to the business from removing the obstacles to employees pursuing those improvements, plus the increased productivity and retention of those employees? It’s worth more than the political security of some middle managers, isn’t it?

I pushed myself to learn something in which I felt like an idiot at first. When I started I was looking up every other command in python and it was painful. Now I can build functions or classes in python with a smooth flow and a focus on higher-level components of the design. It’s a testament to neuroplasticity, but also a realization that we make too much of past skills, and not enough about the potential in each of us.

--

--

Brian G Herbert
Brian G Herbert

Written by Brian G Herbert

Award-winning Product Manager & Solution Architect for new concepts and ventures . MBA, BA-Psychology, Certificates in Machine Learning & BigData Analytics

Responses (1)