Skip to main content


developerWorks  >  WebSphere  >  Community  >

Author spotlight: Geoff Hambrick

developerWorks

 


Geoff Hambrick's bio
Photo: Geoff Hambrick Geoff Hambrick is an IBM® Distinguished Engineer, member of the IBM Academy of Technology, and the technical lead of the IBM Software Services for WebSphere Enablement Team. He currently spends his time creating and disseminating best practices for applications hosted on IBM WebSphere® related technologies and products. Geoff is a frequent conference speaker and authors a regular series in the developerWorks WebSphere Developer Technical Journal called The EJB Advocate, which is as much about service-oriented architecture (SOA) and model driven development (MDD) as it is about EJB best practices.

Geoff has been lucky enough to live in Austin, Texas since 1977. This explains a lot. He started his career in application development as soon as he learned how to program while earning his BA degree in Computer Science from the University of Texas. He paid his way through college by taking freelance jobs with small businesses around town. After graduating and learning that he was a better analyst and programmer than a salesman, he took a job with Texas Instruments® (TI) Management Systems department. There, he learned the joys of using COBOL and IBM mainframes to develop enterprise quality applications. This also explains a lot. While at TI, Geoff used his skills at developing software tools to build code generators and interpreters to make himself and the other programmers around him more productive, earning him numerous Method Improvement Awards.

Geoff left TI in 1986 in the midst of a very successful career to go back to graduate school to study Psycholinguistics with a focus in Artificial Intelligence and Human Factors. This explains even more. While at University of Texas, he became an intern at IBM in the AIX Human Factors department for a year, running usability studies and suggesting improvements to the product. Before long, IBM offered him a full time permanent position in the AIX® UI Architecture department. Given that he was living in married student housing with a wife and three kids, he gladly accepted and has never looked back, especially since he has found that IBM is a company that fosters innovation and rewards achievement.

Geoff has had many jobs in many different areas of IBM, but each has had three things in common (besides being in Austin): 1) every one of them involved working with people to help them do their job better, 2) every one of them made him better at some aspect of object technology, and 3) every one of them built upon the last one. This experience has made him extremely passionate about reuse, tools, and separation of concerns. All of these passions come together in the idea of Model Driven Development. His current job as technical lead of the IBM Software Services for WebSphere Enablement team gives him ample opportunity to apply all three of his passions because he works with other consultants and customers to use the newest IBM Software Group products, especially those associated with the WebSphere product family. In 2004, Geoff was appointed an IBM Distinguished Engineer and elected a member of the IBM Academy of Technology for his work in creating and disseminating best practices around J2EE and WebSphere Application Server. His latest focus is bringing his experience with workflow-based systems to bear on developing best practices around Business Integration and WebSphere Process Server.

When Geoff is not being a complete nerd about application development using object technology, he likes to hang out with his wonderful wife Cindy, his two sons Austin and Alex, his daughter Lesli, her husband Tod, and her kids Ella and Clara. He especially likes to play with his two grandkids, and go hiking and backpacking whenever possible. Cindy and Geoff are working their way to the high point of each of the 50 United States and various foreign countries when they get a chance. He has climbed Mount Fuji in Japan twice, first alone and the second time with Cindy and his two sons. He will probably go at least one more time. Maybe this explains the most of all, given that there is an old saying in Japan: "He who climbs Mount Fuji once is a wise man, but he who climbs it twice is a fool." Interestingly enough, this adage doesn't say anything about he who serves as a guide to others.


Back to top



