Technology was not native to me, at least relative to children and young adults today. Simple four function calculators started becoming popular when I was in Elementary School. I only had a single computer course in High School (it was the only one offered). We had a Timex Sinclair and later a Commodore 64 computer at home. It was fun, but I wasn’t hooked.
I started a car and motorcycle parts business when I was 18 years old. Initially I was looking for a way to get cheaper parts for myself and thought if I could make money doing it then all the better. Nearly everything I did was manual. Then I learned about a Radio Shack TRS-80 at college that had a word processing program. I used that to create mailings to parts companies, distributors, and potential customers. Before long I had a catalog of products that I could sell and a small but loyal customer base buying products and services from me. If Quickbooks had been available back then I may have kept the business running. Doing everything manually just took too much time. Even so, this was my first technology win and I liked it.
A few years later I was programming at a local marketing company. The MIS Director (what IT used to be called) decided to purchase a new relational database product that came with a 4GL application language. This was in 1987 and this technology was very new. The product was sold as being able to save “75% of your development time and effort.” Most of the seasoned people didn’t want to risk their reputations on something that might not work.
I was new and had nothing to lose, so for the next month I read every manual cover-to-cover. Before long I was working on new applications, and soon I became the in-house expert. This led to a fast track of promotions and being selected to develop the majority of new applications being sold. It was not easy, but it was definitely fun and good for my career.
My first and arguably most influential mentor was my manager at this job (Jim). He taught me about designing parameter driven systems that were flexible and extensible. He also taught me that “good enough usually isn’t good enough.” Most people are lucky to have one really good mentor during their career. I’ve been blessed with four of them at different stages of my career. It has motivated me to return the favor and help others whenever I can.
A few years later I was working at a software company that was creating a new standard product on this database platform. Nobody was trained on the product and most wrote their embedded C / SQL programs just like any other 3GL program. I pointed out to the VP of Development that this would be a problem. He didn’t want to hear that. I pushed for a concurrency test and everything locked-up. Many people were suddenly upset with me.
We spent the next two months creating functions to manage transactions, optimizing everything (even table structures to get the best byte alignment), and making this new packaged system work. The VP now liked and respected me and that changed our working dynamics. That shifted the focus from people and personalities to technologies and results.
We worked on other aspects of the system to enhance performance. We created a system much like Memcached in Perl (back in 1990) that allowed us to handle the workflow of even the fastest warehouses. We did many leading-edge things at the time (HA clusters with automatic failover, automated restart of remote devices to resume work in progress to the point of failure, outsourcing to India and an X.400 connection that I configured, distributed systems, client/server systems, etc.) I learned a lot from that experience.
A few years later I was working for a database vendor. This was in the heyday of consulting where projects were huge and rates were high. My first project (on my second day on the job) was being assigned to redesign a Risk Management System at an insurance company that started using our products. I soon found that the project had been going for two years, had binders full of specifications, but that nothing was actionable. I did not make many friends those first two weeks as I pointed these things out.
I offered to facilitate a JAD (joint application design) session with multiple lines of business. This pointed out issues that even they were not aware of and allowed us to begin designing a flexible system that would accommodate all lines of business. We used an agile approach to prototype the new system, demonstrations to get buy-in, and moved the project forward quickly. Six months later the first part of that functionality went live. The system was fully functional within a year!
I had the opportunity to work on some of the largest databases at the time (roughly 30 GB total which is small by today’s measures), work on leading-edge technology (Clustering, VLDB, and Enterprise Unix systems), and really become a true Consultant along the way (with the help of another mentor – Bill). I was sent to several Unix Internals courses and then worked with our Engineering team to improve our products and create configurations that supported other large companies having similar problems.
A few years later I was working at a small start-up company that created the world’s first commercial JDBC driver. I have worked with many very smart people before, but now I was working with a couple of very brilliant people. My main contribution this time was on the business side, but we learned a lot from each other as we grew the business to over $1M in sales within the first year.
One thing that sticks with me is that during this time I became interested in VRML (virtual reality modeling language). I had an idea (1997) that we could create a website to show the insides of buildings, productize it, and sell it to real estate companies and larger apartment complex owners. My idea was not well received by the team, but a few years later systems like this were being developed and a few people were making a lot of money. That taught me to have more faith in ideas based on new technology, regardless of what others thought. It also brought me back to an important concept in Business and Consulting, which is being able to communicate ideas and benefits in ways that are easy enough for everyone to understand as opposed to focusing on the technology itself.
Over the years these lessons learned have helped with BI (business intelligence) – building dashboards using relevant KPIs tailored to the specific audience, mobile computing, cloud computing, and now big data. To most people these things are “not important until they become important,” which is often 6 – 12 months (or more) later. From my perspective the real trick isn’t in trying to understand the next big thing, but rather to consider better, easier, and more efficient ways of doing things you do today.
This is why I love technology. It has helped me accomplish many things that have had a tangible impact on the businesses that I have worked for and consulted with. It has taught me to think about problems and ideas from various perspectives, and to leverage lessons learned in one area to help solve problems in another (i.e., transfer knowledge and skills from one area to another). Technology has provided me opportunities to learn about and work on solving business and technical problems in several industries as I ponder, “Why not?”
And, my interest in technology has allowed me to meet and work with so many interesting and incredible people throughout my career in so many industries and settings. That’s much more than I ever expected when I took my first programming course so long ago, and has become a significant aspect to almost everything I do.