"Kojima: - I'm not a game producer because I want to make money - I just want to MAKE something. There weren't any good producers at the time I was looking for one, so I did it myself. I live and breathe for gaming, and if my job was just to lead a company meeting or something, I would never ever do it."
I am often asked, when I go in for interviews, what my goals are for the next 5, next 10 years. I think what these interviewers are really looking for is a reply like:
"Well, I hope to work on some certifications, continue my education as a developer, and work on project management at some point, blah, blah..."
Oddly, working as a project manager has never crossed my mind as a serious possibility. I can't even fathom the idea (at least at this point in my career) that I'd move away from the code, away from the act of creation.
My mother always asks why I'm crazy and don't go to/stick with big companies like JPMorganChase or Merrill Lynch, where I can make almost double what I'm making now. I think part of that is because I like to create things. When you go to companies like that, you don't create so much as do things. Yeah, I guess I could always satisfy my Lego-maniac side on my own time, but when you work in NYC, the commute really eats into your free time.
As Robin James Adams once wrote in his excellent blog post/essay:
"Programming is, above all, a creation act. In this sense, writing a good program is not so very different from designing a usable interface, or producing an aesthetic work of art, or writing a clearly articulated essay, or any of the other myriad creation acts humans delight in...For the programmer essentially works with concepts alone, he builds abstractions that have no real basis in reality."
And that is truly what I enjoy about programming and software development: the idea that I am creating some piece of code that someone finds useful. It is for this reason that I find that it is not nearly as satsifying working in the product space (i.e. working with SharePoint, Plumtree Portal, etc.).
"Kojima: - The technological development is also going so fast now. If you keep away from the development team for a period of time, you can't just pop back in. You just don't know what they're talking about. That's why I can never leave the development phase of games."
When I first arrived here at Immedient, I had a talk with one of my then co-workers, Kent Brown, about his design philosophy and his approach to software. It had arisen out of a discussion about Rockford Lhotka's CSLA framework, which he chose to build upon for a project that I was shadowing on. Kent explained to me that he had chosen this framework to build from because Rocky seemed like he was very close to the code; Rocky had an understanding of the real problems and challenges that developers face when building applications. I had just come from my horrible experience at Factiva where I had to deal with a so-called "architect" who was, to me, no more than a one time developer who now focused more on the business than on the technology, essentially, a manager. It was refreshing to hear Kent's perspective, though, on the subject of being an architect.
His sentiment mirrored the words of Mr. Kojima: you must always be deep in the code and the technologies with which you choose to build your creations with. Otherwise, you risk losing touch with the act of building, the act of creation and all of the difficulties and joy that go along with it. Kent also emphasized that he felt that one could not be a successful architect without knowing the technology inside and out since then there would be no base from which to design; any design born of such circumstances is doomed to failure. Such was the case with John, the self proclaimed "architect" at Factiva who had never in his days developed a single ASP.Net application and somehow ended up as our architect on this project, responsible for making technical design decisions regarding a technology with which he had no foundation in apart from a few introductory classes.
In The Pragmatic Programmer, Hunt and Thomas offer this as tip #8:
"Invest Regularly in Your Knowledge Portfolio"
Extrapolating on this, they add that, as developers, we should always try to:
ASP.Net is not even 4 years old yet and we are on the verge of an entirely new paradigm in developing web based applications with ASP.Net 2.0 (re:Atlas; okay, not entirely new, but just incredibly painstaking and difficult before). Just as Kojima points out in the game development space, in the web/desktop applications space, the technologies change so rapidly nowadays that, as developers, we really have to keep our nose to the grindestones and hold close to ourselves the passion for creation and self improvement.
I think Kojima's words and my recent work with the beta bits of .Net 2.0 and VS2005 have helped reinforce in my mind that it's okay to not want to head towards a management career path
Remember Me
newtelligence dasBlog 1.8.5223.0
This site is a combo blog/portfolio for me, Charles Chen.
Sign In