INTERVIEWS 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.
Discussion:
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
2) theserverside.com
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?
A1: Playing the video game Diablo, martial arts and
hitting golf balls into the woods on every tee shot.
Q2: What are your interests?
A2: Currently when free time allows studying of Arabic and Hindi. Reading books by great luminaries such as Rush
Limbaugh, Dr. Frances Cress Wesling, Scott Adams, Richard Stallman, Jawanza Kunjufu and Al Franken.
Q3: What are your aspirations?
A3: To be Chief Architect of a Fortune 200 Enterprise in 2004 and CTO by 2006.
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.