Careers: Interviews
Leading enterprise architect and authority on Java J2EE, SOA, Web
services, XQuery, Cisco...
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
5) Normalized data
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
1) What are your hobbies:
Playing the video game Diablo, martial arts and hitting golf balls
into the woods on every tee shot.
2) What are your
interests: 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.
3) What are your
aspirations: 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.
|