My name is Michael and I live in Houston, TX. Ever since I was young, I have been intrigued with puzzles and solving them. There were the sliding tile puzzles, metal ring puzzles, wooden block puzzles; you name it and I was into it. Whatever puzzle I encountered, I would not put the thing down until I solved it, with the first solve usually being surprising and abrupt. Solving it still wasn’t enough. I kept doing it over and over until I mastered the solution and really understood the problem, being able to identify the patterns, and understand the causality of each action.
Puzzles to Programming
I took my first computer science class in high school, and fell in love with writing code, watching it work and improving it to make it faster, more efficient, and more usable. My very first independent coding project was to write a Snake game (during French class) on my handy dandy TI-82 graphing calculator. I realized that writing software exercised my puzzle-hungry mind, and I could create anything that I could think of.
I stuck with it and studied computer engineering at Texas A&M, computer science at Johns Hopkins, and have been working professionally ever since.
“One slice of value, please!”
Throughout my career, the most important thing I have learned regarding how to be a good coder ironically has nothing to do with writing code. My job as a software developer is not to write code; rather, my fundamental purpose is to bring value to the user. Yes, the value is realized through carefully-written lines of code, but if those lines do not deliver value, they are better off not written. In fact, I feel strongly that it is my duty to do my best not to write software that doesn’t bring value, since it is a waste of time, money, and mental energy.
Apart from how it impacts cost and time, the end user doesn’t care how many lines of code I have written, whether I prefer Emacs or Vim, or what source control tool I like; they want value and they want an increment of value as soon as possible. They don’t want to wait for the whole cake to be done; they want the cake a slice at a time so they can get on with doing whatever it is they need to do.
Since the user is driven by value, it is absolutely critical to gain insight into the value streams, which describe the patterns of value and how value flows to the user. This insight is absolutely imperative and can be obtained through regular and effective communication, frequent software demonstrations, and focused user stories.
I am happy you visited Insight Coder and would love to hear from you. If you would like to reach out, please feel free to contact me.
– Michael –