

|
|
A1. Do you
give fixed-price bids?
We can give fixed-price bids in cases where
project requirements and scope are well-understood.
But although a fixed-price bid in theory guarantees a known cost
for a project, this approach has limitations and is not necessarily
in your best interest.
When a software developer agrees to a fixed-price,
it is in relation to a specified scope of work. Whenever scope
is clear and unlikely to change, fixed-price can be a good
approach. But that’s not typically the case. Most business applications
begin from a desire by the customer to explore the
possibilities of the new application, including such questions
as: How can I get the most leverage from the new software? What
new information can be available to me? How
can I reduce workload and improve efficiency of my staff?
How
can I improve service for my customer? How close to "real time" can
my view of my business be?
On the other hand, after
the requirements and external design have been documented and
accepted, the remaining scope of a project is much more predictable.
At this point we often give a fixed-price or not-to-exceed estimate
for
the
remaining design and implementation work. If additional features
or changes are
requested, we can simply track them as separate
tasks from the main project. This approach gives you the protection
of
a firm
cost estimate , but retains the flexibility to make changes
if necessary.
A2. Why is custom
software so expensive?
The answer is a bit more complicated than
the question. All software is expensive, and in an absolute sense,
of course, custom software
is usually much less expensive than product software—it's obvious
that an application like Microsoft Word or Excel costs
many millions of dollars to develop, but is relatively inexpensive
to buy because its cost is spread among millions of customers.
Custom software
is created for a very limited number of customers—usually one.
The key, of course, is to develop custom software only for specific
needs
not met by off-the-shelf products, and where there are tangible
economic benefits. In many cases these benefits are sufficient
to make custom software at least as cost-effective as off-the-shelf
software. There are other advantages, too, including the
ability to modify or extend the software as your organization
grows or your needs change.
Other useful questions would
be:
- If
I need custom software, how can I maximize its effectiveness—how
can I fully exploit this
opportunity to blend our
business processes with new software in order to boost the
productivity of our personnel, reduce our
costs, and improve service to our customers?
- How can I be sure the
software we develop is reliable and a pleasure to use?
- How to insure that the software is flexible
and adaptable for future needs?
In other words, how can I make
sure the money we do spend on custom software is well-spent?
As
software developers, our job at Eagle is to deliver the right
answers
to these kinds of questions. The essence of our work
is to create cost-effective software of exceptional quality
and utility. When that effort is successful, custom software
may
not seem
so expensive after all.
A3. How can I reduce the cost of my project?
There
are many aspects to project cost, but let’s take it from this point
of view: “For a given finished product, how can I as the client
minimize total cost?”
Here are some of the more effective
things you can do:
- Help
get the requirements right. If you have time, do your best
to state in your own terms all of the
requirements for the new software. In any case, give especially
good support to
the developers during the requirements phase of the project.
This is the most important step in the development process—everything
that follows depends on it.
- Refrain from making unnecessary
changes. Once there is a clear conception of “version 1” of
your software, avoid asking for changes to this version unless
absolutely
necessary. It's usually more cost-effective to
accumulate ideas for enhancements and changes and then deal with
them after the first version has been in use
for a reasonable period of time.
- Avoid artificial deadlines. As developers
we will give you at each stage of the project our best estimate
of the time required to complete the remaining steps. Sometimes
there
is a belief that a way to “get things done” is to simply set
a deadline and insist that everyone live with it. This can
not
only lead to
greater cost but can also lower the quality of the software.
This is especially true during the requirements and external
design
phases of the project. The entire team—meaning your stakeholders
as well as our developers—needs time to communicate accurately,
digest, reconsider and explore the best options for your software.
This is
not wasted time nor does it indicate a lack of discipline.
It is the least expensive way to arrive at solutions that go beyond
the obvious—innovations whose marginal cost is low but whose
marginal utility is great.
A4. How do I relate work
accomplished to the invoices you send?
Eagle uses a proprietary
Project Management System—called Manage!—that integrates time reporting,
billing and project planning into a single system. For every project
we create a detailed project plan in Manage! As the project progresses,
each developer records in Manage! their time spent on each task
along
with a description of the work performed. Based on this information,
invoices are produced for each billing period along with supporting
timesheets showing exactly what was accomplished by each person
on each
task and when the work was performed. Using the same database,
Manage! also produces updated project schedules and projections,
as well
as time and cost analyses for each part of the project.
A5. I’m
responsible for the budget in our organization. Once the budget has been set,
there is low tolerance for “surprises.” How confident can I be regarding your ability to deliver the promised results
within the agreed-upon budget? What is the likelihood I’ll have to
go back to my board for more funding?
This is addressed in part by
the answers to earlier questions. Beyond that, there are several
key points to keep in mind:
- One
of the keys to avoiding "surprise” is to have a well-defined
project scope.
Arriving at a scope definition
is a team effort, involving both developers and stakeholders.
If the team creates a statement of scope that is clear, sufficiently
detailed, and appropriate to the goals of the project, the likelihood
of later “surprises” is greatly reduced.
- Another important
key is to track and evaluate project progress on a week-by-week
basis
from
beginning to end. This means that when the project begins,
there must be a specific estimate of effort for each part
of the
project. All work performed must be tracked by related part.
Then the relationship
between percentage of “completion” must be compared regularly
with percentage of “resource used.” Based on this evaluation,
corrective action can be taken early when necessary, thereby
greatly
reducing " surprises" late in the project. This
sounds extremely obvious, of course, but the real surprise
is that developers often fail
to track projects this way. (This is discussed in more detail
in the the Project Management section of the website).
- Finally, make
sure that the person in your organization who is assigned as
liaison with Eagle stays involved and keeps you candidly informed
about
the status of the project. As mentioned earlier, stakeholders
and developers
are one team—it’s essential that they share
a common understanding of project status and goals—and problems,
as well—throughout
the life of the project. Sometimes “surprises” to some members
of the team are simply facts that others have been aware
of for some
time.
A6. I expect to have a series of relatively
small projects over the next year or two. I like the
proposal you’ve
given me for the first project, but I’m concerned that
later on your proposals
for new work will be less rigorous—in other words, once
I’ve become somewhat dependent on you, I’m afraid your pricing
won’t
be as
favorable as it was for the first project.
We have
a standard
method for estimating projects, which we always use, whether
this is the first or tenth time we have worked together. Our estimates
list in detail the tasks required for the project and relate these
tasks to deliverables. All time and cost estimates
are explicitly described. You can easily see how the estimate was
arrived
at and where there are opportunities to reduce cost or scope.
In
addition, we normally work on a time-and-materials basis, so
the cost will be based only on the actual time required to do the
work.
All work is meticulously described in our timesheets,
and is tied to the specific tasks which make up the project. A7. Our company definitely needs certain custom applications to help
improve the efficiency of our organization—better control of costs,
streamlined operations, and so forth. But our senior management
is “old school”,
so to speak, and doesn’t understand why our application should
cost nearly as much as you say it will. They would prefer that
we meet
these needs with standard off-the-shelf tools like Excel, Outlook
and Word. How would you respond to their point of view?
As far as
tools are concerned, products like Excel and Word can be customized
to serve a wide variety of needs, but they aren’t designed to be
general purpose tools for creating custom business applications.
In the long run, if you are creating a custom application, you
have much more flexibility, reliability, maintainability and better
performance
if a conventional development platform is used (such Java, C#,
Visual Basic or C++ in conjunction with web-oriented tools).
Whether
a custom
application will be cost-effective for your organization is something
you and your management will have to judge. However, I can mention
a few significant benefits of custom software which are often overlooked
when making this kind of decision:
- Custom
software can “institutionalize” certain business practices
in your organization. In other words, by having appropriately
designed software, your users
can be guided through certain processes in a way that encourages
consistency and accuracy. This is especially helpful for employees
who are new to your organization or are occasional
users of the software.
- The impetus
for creating a custom application is often related to a desire
to control costs or improve customer
service
in specific ways. When objectives are clearly described,
software can be designed very effectively to meet those specific
needs. In other words, the scope of a custom application
should consist only of what's needed to provide specific planned
economic and operational benefits.
- Custom applications
are “enablers” which, once in operation, can open up entirely
new opportunities
that weren’t possible or even conceived of before. In other
words, once certain business practices are supported consistently
and reliably by an application, you
then have an opportunity to take further steps which would
not have
been possible—or even thought of—before the application had
become part of your business process.
Here’s a relatively
simple example: We created an integrated membership and program
participation system for the YMCA of San
Francisco. The system is web-based, with all member and program
data for 15
branches stored in a single integrated database. Prior to our
system, the YMCA’s legacy system was a network-based system with
a non-GUI
interface and a separate database for each branch’s data.
After this system was implemented it became possible
for the
YMCA to offer
system-to-system interaction with a business partner via web
services. This was not one of the original goals of the system.
It is just one small example of a valuable second-level opportunity
which
was thought
of only after the “enabling” properties of the application
had become apparent.
|
B1. How do I know I’ll get what I want?
There
are really two parts to this question.
The first
step is to know what
one wants. It’s the most important question. Reaching an answer
requires attention and effort.
The second question
is whether Eagle can deliver software that is truly responsive
to what you want.
Let’s
take the first part of the question. Perhaps you know exactly what
you want and have clearly documented it. If so, we can move on
to the second part of the question. But this is usually not the
case.
An important part of our job is working with you to create a
clearly-documented set of requirements and objectives for the application.
When completed, this should be a document your stakeholders
understand and accept as a valid description of “what you want.”
You should
be able to say, “if the application does this, then we’ll be delighted
with it.”
Now the second
part: once the requirements are clearly stated, how do you know
that the implemented application will fulfill
your expectations?
As soon as the requirements document is finished, we create a detailed project
plan which describes all components
of the application, lists
all tasks, and estimates total effort and cost to design and
implement the application. This project plan is based directly
on the requirements analysis, showing clearly how
each element of the system is a response to ‘what you want.” That’s
just a first
step, but it constitutes the “promise” of what we will deliver
to you.
But that
alone
is not enough. Whether the developer can deliver "what you
want" is the central question of project management, from the beginning
to
the end of every project—and it’s not just your question, it’s
the developer’s question as well. Our approach to project management
is our answer
to the question. This is described in detail in the Project Management section of our website, but very briefly:·
- the
project plan is clearly and explicitly based on your requirements;
- we
create
detailed weekly status reports showing for each
task and each component
of the application: time spent to date, time to go, total cost
to date, total cost to go, projected completion date;
- we evaluate
progress
with you each week, determine whether adjustments are needed
in order to meet project goals, and collaborate with you
regarding any changes to personnel, priorities,
tactics, etc.
In addition, our development process is designed to give you frequent deliverables,
understandable by all stakeholders, which clearly show the direction
and extent of progress on the project. These deliverables include
external design specifications which document all points of interaction
between the system and its users, including report specifications
and a user-interface prototype.
The
bottom line is: we’ve been successful in creating custom
applications for more than 30 years because we know how to reliably
create
“what you want.”
B2. How do I
know my project will be completed on time?
Like other aspects
of the project, this is carefully tracked and reported
to you on a weekly basis.
Completion dates
for milestones or the project as a whole are related to many
things. But it’s worth noting
that in the early stage of the project, especially during requirements
analysis and external design, it’s often beneficial to allow more
time than originally planned because each well-spent day during
early stages of a project can save many days of work down
the road.
In any case,
when requirements are complete and we estimate the time and cost
to complete the project, this includes a target
completion date. As the project proceeds, its status is tracked
in detail through our project management system, Manage! This status
information is available to our developers and to you on a weekly
basis. All decisions which affect delivery date and cost are fully
discussed with you at regular status meetings. B3. What are
the risks of developing a custom system?
Like every business
undertaking,
software development has its own patterns of risk. Recognizing
and dealing with risk is a normal and essential aspect of creating
software.
Although each
project has a unique risk profile, here are typical types of risk
encountered in software development:
- Finished
application does not fit the needs of users
- Inadequate performance
- Development
cost exceeds the value of expected benefits
- Application not ready in time to meet critical needs
- Unreliable or
buggy operation
- Too difficult
to use, non-intuitive, requires training
- Cost of ongoing
support greater than expected
These kinds
of risk are addressed in two ways.
First
of all, the whole purpose of development methodologies
and project management disciplines is to facilitate successful
outcomes without falling prey to these risks. This is discussed
in detail
in the Principles, Development process, Project management and Rules of
programming sections of this website.
Secondly, each project has its own unique set of risks, which should be explicitly
addressed from the beginning. The
development plan should identify these risks and describe how
they will be evaluated and avoided. For example, suppose that for
a given application
there is potential for a "fatal" performance problem related
to network architecture or database structure. In this case,
small testbed applications should be built
early so that actual performance can be measured before significant
resources are invested. If risks like this are identified in
advance, steps can be taken to guide development around potential
problems
without unnecessary waste of resources.
B4. We’re a
pretty large organization, and the application we need is central
to all of our operations.
Currently we continue to use a number of legacy applications
which have grown up over the years, but: they are not integrated,
many enhancements are needed, and we certainly can’t take advantage
of
the Internet with these existing applications. The problem is,
we can’t afford to make any kind of mistake on this application.
There’s
too
much riding on it, both politically and practically. It’s going
to take the better part of a year to do the project, there are
many
stakeholders, and it has got to be done right and on time. In addition
to your proposal, we’ve received bids from some of the larger consulting
companies. If I knew with absolute certainty that the project would
be a success, I’d prefer to work with you. But I don’t know how I
can justify to my upper management the selection of a smaller company
like yours for our mission-critical application—even though I would
prefer to work with you and the cost of the application would be
less.
That’s a perfectly
understandable concern. Some of the larger software development
companies would probably do a fine job for
you, though the size of the organization alone is certainly no
guarantee
of that. I can only speak for what Eagle has to offer and leave
it to you to decide what is best for your organization:
- Eagle
was founded
in 1978 for the purpose of developing custom software applications,
and has operated continuously, successfully and profitably
since then.
- The skills and
professionalism of our developers are second to none.
- We have
developed literally hundreds of business applications,
understand the risks, understand the development process, and,
in short, understand how to deliver a high-quality product.
- Our
approach
to project management is mature, effective and collaborative.
- For
35 years we have stood behind our two-year warranty for all
of our work.
- Over the years,
we have been selected by other organizations for mission-critical
applications. For example, in 1993 Wells Fargo
chose Eagle to develop a new Commercial Banking application.
The project was completely successful, and our relationship with
Wells
continues to the present day.
- In these days
of increased reliance on off-shore resources, Eagle offers
the benefit of developers
intimately familiar with U.S. business practices, who
can quickly
and accurately understand your needs, and who are available
to talk with you face-to-face and work with you shoulder-to-shoulder
as often
and for as long as needed.
- Our aim—and
our promise—is to eliminate the frustrations of custom software
development, to bring your
goals to reality efficiently and in a way that delights your
management and users.
|
C1. Because
of the number of stakeholders we have, their varied roles in the
organization, and their different levels
of sophistication regarding software development, I’m concerned
that communication between them and Eagle may be unmanageable,
leading
to an unsatisfactory work product, extra cost and/or delays in
the project.
This is a common situation, and our approach
to development takes
this into account.
First, although
we collaborate with all your stakeholders as needed, it is important
to appoint one person from
your staff
to act as project liaison. They will act as the ultimate “approver”
of the steps in the development process. This helps keep everyone
on the same page and avoid miscommunication.
Secondly, our
project specifications are designed to document—clearly and accurately—the
common understanding reached by the team, stakeholders
and developers alike. These specifications include such documents
as the Requirements Analysis, Risk Analysis, Problem Domain Concepts
and
Vocabulary
and the External Design Specifications. In other words, even though
there is inevitably some apprehension about disorder
as a project begins,
the transformation into order begins immediately and results
in documents which everyone can understand and agree on. Working
effectively with stakeholders having a variety of backgrounds,
training, points of view and opinions is a key part of our job—and
we enjoy
it. Especially as members of the team begin to see form emerge
from the process.
C2. Our application needs are complex. We currently
perform very sophisticated analyses of certain corporate data
in order to determine appropriate actions to take now and in the
near
future. Currently we are doing this through a combination of legacy
systems augmented by “manual” analysis (spreadsheets, and so forth).
We need a new system which integrates, extends and streamlines
this functionality, but we are very concerned about your ability
to really
“get it right” with regard to our business rules and our reporting
requirements. How can we have confidence you can
do this?
That’s
the key question in all software development. In your case, because
of the complexity of your application, you obviously need to know
in advance that the product will be a bullseye with respect to
your needs.
As usual, the
answer has several parts: how our methodology insures “fit to purpose,”
the exceptional experience and skills
of
our developers, and our track record, which confirms the efficacy
of our methods and skills.
As described
in the pages on Development process, the primary goal of the first phase
of development is to be certain
we are creating the right product. This always needs to be
questioned—even when the client believes he knows exactly what
he wants. As a generalization,
it’s more true than not to say that the requirements for an application
are never understood until the project has begun in earnest. All
assumptions and beliefs must be suspended until they have been
exposed to careful consideration by the team. This sometimes seems
a little “over the top” to a client, but the
alternative is that one or more invalid assumptions find their
way into the requirements and lie there innocently
until
deployment—when
their inappropriateness becomes visible to all. With good leadership,
getting the requirements right in the first place simply requires
a little time and good-faith participation by all members of the
team. Not getting requirements right leads to costly redesign and
reimplementation, bad experiences for users (who may in fact be
your customers), delays in deployment of a usable system, lowered
morale
of team members and other negative consequences everyone has seen
at one time or another.
So, methodology
is one thing, but
understanding methodology and applying it appropriately in “real
life” is another. Without the actual experience of implementing
many software applications, it’s impossible for a developer to
truly
understand
the significance of best practices in software development.
Eagle's development managers and project leaders have many years’
experience creating custom software. They understand very well
that skillful
execution of “methodology” in the real world brings a project to
life, just as an orchestra transforms static notes on a printed
page into something that is whole and alive.
But after all
the words, actions are what count. We have been consistently successful
for many years
in doing what I’ve described above. Some examples are described
on the Project section of the website. And we’ll be glad to put
you
in touch with some of our current and former clients if you would
like to ask them about the work Eagle has done for them.
C3. My department
head has assigned me to work with the software vendor for our new
application. I’m not trained in software development or project
management, and I’m very concerned that, in spite of my best efforts,
the project
may not come out the way my manager expects. How can we deal with
this situation?
Your question is similar to the two previous ones,
and I think those answers apply to your situation.
I would just
add these comments to what has already been said:
- It’s the
developer’s responsibility to create documentation which you
and other stakeholders can understand. If any of the documentation—especially
the requirements and the description of the problem domain—aren’t
completely clear and acceptable to you, then you should insist
that the developer go back to the drawing board and try again.
If the
documentation at each stage of the project doesn’t make sense
to
you, don’t allow the project to go on to the next step.
- Insist
that the developer meet with you weekly to give you a status
report on
the project. You should be shown, for each component and
each task in the project, how many hours have been worked to
date, the estimated
effort for completion, a projected completion date and projected
total cost.
Getting this information weekly helps you see right away
any project slippage, either in terms of dates or cost. If progress
on the
project deviates significantly from your expectations, you
will be able to bring the developer together with your management
and
work things out
before there is an unpleasant “surprise.”
|
D1. Have you ever botched a development project?
Not
as a final outcome. But any developer who hasn’t encountered problems
with a project hasn’t been in the business very long.
Virtually
every project has its challenges—that’s why millions of words
have been
written about dozens of different methodologies. In fact, software
development seems in some ways like extreme white water rafting—if
you fall asleep at the paddle it's all over.
We are glad
to say that the great majority of our projects are completed without
significant difficulties. I’m especially
glad I
can say that—even with the few occasional and inevitable “problem
projects”—we have always delivered the goods in spite of problems
encountered.
And we have stood by every project with our 2-year warranty—without
exception.
D2. Has your
2-year warranty ever come back to haunt you?
No. We stand
behind every project, and if any warranty work is required,
we do it gladly and quickly. Obviously, our ability to honor
our warranty is based on delivering a high-quality work product
in the first place.
D3. How
do you insure that your applications are high-quality? What does
“quality” mean to you when it comes to application development?
Put
briefly, “quality” in a software application means to us:
- it has
excellent “fit for purpose,” it really does what you need and
expect it to do;
- it has good
performance;
- it is reliable,
produces consistently valid output;
- it is easy,
intuitive and enjoyable to use, does
not require training, does not intimidate users;
- it is maintainable
and
extensible, can grow in a controlled way to meet future
needs and accommodate desired enhancements.
Although “quality
assurance” is
an essential part of our development process, all of
the above aspects of “quality” depend on the development process
itself,
especially
the beginning phases of the project. “Quality assurance”
is
just the process of checking that quality is already built
in to the
product—and it better be, because it’s usually cheaper
to start over again than to put “quality” into a product that
doesn’t
have it.
If we do a good
job in determining requirements, defining
the
problem domain, assessing
risks, creating a clear, understandable user-interface
and meaningful outputs, then we’re laying the essential foundation
for quality
in the finished product. These aspects of our development
process
are discussed throughout this FAQ section and in the
Methodology section of this site.'
|
E1. What is my role in insuring the success
of the project?
Probably the most fundamental things are to
stay involved, stay close to the project, and don’t give up on
your vision of what the application should be.
Sometimes
managers believe
that once a project is pointed in the right direction, they can
pull back a little and “everything will be all right.” Everything
may
be all right, but even it is, many small issues and decisions arise
over the course of the project, and you should be aware of these.
Small inputs from you on a regular basis can, by the end of the
project, make a big difference in the finished
product.
From
time to time there will be a feature in your application that someone,
perhaps a developer, perhaps one of your stakeholders, will resist
or want to change. Sometimes it should change, but other times
the only motivation is “to make things easier” for the developers.
If it’s an important feature, someone needs to be the advocate
for
the
overall
quality
and integrity of the finished application. This is something you
should do when it seems appropriate.
There are some more suggestions in the response to
question C3.
E2. Our
corporation is moving a lot of our application support offshore,
where labor rates are much lower than in the San Francisco Bay
Area. What benefits can you offer us that make it economically
effective to work with you
instead of
our offshore resources?
Using offshore
resources has been the “big thing” lately. However, I believe
this trend will begin to reverse
course a bit over the next year or two, especially when the full
range of costs and benefits are more clearly seen.
For instance,
speaking generally, but based on actual cases of offshore projects
I am familiar with, here are some of the benefits you are more
likely to receive
with local, high-quality developers:
- Doing
the project once. I have heard the same story a number of times:
“we had to redo
parts of
the project several times, but the labor rates were so low
we accepted that.” It’s hard to see how this is an acceptable
approach to
a project. To begin with, this surely increases the elapsed
time of a project. Secondly, what is the threshold that determines
whether
you “throw this piece back over the wall” or accept it? It
sounds like it could lead to components of varied quality,
where in some
cases they aren’t quite bad enough to insist on a do-over.
- Ongoing
relationship, enhancement process. One of the real benefits
of the local smaller development company is continuity of
relationship.
Our customers are used to being able to come back again and
again and work with the same developers they already know—developers
who
are intimately familiar with their business and their software
application. There is no “learning curve” for enhancements,
for
example. If your
application is developed offshore by people you’ve never met,
what happens next year when you want to take the application
to
the next step? Perhaps the enhancements are modest in scope—will
you be able to communicate effectively to the offshore developers
what you want to do? Will it be a cost-effective exercise?
If you use offshore developers for the enhancements, what
will be the cost
of getting them up to speed with your application?
- Direct communication. All I can say about this is that I’ve personally been involved
in the development of hundreds of custom business applications,
and
there
are always times—sometimes frequently—when face-to-face communication
is the only conceivable way to reach a common understanding
of what is really needed. True, this isn’t a black and white
issue,
and I'm not saying that appropriate communication is impossible—but
it does seem to me that on anything but very large projects
it can be a problem, and more trouble than is justified
by the
per-hour
cost benefits.
- Knowledge
of U.S. business practices. I think it is obvious that in
general local developers—especially those with
extensive business applications experience —understand
U.S. business practices and nomenclature better than anyone
else in
the world. This may
not matter when it comes to device drivers, graphics software,
and such, but it’s a key issue for business applications and
applications with user-interfaces designed for U.S. users.
- Understanding
of complex applications. This is related to other points
made above. Of course off-shore developers can understand complex
applications
as well as anyone else. The problem here is that complex
applications
tend to grow and evolve over time. Developers and
customer experience a shared learning-curve which may occur
over several
years. The direct and frequent communication possible in
a local relationship
is invaluable in the creation and maintenance of very complex
applications.
- Immediate,
direct response to your needs. We are able to respond
to our customers immediately. When they have a question,
need an enhancement or need some other kind of support, we
are there,
in the same time zone, and ready to do what the situation requires.
- Warranty. We provide a two-year warranty for all of our work. In
order to support our warranty effectively, direct and immediate
communication with our customer is essential.
- Control
of the project. Regular face-to-face communication
between developers and stakeholders makes projects go better.
You
can ask questions,
see reactions, shape a project status or design meeting
in response to the visible interaction of team members.
- One team
does it all, from analysis through deployment. Eagle’s
approach to development
is
that a team of developers handles the whole project,
from beginning to
end. The people doing requirements analyses and studying
the problem domain are the same ones coding and doing
deployment. Why? At least two reasons. First, we
want our developers
to be competent with every aspect of development. We
don’t want to
end up with designers
who are no longer “current” with the latest technologies,
and
we want our implementers to fully understand both
your specific requirements
and the development process as
a whole. This approach is a key benefit to you as a customer.
This
is an
approach that is usually impractical or impossible
for organizations using offshore resources.
E3. Our
corporate IT department has specific policies which control the
manner in which applications are developed
and deployed in our organization. While they may seem excessive
at times, they promote stability, reliability, and security in
our corporate
systems, which are vital to our organization. At the same
time, my personal concerns are more oriented toward the actual
functionality
I need in the new application. Can you
be responsive to my needs while working collaboratively and productively
with
our corporate IT personnel?
Certainly.
We’ve worked very successfully in similar situations with a number
of other clients, including
Wells
Fargo Bank, Safeway, Valero Energy Company, Hitachi and Logitech.
If you’d like to discuss this question with our contacts at any
of these companies, just let us know. |
F1. Am I going to have any responsibilities
in managing this project?
No and yes. Eagle always accepts responsibility
for the
success of each project, regardless of how it is organized.
At
the same time, we and our clients work collaboratively as a team,
so
the allocation of project management responsibilities can suit
your preferences—and may vary from project to project depending
on your
needs.
For projects
in which you prefer to be fully informed but not have management
obligations, Eagle willingly accepts full
responsibility for all aspects of project management.
F2. Our
organization has a
lot of stakeholders and they aren’t organized in any particular
way with respect to this project. Can you manage that situation?
Yes, we
can. For purposes of final approval and official project communication,
we ask you to designate a single contact. But for purposes of requirements
analysis, external design meetings, and other collaboration, we
gladly
coordinate meetings and communication with all involved stakeholders.
F3. I’m not a programmer and, although some of my employees have some
experience with computer technology and programming, we don’t
have the expertise in-house
to know objectively whether the project is really on track. How
am I protected from a situation where I’ve paid your bills as the
project
goes along, only to find that all the money has been spent
and we don’t have the product you promised us?
Before the
project begins
we will decide on a series of milestones with corresponding deliverables
and evaluations. For certain deliverables, you will be able to
determine very easily that the planned goals have been met. In
other cases,
if it seems appropriate, we can arrange for a third party to review
and evaluate deliverables.
Our track
record is based on total reliability in meeting project goals.
It’s important for all team members to always understand
the status of the project—including an accurate measure
of the remaining
time and cost required for completion. Although the details of
objective measurement of project status will vary from project
to project, it’s important at the very beginning of the project
to establish a method you are comfortable with. |
G1. What kinds of projects do you do?
Primarily
medium to large business applications built on Internet and client-server
technologies.
Although most companies
make good use of many off-the-shelf applications, from word-processing
and spreadsheets to accounting,
and enterprise-wide applications like Customer Relationship Management,
Enterprise Resource Planning, etc., virtually all have areas of
need not met by these applications. Every organization
is unique in many ways—perhaps in the specific services or products
it
offers,
in how it is managed, or how it relates to customers, and so on.
Each one has certain areas where it operates in its
own way, for
its own reasons, distinct from everyone else. It is in these areas
where custom software can be very effective in controlling costs,
enhancing revenue opportunities, and improving the efficiency and
reliability of business processes. These are the areas where we
understand how custom software can really
benefit an organization, and where we have been successful creating
effective, reliable applications.
We have deliberately
chosen to work in a wide range of industries. Your one-of-a-kind
needs are what interest us—our professional pleasure comes from
giving you software that is from beginning to end a bullseye
for you—not
some compromise based on modifying an off-the-shelf application.
G2. What kinds of projects do you turn down?
We turn down
a project if:
- the planned
budget or timeframe seems unrealistic;
- we don't have the skills or resources needed for the project;
- we don’t
believe
the functional or performance goals of the application can
be met.
G3. Do you have the resources for a fairly large project?
Our larger
projects have been in the range of 10,000 to 20,000 manhours (roughly
5 to 10 man years, with a cost range of $1.0 to $2.5 million)
G4. What is the smallest project you’re willing to accept?
Consulting
engagements can be any amount of time that seems appropriate
for your need. As far as software development projects are concerned,
the smaller ones tend to be 400 to 600 manhours ($45K to $70K). |
H1. I may need help making sure that our IT infrastructure
is compatible with and adequate to support your application. Will
you be able to assist me in that regard?
Sure. We work with a number
of very competent hardware / network consultants who can respond
to this sort of need. |
Please feel free to send
us a note with any additional
questions you have. We’ll get back to you quickly. |
|