is it like to work with Eagle? Perhaps the best answer is to say something about how we
view our work and what we consider important.
simple, and in a way it is—but how often do software developers
really make the quality of the end-user experience their top goal?
software is exploration. It’s a joint exploration by the customer
and the developer. It requires attention, patience, and an unbending
search for optimal user experience. It may require a deeper understanding
of your business rules and processes. It may involve refinement
or reformulation of goals.
When this exploration
yields a design and then an implemented system, its success
is measured by the quality of the end-user experience. Software
should connect each user so comfortably and efficiently with the
business process that it is delightful to use—always supporting
the user’s needs in a natural, effortless and productive way.
attain this quality only when customer and developer begin with
respect for the user—when the needs of direct and indirect users
are the ultimate priority. It can’t be achieved as an afterthought
or an item on a checklist. It has to be the foundation of the development
process, from the first moment to the last.
the user experience requires a thorough understanding of the goals
and practices of the user. It requires intimate knowledge of what
developers call “the problem domain.” In any business there are
a unique vocabulary, a local world view, practices and processes
that have evolved to meet the specific needs of the business.
A software application
doesn’t necessarily try to mimic an existing business process—on
the contrary, a new application often offers opportunity to clarify,
improve, make more robust and flexible, and perhaps at the same
time to simplify. But whether an application closely follows existing
practices or is part of significant change in the business process,
it can be successful only if the developers have come to a clear
and true understanding of the problem domain.
may seem both obvious and simple, but it is not. Anyone who has
helped design software has seen the real challenge of creating
a clear, consistent and valid description of the problem domain.
In any existing business, whether it be strictly human-based or
already computerized in some form, elements of the problem domain
include documents, information structures, information content,
processes, goals, standards, users, information consumers and donors.
Facing these elements, one encounters impediments to clarity in
many forms, such as:
having multiple meanings or used inconsistently
- terms no one can accurately define
done in a certain way, but no one knows why (even
though there may be a good reason for it)
or incorrect understanding of relationships
about levels of abstraction, points of similarity,
points of distinction
A thorough and
orderly understanding of these elements of the problem domain
is essential to successful software development. To gain this
understanding, several things are required. First, to realize one
does not understand it—and this applies in some degree to the customer
as well as the developer. Then to acknowledge there are no shortcuts
to understanding—it is the essential beginning point for all software
development and must be an explicit part of any methodology.
For our part,
our aim is to offer open and collaborative support of your goals.
We should be the medium through which your expressed needs and
desires are transformed into software that works beautifully in
the real world.
This is never
as easy as it sounds, and we know we must contribute patience,
endurance, and intellectual rigor to the process. We must also
bring a respect for your budget as well as the time demands on
your personnel. We know our obligation is to “make it happen,”
do so within the constraints of money and time that make the project
points—respect for the user, understanding, and a supportive relationship—are
essential to how we work, but they don’t happen by themselves.
The force that keeps these elements alive is project management.
“Project management” sounds dull and mechanical. It’s not. It’s
the heart of the effort to develop quality software. And it’s the
role of the project manager to continually keep the entire team—developers
and stakeholders alike—close to the principles which lead to successful
But project management
requires more than keeping the team to essential principles. It
must be able to measure progress in a valid way, both in terms
of result and cost. This, too, is a challenge, as everyone knows.
To meet this challenge, Eagle has developed proprietary project
management methods and software. We believe this has given us exceptional
insight and control of project progress and costs.
All of this
sounds like promises. They are. Promises of what you can expect
when you work with Eagle. But they are not just promises, they
are also a description of how we have worked with all our customers.
Eagle has developed hundreds of business applications over the
years for scores of different customers. We have delivered every
time. If you are considering Eagle as a resource for your software
needs and would like to check our track record, let us
know. We’ll be glad to put you in touch with some of the many people
and companies we have worked with. And we’ll hope
to include our work with you as a success story, too.