Software Development

OK, you've decided to tackle a system development project, but you don't have the staff or the time to do it yourself. That's where we come in.

FTI's software development team will help manage and perform every step of the process, from design through construction. During the past 20 years, we've done dozens of systems, ranging from simple data management systems to complex decision support systems. We've built systems for mainframes as well as PCs and the Internet.

We've produced systems with traditional and Rapid Application Development processes. We've developed in languages ranging from COBOL and FORTRAN to Java, C++ and Visual Basic. We've built systems for legacy hardware, standalone PCs, client/server networks, and the Internet. We've built systems that address the needs of transportation, health care, government, manufacturing, and education - and we'd like to work for you, too.

Here's how:

Requirements Analysis
Automation projects, no matter how trivial or complex, begin with the computer turned off. Before the first line of code is written, the hard work of planning and design must be tackled.

We'll start with a series of interviews to identify the business requirements that must be met, the degree of automation you expect from the new system, the way the new system must interact with others throughout the enterprise, the key reports that must be generated, and the resources you can commit to the project.

For each system process, we'll identify and interact with the "owner" of the process from start to finish. We'll perform the research necessary to understand each process, document the existing workflow and make recommendations for change that support the smoothest possible implementation.

System Design
The next stage in the development of the new system is the formal design. From the analysis of requirements, we provide as many of the following elements as necessary: use-cases, structure charts, object models, data models, decomposition diagrams, and even old-fashioned flow charts, where they make sense. We'll also provide prototypes with interface elements and sample data that encourage feedback from the customer throughout the development process.

Not so long ago, this would be the point at which the programmers disappeared for several months (or years!) to do their work in secret. You might get a status report every month or so, but nothing tangible would emerge until the great unveiling ceremony. By then, of course, many of the folks who wanted the system in the first place would be gone. Even worse, the needs of the busines would have changed, so the day the system went on-line, it was obsolete.

That's why, today, we involve users during the programming phase. No, they don't write the code. But they do comment, sometimes rather severely, on functionality and useability before mistakes are cast in concrete.

We use the house building analogy often to encourage this sort of involvement. If you've ever built a house, you know that no matter how well you planned and designed it, there are bound to be problems - and opportunities - that arise during the construction. Certain materials may no longer be available, you might want more outlets, the shingles might not look as good as the sample, or your mother-in-law might decide to move in.

The sooner you act on these issues the better. It's the same with a new system. If we don't keep you involved during the construction phase, we can't respond to changes that only you know about and we can't tell you about technology issues that may bear on the final system. So roll up your shirt sleeves and let's get to work!

Testing isn't really a separate phase of the development process, but actually starts when the first module has been programmed. We'll always test basic functionality, interactions, integrity, and all the normal stuff that demonstrates how well the system conforms to the specification. We'll also ask you to participate in testing as early in the development process as possible, because only you know the subtleties of your business. The acid test is how well the system fits your world - not ours.

Software Developent Services Capability Summary
Here is an outline of FTI's capabilies highlighting our basic services, industry experience, and web development capabilities:

Basic Services

  • Requirements Analysis
  • Sysem Design
  • Programming
  • Testing

Industry Experience

  • Transportation
  • Health Care
  • Manufacturing
  • Government
  • Education
  • Retail

Web Development

  • Interactive Websites
  • e-Commerce
  • Backend Applications

Technical Qualifications
Here is an outline of FTI's technical qualifications, highlighting the compilers, scripting languages and database management systems we support:

Compilers and Scripting Languages

  • Visual Basic
  • VBA
  • Visual C++
  • ActiveX
  • DCOM
  • JavaScript/VBScript/JScript
  • CGI/Perl
  • ASP
  • JSP
  • Access Basic

Database Management Systems

  • Oracle 7.3 and 8
  • MS SQL Server 6.5 and 7
  • Sybase SQL Server 11
  • MS Access 95/97/2000