Technology Engineers turns ideas into reality by creating Internet and database-driven systems offering customers the easiest, quickest and most economical way to do business. We have applied innovative technologies for a wide range of clients, developing in the process valuable information assets and a competitive edge. For their customers, it means less paper, less waiting and fewer problem. For the company, it means less overhead, faster processes and an improved bottom line.
Technology Engineers delivers results -- exceptional results. We work with executive and IT management to help companies compete better in the marketplace. Many consulting firms are tied to their own packages or marketing contracts with software manufacturers. Their incentive is to sell software packages and continuing support services, leading the client to view their company’s needs through that lens. Technology Engineers does not market software products, instead relying on the talent and hard work of our professional staff. As an IT and management
consulting firm, we see our clients’ needs in terms of requirements, processes and business value. Our solutions are advanced, practical and effective; and our clients value our independence and appreciate the exceptional results we deliver
Web development is an essential service we provide our clients. Technology Engineers 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. For this reason, Technology Engineers can offer comprehensive Web Development services, including:
- Clean, functional and flexible web designs
- Cohesive, interlinking and easy-to-use interfaces
- Powerful, relational database implementations
- Well-thought-out, easy to navigate site structure
- Unique, custom graphics and imaging
- Identity branding
- Internet forms, applications, and interactive database options
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 Technology Engineers are designed by professional graphic designers. By using graphic designers, we avoid many common design problems, such as mixed metaphors and color incoherence, found in many website designs.
Over half of our professional staff have post-graduate technical degrees, or MBAs. We are grounded in the fundamentals of computer science, business and software engineering, and understand new information technologies and their potential for use in growing organizations. Our software developers and business analysts think, write and speak with clarity, focusing on results, not just delivering reports. And, we use best practices while keeping things practical.
Technology Engineers web and application development methodologies place heavy emphasis on knowledgeable, experienced software engineers and database architects who use the latest automated tools to apply our approach to development. Beginning with the Requirements Definition as a baseline, our software engineers use a model-driven approach to design a component-based approach to programming and an integrated, structured approach to implementation.
The Web Development Methodology is viewed within the context of our Project Management Methodology, used for both Application Development and Web Development. That is, the forms, business rules, reports, etc. are developed based on a Requirements Definition, and any changes to the requirements must be reflected in the project plan with all of its dependencies. At Technology Engineers the two methodologies are completely integrated, and, more importantly, the Web Development Methodology cannot work properly without a sound, realistic project plan and good project management. It is the responsibility of the Project Manager and Technology Engineers Executive Management to insure compliance with our approach.
The essential parts of our may, which may vary depending upon the type of system: new or legacy (and, if legacy, is it to be merely ported to a new platform or completely re-engineered), include the following components:
- Select appropriate technologies and operating environment
- Define and create database schema
- Create/model minimal working user interface.
- Identify/develop component technologies
- Layer in business rules to working interface
- Conduct unit tests
- Create output/interface (reports, interface to Microsoft Word, Excel, Outlook, etc.)
- Perform system tests.
Not all projects will have each element (for example, new systems might not have migrated data), but for the most part, each of these steps must be addressed as part of any development process.
A. Using Models Gives the Software Architect the Opportunity to Perform What-If Analyses
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. Technology Engineers has used SQL analyzer products to analyze relational databases for performance and reliability and to speed 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. |
B. Develop Objects Using Component-Based Programming and Testing
|
|
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.
Technology Engineers 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. |
C. Structured Implementation Technology Engineers 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 that 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 Technology Engineers 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. Technology Engineers 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.
|
|
|
Essentially, our deployment, skills transfer and training methodology is to involve technical personnel wherever possible because of their knowledge of the system. |
In summary, our Web Development Methodology is used to develop complex, component-based systems for clients with technology requirements that cannot be met by in-house IT staff. It is a flexible, powerful approach to web development, based on recognized industry standards.
| |
|