CIPS CONNECTIONSINTERVIEWS by STEPHEN IBARAKI, I.S.P.
Internationally renowned and widely respected enterprise architect, and author
This week, Stephen Ibaraki, I.S.P., has an exclusive interview with the internationally renowned and widely respected enterprise architect and author, James McGovern.
James, with 16 years experience in IT, is currently employed as an Enterprise Architect for The Hartford Financial Services Group. His co-authoring credits include the best-selling books: Java Web Services Architecture, Practical Guide to Enterprise Architecture, J2EE Bible, Enterprise SOA, and the recently released XQuery Kick Start. He holds industry certifications from Microsoft, Cisco and Sun, and he is a member of the IEEE and the Worldwide Institute of Software Architects.
Q: James, it’s quite an opportunity for us to have you do this interview. Thank you.
A: Thanks for providing this opportunity.
Q: How did you get into computing and into writing?
A: I entered the wonderful world of information technology (then called data processing) in 1984 as part of a work-training program in high school. I worked at a local Fortune 100 healthcare company after school in a department named Application Field Services and took on the task of writing a trouble ticket application first in basic and later in DataEase. Didn’t realize at the time that this would be my calling. Actually thought I would be a DJ at a radio station (I did fulfill this dream as well).
As far as writing is concerned, I first got involved as a technical editor for a book entitled Client/Server Programming with RPC and DCE. In later years, I figured I would try it myself and participated on several Wrox books and took it from there.
Q: You must have faced roadblocks along the way, how did you resolve these situations? What assets and processes proved to be the most valuable?
A: Honestly, I have been truly blessed throughout my career and life. The biggest roadblock I have faced is putting artificial constraints that are self-created in my path. One has to look within one ‘self and resist the temptation of being one’s own worst enemy and realize their true potential.
I am not big on processes and prefer to challenge others and myself to alternative ways of thinking. Sometimes the wheel needs to be reinvented.
Q: Describe the major challenges you face in your job and how you overcome them?
A: I had the opportunity to work at dot-coms and develop software from scratch with zero constraints and no legacy to haunt me. The challenge I belief is to achieve the right balance of being aggressive in the pursuit of the best solution that realizes the business goals, getting others to participate in a shared vision and maintain systems that were developed twenty plus years ago and have stood the test of time.
Q: As a Java expert, please share your most important tips.
A: I think the two things I would recommend to any developer are to encourage their project managers and peers to adopt agile methods for software development www.agilemanifesto.org) and to learn to read code before you learn to write code. So many people learn Java and how to program incorrectly.
Too many people focus on learning the syntax of a language instead of its personality. I would equate this behavior as being analogous to expecting to create a Picasso without ever studying what great art is. In the same manner that artist studies art, developers need to study others’ code before they embark on the lifelong journey of writing it themselves. It is important to recognize good code from bad code and this starts with reading.
Q: Contrast the different development frameworks?
A: I assume you mean frameworks that are targeted towards software development that include programming languages, libraries and the tools necessary for development including IDE’s, Profilers and so on. The fundamental goal of any framework is to reduce complexity. Of secondary concern is to aid in maintainability of software, help with extensibility and to support the implementation by separate teams. Some people will think about using frameworks for rapid code creation but this notion is shortsighted for a multitude of reasons.
Many corporations attempt to use frameworks as a crutch to fix problems that are better solved using other approaches such as fixing flaws in their software development methodology, not maintaining the appropriate balance from an organizational chart perspective of project management vs. strong technical leadership, and so on. Others have bought into the notion of best practices that become stale over time. It is my belief that it is noble to inject rigor into the process. At the same time, struggle to keep things simple.
Project managers may be familiar with the term Ockham’s razor that refers to the non-linear increase in complexity relative to code size. This is primarily driven by the number of participants. Complexity can be managed by appropriate choices in language. For example, Perl is a great language for small projects but Java is better for larger projects since it sets up the potential to manage complexity in an efficient manner through appropriate language constructs.
Another tool for frameworks and managing complexity involves code reuse practices. If the same thing is done twice, then it should be done in one place. Languages such as Java encourage code reuse but this admirable goal is sometimes goes unrealized because of organizational charts that reflect a stovepipe approach.
A good framework should include the following notions:
1) Code that reflects the business problem
2) Support for interfaces
3) Predictable behavior and protection against invariants
4) Separation of interfaces from implementation
6) Encapsulation of data
7) Dynamic binding
Q: From your column, what were the most vexing problems and their solutions?
A: The vast majority of problems are related to integration of two disparate software applications. The easy answer is to purchase a suite of tools but this results in the potential for vendor lock-in. Likewise, buying best of breed is sometimes good but may result in non-trivial integration tasks. The real answer to these types of problems lies in the merciless adoption of industry standards.
Q: Where is it all heading? What do you see as the major technologies in the future? How about predictions about their implementation?
A: The biggest challenge nowadays for a vast majority of Fortune 1000 enterprises is removing barriers that get in the way of integration. Companies need to focus on adoption of a service-oriented architecture in which applications are modularly designed services that have well-defined interfaces to each other.
A service-oriented architecture provides a unified framework for drastically lowering time to market for major applications development initiatives. Ideally an enterprise will adopt a strategy around Web Services, use of Enterprise Portals and Federated Identity to support the extended enterprise.
Business constituents are demanding a flexible environment that allows them to dynamically change the business and its supporting systems as the market demands. This mandates agile methods for developing systems. Enterprises that attempt to develop agile systems using rigid methodologies such as Six Sigma will more than likely not succeed.
Q: What’s the relationship between XML, XPath, and XQuery?
A: XPath is a strict syntactic subset (albeit large) of XQuery. They are all part of the W3C XML family.
Q: Can you provide some insights into the how and why of XQuery development?
A: XQuery expands the capability of XML to support a read-only query language construct that will be incorporated into future generation relational and XML databases, directory services and other products. Whether you are a database administrator (DBA), developer or network administrator, you will use XQuery in the future. Avoidance is futile.
Q: What are the major problems and successes with Open Source?
A: Open source is a viable model for software development that is starting to gain traction within corporate America. I believe the biggest problem rests with the concept of open software as being free (as in free ride). For open source to flourish and be sustainable, corporate America needs to adjust its thinking slightly to think of “free” as in “freedom”. Open source comes with both rights and responsibilities. One responsibility that is sorely neglected is that corporations should not only use open source but also contribute to it.
I would also make the point that open source is not really about software but is more of a model of software development. The days of waiting for users to sign off on requirements before development begins are over. Open source is a highly distributed model that builds mission-critical software without the overhead of status meetings, project plans and project managers. Open source is the viable approach to software development that enables real tangible cost savings.
Q: Can you make future predictions about specific products and services coming from the Open Source movement?
A: My crystal ball tells me that adoption of open source software will grow by leaps and bounds over the next several years. If you look at the evolution of open source software it is making significant progress up the stack. First, the operating systems problems were tackled by offerings such as GNU Linux, BSD and others until it became worthy to support mission-critical applications. Next came usage of software in the application infrastructure space with offerings such as JBoss (Java Application Server), JESS (Business Rules), Apache (Web Server) and others. The final step is to conquer industry vertical applications starting with software that are used by financial services organizations. Stay tuned.
Q: How about forecasting what the IT industry will look like in five years? What products and services will dominate and which ones will disappear?
A: In general, I believe that IT is taking a 360 turn in its staffing model. I remember starting in IT in the 80s. The way one became a manager was by being a good technology person. This model was changed in the 90s whereby many organizations allowed non-technology people and non-business people to run IT organizations. During this same period IT expenses grew at rates higher than revenue.
Just as it is important for your local police chief to know first-hand how to perform patrol duties, it is important that IT lean towards having architect’s and other technical resources follow a management track. This allows for leadership by example. Many CIO’s are starting to realize that they have managers and what they really need are leaders.
I have no insight on what services will be available in five years but do have some thoughts on products. I do predict that Microsoft will change its model to maintain its competitive advantage and will continue to retain an industry leadership position. I also believe that products that help enterprises migrate away from legacy applications in a cost-effective manner will become pervasive in the marketplace.
Q: Do you have comments about Web Services, its impact on traditional business models, and current trends in business models for Web Services, creating a successful long-term Web Services business model, and its impact on ROI?
A: Web Services is an enabling technology that allows an organization to build an extended enterprise that allows business partners and customers participate in dynamic e-Business. Organizations traditionally served internal constituents but now have the challenge of making their systems exposed for external consumption.
Web Services in of themselves have the potential to serve current, emerging and future business needs but must be combined with other practices including identity management, product line practices and portfolio management. Only then will Web Services provide an appropriate return on investment.
Its impact on traditional business models will require an organization to be less insular in its thinking about the problems it faces. Cooperation with competition will increase. Adoption of industry standards requires participation from all parties in the supply chain. Consumers and businesses will be able to conduct commerce with those with whom they had no prior relationships. This will require enterprises to truly differentiate their offerings.
Q: What are some common problems and their solutions facing developers today?
A: Developers face several problems today. First and foremost is the lack of training opportunities. In the world of declining stock prices, low interest rates and jobs moving offshore, the budgets for training are usually the first in IT to get cut. This of course doesn’t mean that the need for training and growing the capabilities of staff goes away -- it simply gets ignored. IT leadership needs to figure out alternative methods of providing knowledge to its workers whether it be in the bulk purchase of books such as Java Web Services Architecture, XQuery Kick Start or similar topics.
Q: Do you have some stories about very challenging situations and their resolution?
A: Several challenging situations come to mind. It is difficult to think about the most challenging one but I will take a shot. I would have to say it was working on the development of a large banking related application during the dot-com heyday in which we agreed to develop a system in six months before even knowing what we were going to develop. The additional challenge was I worked with people who were indoctrinated into heavyweight processes such as CMM that mandated extensive documentation before moving forward.
In this situation, I guess I was fortunate to get through the process by presenting tons of UML diagrams which were borrowed from the Rational Rose sample model, and could focus on building working software. Luckily the process involved individuals who only knew the fine manual but were clueless about good designs vs. bad designs.
In all honesty I believe the process was on the right track, but without the right people running it, will almost always result in the wrong answer. It is important not to get caught up in the motivation and only focus on the outcome. Project plans and comprehensive documentation are important but working software is more important.
Q: What trends do you see in program development? Please make some predictions about the future, and future technologies that businesses and IT professionals should be considering?
A: Senior IT leadership should focus on initiatives that help in the way of increasing the bottom line. This should include server consolidation, introducing the discipline of enterprise architecture and further refining the supply chain. In life, hindsight is always 20/20. It is important to learn from past mistakes and leverage this into reinventing the enterprise when it is appropriate.
Q: Do you have differing recommendations for small, medium and large enterprise organizations?
A: The recommendations I make are equally applicable to 100 person companies as they are to 29,000 person enterprises. Organizations all face the same challenges; make it easier for customers to conduct business with them, manage cost and make the right strategic decisions in order to future-proof their investments.
Q: Can you provide your list of the ten most important issues facing corporations and IT professionals today? How can these issues be resolved?
A: Here is my list in no particular order:
1) Lack of sufficient strong technical leadership
2) Lack of an enterprise architecture discipline
3) Difficulty to ensure their systems support sufficient levels of privacy and security
4) Threat of jobs moving offshore
5) Reducing the total cost of ownership especially for legacy systems
6) Maximizing IT efficiencies by creating an organizational structure that allows business people and technology people to work together on business-critical issues without politics
7) Protecting systems against acts of terrorism and the state of the world
8) Development of new systems that support strategic initiatives in shorter timeframes using less resources
9) Building the extended enterprise
10) Internationalization and globalization
Q: With regards to security, please provide your detailed recommendations in this area?
A: Security today in most enterprises focuses on policies vs. discipline and is primarily reactive. Security practices need to establish the appropriate budgets to support proactive protection of information assets. Reliance on shrink-wrapped vendor offerings is shortsighted and instead needs to inject as a discipline security practices starting from the developer to the janitor. Security is no longer the job of a department and must be collectively owned by the every employee in the enterprise.
Q: You must have both interesting and funny stories to tell from your many rich experiences. Please share a few.
A: Funny you should ask this question. I was reflecting with another colleague today in which I worked with in a prior position in the mid 90s. At the time we were both consultants and was asked by a client to perform a debate on the merits of using Microsoft vs. Oracle software for Internet development. I remember being put in front of fifty people at a major utility (name intentionally withheld) throwing difficult questions at me regarding Microsoft’s Site Server Commerce product and coming out with flying colors. I stumbled on only a single question, which was related to how did I get so much knowledge about how Internet applications should support credit cards. If one uses their imagination and thinks about the first real use of credit cards on the Internet then the answer appears obvious but I of course couldn’t mention it in front of a room full of people.
Q: Which ten resources do you find the most useful?
A: This may sound egotistical but the resources I consult most often are my own books. I usually find that if I cannot remember something about a particular technology, I may have written about it in the past or at least something similar that helps stimulate my memory.
Other resources that are useful are the following web sites:
1) Portland Patterns Repository
3) Various Yahoo Groups
4) blog sites by other authors I respect
Q: If you were doing this interview, what three questions would you ask of someone in your position and what would be your answers?
A: I believe it is important to understand what a person does outside of their work life, their hobbies, interests and aspirations so my questions would center around those themes.
Good questions would be:
Q1: What are your hobbies?
Q2: What are your interests?
Q3: What are your aspirations?
Q: Do you have any more comments to add?
A: None to add.
Q: It was a pleasure interviewing you. Thank you for sharing your wealth of knowledge with our audience.
A: I thank you for allowing me the opportunity to share some of my thoughts with your readers.