Geoff's articles
TitleDescription
Project management tool implementing authority for a people oriented work environment tool (1995) This was my first patent application (filed in January of 1995 and issued in September of 1997). It concerns an object-oriented approach to defining work flow systems and human tasks developed while I was in the AIX tools team. I list it because it is proof that "what goes around comes around". WebSphere Business Integration tools like Modeler, Monitor, and WebSphere Process Server incorporate similar ideas. The basic building block approach described in this patent will play into my thinking about WebSphere Process Server best practices.
Tailoring OO analysis and design methods (panel) (1995) This refers to the proceedings of an invited panel at OOPSLA '95. My position paper described an approach to tailoring methods we used in the OOTC that focused on essential work products and separation of concerns.
Object Technology Centers of Excellence, Chapter 2. The IBM Object Oriented Technology Center (1996) This chapter, co-authored by Tom Kristek, Geoff Hambrick, and Tom Guinane, describes how the IBM OOTC drove IBM projects to effectively use object technology for the first time in the early 1990's. The OOTC mentored education approach serves as the model for the IBM Software Services for WebSphere team. If you are looking to build a team to drive your enterprise architectures, this chapter is a must read. And you can actually download it as a free sample chapter! Sorry Tim.
Developing Object Oriented Software, an Experience Based Approach (1996) This book, is one in which I was one of what we jokingly called the "Gang of Four Squared" IBM Object Oriented Technology Center (OOTC) consultant/authors because there were sixteen authors. Seriously, it is the first we knew of to describe a work product centric approach to analysis and design methods. While some of the notations are dated, the advice and guidance on when to apply the various work products and approaches are still sound. There are some hidden gems in there, such as the "transcribe and converge" process that I still use to bring together teams with differing points of view. Also, the use of workbooks to enable multiple folks to come in and out of a project with minimal disruption is at the heart of how I drive most of my consulting engagements, large or small.
Redbook: WebSphere 3.5. Handbook, Chapter 3. WebSphere Programming Model (January 2001)The best practices described in Chapter 3 are as relevant today as ever because they start with modeling the business process, and then map the model components to the underlying J2EE technology upon which WebSphere Application Server is based.
Introducing the EJB Advocate (January 2005)This is my inaugural column on using EJB components as a target for service-oriented architecture and model driven development. The fundamental principle it introduces is that "there are no bad patterns, only bad applications of patterns".
The EJB Advocate: Getting EJB Cross References Right (January 2005) This article shows how to use local and remote session beans to get maintainability.
The EJB Advocate: Making Entity EJB Components Perform, Part 1 (February 2005)This article shows why facades are so important to reduce the chattiness between the layers, especially where entity EJB components are used. Basically says that an Entity EJB should be local to its facade.
The EJB Advocate: Making entity EJB components perform, Part 2 (April 2005)This article shows how to use CMRs to enable preload caching and other performance optimizations to be configured at runtime rather than requiring code changes. Sneaks in the use of an application specific object model to drive the discussion, and points out the differences between OO and Procedural style programming at the heart of most debates around using entity EJB components.
The EJB Advocate: Is it ever best to use EJB components without facades in service oriented architectures (June 2005)This article shows various approaches to developing facades, some of which end up re-inventing the major components of the J2E framework. This article also introduces an often overlooked feature of CMP 2.0, the Custom Home method. This provides a built-in facade that is even easier to use than a session EJB and greatly simplifies the overall architecture. Could have done a better job of Model Driven Development here, but there was so much code to compare that the article was already really long. Net: Find a gateway entity associated with a major role in the business process (see the "Conclusion" section).
The EJB Advocate: Which type of EJB component should assemble the data returned by a service? (August 2005)Questions the longstanding idea of returning Data Transfer Objects from local entity EJB components, arguing that maintainability was rightly traded off in the EJB 1.X days that may not be valid today. This article really dives into Model Driven Development, suggesting that a screen flow model be used to drive the read methods of the facade and that the business process model be used to drive the update methods. Using Custom Home methods on the entity as the facade may well make the issue moot.
The EJB Advocate: Implementing loosely coupled SOA applications using Java EE (December 2005)This column describes how Message Driven Beans and HttpServlets can play a role in mapping a business process model to a Service Oriented Architecture, where the client and service components need to be hosted on different applications with different availability characteristics, operating systems, and programming languages. The facade (session bean or custom entity Home methods) become the hub of the wheel.
Botzum, Brown, Hambrick: Why do non-functional requirements matter? (January 2006)This article discusses the importance of factoring in the crucial non-functional requirements of an enterprise application into your thinking about best practices. This factoring will play a prominent role in the coming year as we shift Model Driven Development into overdrive. Hold on to your hat!
The EJB Advocate: Is EJB 2.X dead yet? (February 2006)This article shows how the benefits provided by EJB 3 and the Java Persistence API are good, but that they require you to make some simplifying assumptions that may not work for everyone. And that almost all of them can be provided in the EJB 2.X specification with the proper tooling. Therefore, it is likely that EJB 2.X will be around for a while.

