Small Application Development Company uses Eiffel to Dominate Its Market
|
|
Objective
An independent software development company used Eiffel Software’s EiffelStudio™
development environment to create a library of reusable modules that contained a
tremendous amount of their company’s database software experience and expertise.
The contents of this library (what Eiffel Software refers to as an Eiffel
Knowledge Repository) are easily reused by company developers to rapidly
assemble client-specific applications with very high quality. The development
company experienced an increase in productivity among its Eiffel programmers of
about 4 times what productivity was with C++ projects, giving them tremendously
lower costs and increased client responsiveness. The resulting competitive
advantage helped the company to grow to a highest-ever average revenue of
$30,000 per week despite a challenging economic climate.
Background
Fowler Software Design is an independent software development company located in
Denver, Colorado. They focus on providing management software to small- to
medium-sized companies that typically do not want to support their own software
development team. They regularly write CRM and financial management software for
their clients, and they provide data-flow consulting capabilities as well.
In the 1980’s Fowler used an enormous variety of software languages including
COBOL, FORTRAN, BASIC, Magic PC, C, and DIBOL. In the 1990’s, Fowler specialized
in writing client applications using C++, FoxPro, and Visual Basic. Growth was
very gradual from two founders in 1984 to 15 staff members by December 1999.
On July 22, 1997, Rex Fowler, one of the two founders, read an article by
Bertrand Meyer in a tech magazine and picked up a copy of Meyer’s famous book,
Object-Oriented Software Construction, Second Edition, published that year by
Prentice Hall. Since then, Fowler, who is now CEO of Fowler Software Design, has
been pushing the company toward use of the Eiffel Language and the EiffelStudio™
development environment developed by Eiffel Software.
“We know computer languages,” says Fowler, “and Eiffel beats them all for
building reliable, reusable, high-quality, efficient software.”
Fowler built an application Framework using Visual FoxPro, and it is still in
use. “But we could not do with the FoxPro Framework what we have now been able
to do with our new Eiffel framework.” Fowler explains the difference calling the
software developed with the Eiffel framework “Self-Proving Software”.
“The difference is in embedded assertions that prove the software continuously
while it is being developed. We tried to do the same thing with FoxPro, even
inventing a pre-processor to help with the job. But it wasn’t
programmer-friendly, so it wasn’t used. In contrast, our programmers love Eiffel
and EiffelStudio. And we now have professional versions of the self-proving
software we have been working so hard to create.”
FSD average revenue was about $10,000 per week at the beginning of 2000 and had
tripled to over $30,000 per week by April 2002.
“Besides improving value to clients,” says Fowler, “one of the best business
benefits in adopting Eiffel has been an end to programmer turnover.” Fowler
notes that in the early 1990’s programmer turnover was a major problem. “We
would hire them, train them, and then they would leave. But we haven’t had a
programmer leave for over nine months now, and the one who left in the spring
last year left for personal, not professional reasons. I’ve got a very loyal
crew now and I’m very grateful to them for their persistence and good work.”
Figure 1. FSD’s reusable framework concept for client-specific
software construction.
Fowler’s Development Goal and Challenge
Fowler Software Design wanted to deliver a better product and service to their
clients (or potential ones), in the form of less expensive projects, or of
faster creation of the systems that the client specified, and in terms of
greater reliability and extendibility of the systems they created.
Fowler’s Solution
FSD created a design approach that would focus on 1) reuse of prior work for the
bulk of any given application, plus 2) some level of client-specific
customization to have their work completely conform to the client’s
requirements.
There were thus two main design guidelines: That what they do in any project
should be written once and then reused; and that they make it easy for both
application designers and application programmers to write the unique parts of
each software application.
The company decided to pursue a central company framework, written in Eiffel,
that would contain the essence of the company’s experience in building database
software. This framework would employ Eiffel’s native Design by Contract™
features to make the applications robust and flawless in operation, and also
would allow everyone from brand new programmers to senior company developers to
easily take advantage of and reuse whatever work had already been done by the
company.
Figure 2. High level view of the architecture of the
Multi-Tier Framework.
Fowler states that approximately 70% of their code is in their
reusable framework (i.e., reusable, inherited, and involving no programming),
and 30% is client- or application-specific. This results in a cost of new
developments that is approximately 1/3 the cost of developing the same software
with C++ and without the Fowler Eiffel framework.
Another argument for choosing Eiffel was to incorporate in the framework one of
the basic tenets of object-oriented software design: that the easiest
application design is one that maps directly from requirements. EiffelStudio is
the only development environment that allows the programmer to create a clean,
object-oriented model that maps directly to real-world requirements, and then
seamlessly allows software text implementation directly from that model and
vice-versa. The result is a model that directly mirrors requirements, code that
directly mirrors the model, and automatically-generated documentation that
mirrors the most recent version of both.
Once its framework had been created in Eiffel, Fowler Software could then also
take advantage of EiffelStudio’s .NET compatibility to migrate the company
knowledge repository over to the .NET framework. With this capability, FSD
developers can Web-enable FSD client applications, share their reusable
information much more freely, and assemble pieces from the FSD library into
client-specific applications in a very short period of time, with an absolute
minimum of code work.
Figure 3. Isolation of the reusable framework, the
client-specific business-logic and the client-specific presentation logic.
Project Results
EiffelStudio allowed FSD to create a simple yet sophisticated multiple-level
architecture that supports business logic, as well as the interfaces to the back
end (database management) and the front end (presentation layer). (See figure
2.) FSD used EiffelStudio organize their framework so that it would allow them
to create GUI code that was completely distinct or isolated from the business
code. (Figure 3.)
Fowler Software was able to create their “Multi-Tier Framework” application in a
relatively short time. Says Fowler, “In earlier years all we could afford to do
was move from one client project to the next, each one entirely different. When
we picked up Eiffel, we found we could work on several client projects at the
same time, extract their commonalities, and write the framework concurrently.
Summer 2001 we went to the summer trade conference with not much more than an
ambitious idea. The next year we went to the same conference with a demo of our
framework and with three client applications under our belt. 2001 was our best
revenue year ever. Then we beat that again in 2002.”
Developers began using EiffelStudio and the Eiffel language. They found that
Eiffel software was easy to test and easy to modify. Bugs are easy to find and
fix.
Since many Fowler Software clients have recently been desiring to move to the
popular Microsoft .NET framework, it has been a critical factor for Fowler that
their Framework application is easily ported for use with .NET applications. By
using EiffelStudio to retarget their main project to .NET, Fowler Software
opened up their code (internally) to be able to be developed from either
EiffelStudio (using Eiffel), or Microsoft’s Visual Studio .NET (using either
Eiffel, or any other .NET-compatible language).
Company Results
Since going with Eiffel 4 years ago, revenue growth has been steady and dramatic
every year. Fowler estimates that they take a 30%+ cost advantage (as well as a
significant time-to-delivery advantage) into any competitive bidding situation
where Eiffel software is matched toe-to-toe with C++ software.
Eiffel has also permitted Fowler Software Design to break into the packaged
software market. For example, FSD is currently working on an Eiffel API for the
popular NeoCore XMS native XML database. This would have been impossible in the
earlier hand-to-mouth years.
A recent project created a full-featured application for the residential window
tinting industry. The software is entirely written in Eiffel and is very robust
and efficient. The software includes a very sophisticated mapping routine which,
given several orders for tinting for windows, yields diagrams showing the best
way to cut rectangles out of rolls of film to minimize waste and cutting costs.
Fowler Software employs Extreme Programming in its shop and has found that the
Eiffel language lends itself marvelously to the process. Tests are written
before the software is written. The self-proving characteristics of the Eiffel
language lend great power to the test-first method and augment the Extreme
Programming idea that tests are run continuously to prove the software while it
is being developed. FSD programmers do pair while writing software and have
found that this also improves quality while not costing more than the
traditional code reviews and close technical supervision in heavy books on the
subject.
“It’s amazing,” says Fowler, “that even the most obvious checks made inside the
self-proving Eiffel software will often snag bugs that otherwise would have
required hours or even days to find and fix. Our programmers love Eiffel because
they honestly want to write really beautiful software for our clients. And
Eiffel lets us do that.”
About Fowler Software Design, LLC
Fowler Software Design LLC is located in Denver, Colorado, USA. Founded in 1984
by Rex and Jan Fowler, the company’s goal is "To profitably provide flawless
computer software service to able and productive clients –- thus making them
more able and more productive." They take on a wide range of software projects
for small- and medium-sized companies in any industry. FSD has done excellent
work for some very large companies also. Sometimes a division in a very large
company doesn’t want to wait for company programmers to come up with a solution,
so Fowler Software is hired to get the job done fast! You can read more about
Fowler Software Design at www.fowlersoftware.com.
About Eiffel Software
Eiffel Software (a division of ISE) is the world leader in Eiffel true
object-oriented programming tools. Founded in 1985, Eiffel Software produces
proven professional tools and component libraries for business-critical and
enterprise software developments. Eiffel Software’s products enable their
clients to output more and higher-quality software in less time than with any
other development tools available. Its users span the globe, in industries
ranging from large financial institutions and transaction houses, to technology
manufacturing, to government and defense contractors, to health care providers
and more. |