Describe your first computer program.
The first I remember was a tic-tac-toe Java applet back in the summer of 1995. My good friend John and I purchased O’Reilly’s ‘Java in a Nutshell’ book in March of that year. I voraciously read and tried the book’s examples all during a time when Java was still looked at as a revolutionary technology for delivery software applets over the internet. I remember the excitement as the tic-tac-toe squares lighted up at an increasing pace. This all in my Netscape browser!
Which programmers influenced you the most during this period and why?
My friend John for sure as well as many of the pioneers I discovered reading Programmer’s at Work.
How would you summarize your early professional years?
I started working at the height of the first dotcom bubble which gave me and other young twenty-somethings much more credit than we deserved. My young age coupled with my lack of experience was, in reality, a forte in the eyes of hiring managers looking to ride the internet bandwagon themselves. Knowing it was a unique period, I sought as much responsibility and diversity as I could.
What attracted you to the people and process aspects of software development?
I struggled to build software for the sake of building software. While i didn’t know it early in my career, I came to discover that I was almost single handedly motivated by user needs. I also realized that much of what hampered the quality of the software products I was involved with had very little to do with the technology being used but instead had a lot to do with the development practices that weren’t being followed or the poor hiring decisions that were jeopardizing team effectiveness. During graduate school, I turned my interests away from strictly technology and more towards understanding the requirements elicitation process. I came to realize that identifying and building for the right user needs was the single most important step in the software development process.
What are the core values and principles you’ve acquired during your career?
Trust your team.
Continuously improve your skills and knowledge.
Know your talents.
Know the difference between efficiency and effectiveness.
Remember that your first day of work dates back to your job interview.
Be religiously unselfish.
Avoid burn out.
Write Things Down.
Always learn ‘something else’ from what your doing.
Leadership by example.
How do you stay productive?
Agile methodologies, my moleskine, innate discipline, a computer.
How do you see the software industry evolving over the next 5 years?
I’m still trying to catch up from all the changes in the previous 5 years. Big data, real-time social media, dynamic languages, nosql, mapreduce, HTML5, git, Ruby on Rails, Behavior-driven development, 32-core processors, Lean software development, and many more are helping us mature our way out of Web 2.0, out of the need-to-know and need-to-share culture towards one of maybe need-to-predict? Imagine the day when the oceans of heavily merged datasets allow us to introduce predictive intelligence to every aspect of the software development lifecycle.