Back to top



Geoff's recommended reading list
TitleComment
Object-Oriented Modeling and Design by James R. Rumbaugh, et alWhile there are newer books about notations out there, "OMT" still ranks among my favorite to learn the basics of object-oriented modeling and design. It introduced the notion of association classes, which led to my epiphany that everything is an object, including relationships, states, transitions, processes, and data flows.
The specifications associated with every architectural standard you use and abuse, especially those associated with Java Community Process, W3C, and Eclipse It is amazing how many folks who complain about a given technology fail to read the specifications about it and exploit all that it has to offer. They usually are looking for excuses to invent their own framework. Also, something to remember before inventing is that most standards describe an architecture that you can extend, or even implement yourself if you don't like what the platform vendors have done. Do it right and you can even use your implementation alongside those of other vendors! As an aside, I have included the Wikipedia link to each because that in itself is a fantastic must-read resource.
Enterprise Java Programming with IBM WebSphere, Second Edition by Kyle Brown, et alKyle has applied his long history of experience with patterns and object technology into writing this book on EJB best practices.
IBM WebSphere: Deployment and Advanced Configuration by Roland Barcia, Bill Hines, Tom Alcott, and Keys Botzum Roland, Bill, Tom, and Keys are the first folks I look to when it comes to deploying the J2E and WebSphere-based applications I design and develop.
Performance Analysis for Java Websites by Stacy Joines, Ruth Willenborg, and Ken Hygh Nobody knows more about the practical aspects of making Web applications perform than Stacy, Ruth, and Ken. Test early and often!
Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf Bobby and Gregor have done a great job of capturing the basic. Enterprise Application Integration patterns that you can apply to any target platform and language. In my new focus on all things WebSphere Process Server, I keep running into folks using these patterns.
Extreme Programming Explained by Kent BeckWhile I don't think there is really much new here (see my blurb above about how people react to standards, people treat methods exactly the same way if not worse), Kent's book makes you think about what is essential for successful software development. Anyone who is defining (or better yet, tailoring) a sustainable method for their team to use should be able to position its practices against the 12 explained.
Roland Barcia's, Keys Botzum's, Kyle Brown's, Ruth Willenborg's or Bobby Woolf's articles and reading lists Anything written or recommended by these folks is definitely worth a look. And to shamelessly plug my own articles, chapters, and books as recommended reading, I do not write as much as I'd like to. But when I do get the chance, I try to capture general principles that go beyond the specific technology used to illustrate them.
Bartlett's Familiar Quotations by John Bartlett I like to put classic quotes in my best practice presentations to illustrate the point that there is almost nothing new under the sun. Either classic quotes or lines from Monty Python and the Holy Grail, or Harold and Maude. Never take yourself too seriously. Who said that? I guess I did!
Guide to State Highpoints I am always plotting my next peak. By tackling them in inverse order (except for McKinley), I guarantee that as I get older and feebler, I will still be able to make progress towards my goal.

Back to top


 logo

Document options

Document options requiring JavaScript are not displayed


New site feature

Check out our new article design and features. Tell us what you think.


Related information
developerWorks community
WebSphere forums
Meet the experts
WebSphere Developer Technical Journal

Special offers
Download websphere software
Industry formats & services with pureXML samples

More offers