Web development is an essential service we provide our clients.  TEI has successfully designed and created extensive Internet-based applications from the ground up for many clients.   Internet-based, or browser-based, systems require a balanced implementation of technology and basic design principles so that the resulting system is visually appealing, intuitive to use, and operationally sound.  Our solutions are the end-product of a team of graphic designers, software developers, and project managers who are well-grounded in their profession and experienced with current, state-of-the-art technologies.

Microsoft .NET Framework continues to be our primary vehicle for delivering web/database systems, as it is becoming.  Although proficient with many web development tools, our software developers mostly use various Microsoft Visual Studio technologies for creating the code needed to make the systems work, including ASP.Net, Visual Basic, Visual C++, and VBScript.  Our graphic designers are also knowledgeable in the use of Visual Studio, but frequently use Adobe Illustrator and Photoshop, and other web development tools in order to create web interfaces that are attractive and easy-to-use.  For database management systems, our database architects and programmers are proficient in both Microsoft SQL Server and Oracle.

Although ASP.Net is the preferred development platform, we also work with Java and PHP on occasion.  All Internet- and browser-based user interfaces for systems developed by TEI are designed by professional graphic designers.

TEI offers comprehensive web development services, including:

Clean, functional, and flexible web designs
Cohesive, interlinking, and easy-to-use interfaces
Powerful, relational database implementations
Easy to navigate site structure
Unique custom graphics and imaging
Identity branding
Internet forms, applications, and interactive database options


  • Select Appropriate Technologies and Environment
  • Define, Normalize, and Create Database Schema
  • Create/ Model Working User Interface
  • Identify/ Develop Component Technologies
  • Layer in Business Rules to Working Interface
  • Conduct Unit Tests
  • Create Output/ Interface
  • Perform Fully Functional Tests
  • Migrate Data
  • Deploy Web-based System
    • Additional Hardware and Equipment
    • Skills Transfer
    • User Training

Creating a new or re-engineered application means employing new technologies users may not be familiar with at design time. Being able to model, or prototype, the proposed system has great advantages for both the user and the designer.

1. Select Appropriate Technologies and Operating Environment

Early in the design process, our software architects must finalize the appropriate technologies to use in the development of the system. These decisions have functionality consequences for the user and cost consequences for IT. This process calls upon the knowledge and experience of the software professional to develop an environment that uses the appropriate technologies for the client in a cost-effective manner.

2. Define, Create, and Normalize Database Schema

Defining and creating data elements (with all of their attributes), tables, views, and stored procedures is a critical step in the design of successful applications. TEI has used SQL analyzer products to analyze relational databases for performance and reliability and to speed up the application design process. Our analysts are required to use this or similar software tools to model, configure, and optimize normalized relational databases.

3. Create/Model Minimal Working User Interface

Working models, or prototypes, of the final product, are important parts of our methodology. As quickly as is practical, our software professionals develop minimally functional working models of the user interface. For Windows-based applications, this means using Microsoft VisualStudio.NET (Visual Basic, C#, or Visual C++), or similar Interactive Development Environments (IDEs) to build working forms, message boxes, menus, or other user interface components to give the look and feel of the system early on to the client and the designer.

1. Identify/Develop Component Technologies

During this phase, programmers become fully engaged in developing the program code that results in executable files. It is important that our analysts use the appropriate technologies for the client’s specific set of requirements in order to achieve a technologically sound result.TEI analysts and software developers are required to keep abreast of current technologies by seminars, professional journals, and working with client software and other professional contacts. This translates into clean designs and well-written code that can be easily maintained.

2. Layer in Business Rules to Working Interface

As component objects (forms, browser-based components, etc.) become more fully developed, the business rules developed during the Requirements Analysis phase are layered into the code. These rules, especially time-dependent activities, can be the most difficult part of the project for the programmer, and, consequently, logic errors will often show up much later during the system testing phase.

3. Conduct Unit Tests

An integral part of our web and application development for the individual software developer is unit testing each component. Our project manager, along with our project technical leader, is responsible for “bullet-proofing” all code before the working executable is viewed by users. Our test plans typically require test scripts and actual unit testing to be performed by team members other than the programmer who developed the code. This requirement avoids the possibility of the programmer testing his own biases.

4. Create Output/Interface (Reports, Interfaces to Microsoft Word, Excel, Outlook, Etc.)

After the primary interface is completed, and while unit testing is being conducted, we program any reports or other paper-output requirements. One approach that has worked exceptionally well integrates Microsoft Office products into the design of the system. For example, performance reports with dates, numbers, and statistics are placed directly into a Microsoft Excel spreadsheet; and, letters, reports, and other documents are formatted (including color fonts) in Microsoft Word, then displayed for viewing and editing before printing.

5. Perform Fully-Functional System Tests

The final part of the Design and Programming phases is the fully functional system test. We believe system tests must be more extensive and in-depth than using scripts. A complete system test in a “near go-live” environment with users involved is the best way to assure a successful implementation.

TEI methodology for implementation uses a structured, step-by-step, Gantt chart approach. In the last phases of every project (especially long projects), users, programmers, and all involved are anxious to see the results of their work, and a structured “tick list” approach to these final phases of the project ensures that no shortcuts are taken that would impede a successful implementation.

1. Migrate Data

Mapping data elements and tables from older, generally non-relational databases to newer relational databases such as Oracle, Microsoft SQL Server, and others usually requires more than simple imports or exports. Typical problems involve differing operating system platforms, differing data types, multiple instances of the same data element located throughout the department, and flat files to normalized tables.

2. Deploying the Web-Based System

Implementing new or legacy systems is also a structured process requiring strong project management and people skills, especially in skills transfer and user training. Three areas we have traditionally focused on in implementations are: (a) additional hardware and equipment required for a fully implemented system, (b) documentation and skills transfer from project team to IT staff, and (c) user training.

a. Additional Hardware and Equipment

Planning for new IT Data Center and user hardware has always been important, but browser-based applications now place more pressure on application developers because of the many choices available for servers and client interfaces. This phase, while an important part of our Application Development Methodology, is predominantly a technical issue because of configuration, performance, reliability, and usability issues. Our Chief Software Architect regularly consults with IT staff on hardware-related issues throughout the life of the project and participates completely in technology choices and their proper installation.

b. Skills Transfer

Web or Application Development using IT contractors such as TEI means project-type work with a beginning and an end. At the end of the project, IT staff must be familiar with all aspects of an application (database, program code, dependencies) for support and enhancement once the project is complete. This is best accomplished by having IT staff personnel participate in the development of the application so that when the project is complete, there is not a steep learning curve. When IT staff is not available for participation, the learning curve is steeper, longer, and relies more heavily on properly documented application and database functionality.

c. User Training

User training is equal parts people skills and technical skills. TEI uses a combination of classes and one-on-one training to train users to use the new system. On occasion, we have employed qualified specialists to develop training material and conduct training classes.