Saturday, December 16, 2006

Dennis Frailey: A Day in the Life

Last week I was lucky enough to be in a 3-day training course on project management. I was not entirely sure this course was a good idea for timing and content reasons, despite having a great interest in the topic myself-- but the instructor proved me wrong.

Rather than the usual consulting company instructor (these people often piss me off), we got a thoughtful, wise practitioner, who impressed all of us (a tough crowd) with his depth of experience in the software industry and his thorough research understanding of the problems we were facing.

Dennis Frailey's ACM "a day in the life" bio story is here. The university classes he teaches are described here. He has made career changes based on revised understandings of the "real" problems he encounters in daily work. I share his impressions about research and practice, although I've had far less experience than he has at either:

Although I loved teaching (and still do it on a part time basis), I quickly learned that survival in academia is based on "research", not education. And the numbers game rewards you for cranking out large numbers of papers rather than small numbers of really good papers. I did some innovative research in the areas of real time operating systems and computer architecture, but I found most of the really interesting work in these fields was being done in industry... And when I was granted tenure, I learned that the research that counted the most was what I had done for industry and could not have done in academia. Moreover, there is a certain sense of satisfaction one gets from building a real product that one cannot get by writing research papers. This led me to consider and ultimately to accept a permanent move to industry, which I did in 1977.

Once in industry, at the corporate engineering center of Texas Instruments (now part of Raytheon), I discovered something else. Most of the real problems are not to be found in the research labs but in the areas where real products are being planned and developed. Thus I migrated from doing computer architecture research to actually building computer and software systems that had to work. This gave me a deeper appreciation of the intellectual challenges and rewards associated with "getting dirt under your fingernails" so to speak. It also gave me a totally different understanding of what software "engineering" is... Once I had to make reliable systems that peoples' lives depend on, I began to appreciate the need for "engineering discipline" and for greater emphasis on understanding the processes we use to develop software. This led me to move into new parts of the company where I learned about different kinds of issues. Many years later, my varied background has qualified me for a senior technical position where I am expected to understand the entire scope of a problem, from the technical details to the management concerns.

I bailed from research for some similar reasons, during the dot com boom. I've also had the intuition for years that the hardest problems in building software are not the technical problems or even the design problems, but the management problems. Which may be one reason that UI design and usability methods haven't had the impact they should have had on the industry -- not because of lack of the value they add, but because lack of organizational historical data (of most kinds, but especially quality and process-related), management incomprehension and lack of good design and planning during the dev process, and resulting interdisciplinary confusion and contention when pressure hits. Not to mention that even without the design process differences that UI and usability introduce, complex software development management seems to be entirely lacking at many companies. Chaos, confusion, and conflict are the norms I've experienced in most schedule-driven releases. Few people can make the complicated, emotionally-laden tradeoffs required in a mature, big-picture style, because there just aren't enough managers with this kind of skill and vision.

You can tell a lot about someone from who they admire and why. Dennis's response to this question:

One man I admire is Eugene Helms, who was my first boss at Texas Instruments. He would often sit through a meeting, say very little except asking a few questions, and in the end would sum up the most important points - i.e., he listened, thought about what he was hearing, and put it all together. He also trusted those who worked for him to know more about their specialties than he did. As a result, he could see the big picture better than just about anyone else. He was kind and supportive, and he would stand up for what was right.
I admire Dennis, and I hope that says good things about me.

1 comment :

Dennis J Frailey said...

I really appreciate these kind remarks. Comments like this make my efforts worthwhile.

Dennis Frailey