State-of-the-Art Technology &
Superior Management Services

About GDCI

GDC Integration, Inc. (GDCI) creates highly secure, self-service web sites for government and business. We are a GSA Contact Holder and have applications in use by over 130,000 Federal employees.

GDC Integration's mission is to provide state of the art technology and superior management services to our clients. We manage the process, provide expert "players", world-class quality, and oversight of implementation and reporting.

Business Strategy: GDCI has a business strategy of developing high-security, high-volume web applications for both government agencies and the private sector. GDCI is also an Application Service Provider (ASP) which means we also provide ongoing application support and hosting.

Design Strategy: GDCI has a computer design strategy that houses the production computer environment in the GDCI St. Louis facility and houses a mirrored quality assurance environment in the GDCI Denver facility. Since quality assurance is an ongoing activity, the computers are continually being used and tested. The production database can be continually backed up to the Quality Assurance environment allowing for immediate recovery in the event the production facility is unusable.

Resource Strategy: In order to accommodate large scale development requiring resources beyond GDCI's permanent staff, GDCI has developed partnerships to provide a broad range of IT professionals ranging from quality assurance technicians, application developers, database administrators through project managers and any other IT specialty required are readily available.

The GDCI Process

Experience teaches. Doing something as right as possible, and doing it better the next time, and the time after that. These are the elements of process and improvement. The process, in simple terms, is a series of repeatable steps that lead to a greatly enhanced likelihood of success. The steps prevent overlooking anything that is critical to success. The experience enables a careful set of decisions about what weight is put on each step for any particular project. The outcome is fully developing an application while greatly reducing the risk of cost overruns or outright failure.

Expectations

Details matter. Mutual success depends on both parties understanding what is required and expected. To meet the challenge of satisfactorily developing and hosting web applications, the first issue to be addressed is expectations. While the client tends to look at the application from a business point-of-view and the vendor from a systems perspective, the first step of our Process is to clarify everything from the user's point-of-view. This step results in the functional specification document. Based on this, both parties agree in writing what is to be produced. From this are derived a meaningful time-line for completion and a firm cost within the client's budget. Changes subsequently identified as needed are incorporated into the functional specification, and will affect time and cost. Failure to agree upon and document these changes and their implications may lead to frustration and disappointment. Undocumented changes are the source of the phenomenon referred to as "scope creep" and are the primary sources of failure.

Players

Roles matter. Several people handle our Process steps, each with specialized experience, skills, and training. First, both the client and the vendor need a representative to be responsible for facilitating communication. The client contact may be called a project manager or vendor liaison. This person is either a decision maker or will facilitate efficient decision-making. Projects can experience fatal delays when a decision is not made in a timely manner. The corresponding role on the vendor's project team is their project manager (PM). In addition to facilitating communication with the client, the PM is responsible for identifying and coordinating the vendor's resources that are brought to bear on the project. This person needs to be experienced in communicating the client's needs both orally and in writing, and has to balance client needs with the technical situation, even recognizing when the client need is not technically or economically feasible in order to propose functional alternatives. The PM is responsible for delivering the application to the client on time and within budget.

The next member of the project team is the system engineer (SE). The SE translates the functional specification into architecture, design, and technical direction. This person is the lead person working with the client to interpret their needs into writing.

Another role on the development team is the developer (formerly called programmer). Developers must be experienced with developing web applications in a secure high-transaction environment, using the most effective tools and techniques. Following on the work of the Developer is a role responsible to be a final set of eyes, a tester or QA technician. QA is responsible for verifying the application works as agreed in the contract and functional specification. There are numerous types of testing described later; this person is responsible for ensuring the application succeeds at each type.

Depending on the size of the project, members may assume multiple roles or multiple people may have the same role. However, there should be at least two vendor resources besides the developer ensuring the application is acceptable. This translates to triple checking their work.

Quality

Testing proves. Quality Assurance is the effort to demonstrate that the right things are done, which is within the fabric of our Process and the responsibility of the PM. Quality Control is the effort to demonstrate that things are done right. Planned and thorough testing does this.

Quality Control begins by defining "the what" and "the how" in a documented test plan. The test plan is developed with input from the SE, the developer, and the QA technician. The plan tells the QC people the work they have to do and also lays it out for the client. Testing includes these types:

  1. Unit Testing - performed by the developer, this is a verification of the smallest components or "units" of the application. When the developer is satisfied the application is ready, it is turned it over to the QA Technician.
  2. Functional Testing - performed by the QA Technician and focuses on the functional aspects of the application. This where the most visible errors occur.
  3. Stress Testing - performed by the QA technician, the Systems Engineer and the developer get involved in analyzing any performance issues. The purpose of this test is to ensure the application can handle the expected number of multiple users. Problems may be addressed by changes in architecture, design, code, or computer resources to achieve the needed scalability.
  4. 508 Compliance Testing - performed by the QA Technician using special software that voices directions for the sight impaired person. There are laws stipulating accessibility of applications for people with certain physical impairments.
  5. Cosmetic Testing - performed by the QA Technician. Focuses on the compliance of the application with the agreed-upon standards of usability, including screen organization, process flow, color and design, and "user friendliness".
  6. System Failure Testing - performed by the QA Technician with the SE and the developer involved in performance issues. Similar to stress testing, it looks at what happens when things go very wrong with equipment or facilities.
  7. Disaster Recovery Backup Testing - performed in concert with our hosting vendor, SunGard. Here we are testing scenarios where the production facility is unusable (such as happened to NFC after Hurricane Katrina). We use the hosting services from SunGard and create a duplicate Quality Assurance environment at a separate SunGard facility. The Quality Assurance environment is always in use and being tested, and is used for production back up. In the event of a disaster, it would take approximately 4 hours to make the application available for Production at the Quality Assurance facility.
  8. User Acceptance Testing - performed by the client's staff. This is where the client starts evaluating the application. The client test team works closely with our QA Technician, SE, and PM to identify, understand, and report any problems. With the many testing steps prior to the client's involvement, there should not be many surprises.

Implementation Plan

Planning counts. While the development and testing of the application is occurring, it is essential to develop an implementation plan. What needs to be bought? Who needs to be trained? How much time will be needed? Are the resources available? Many questions must be answered. Attention to these details is just as important as creating the application itself. The completed or updated implementation plan must be communicated to all affected parties. If the user community is uncertain or uninformed of the implementation strategy or the application, your challenge of gaining user acceptance is fraught with difficulty.

Progress Reporting

Communication is foundational. Surprises are the enemy! Surprises usually result in unsatisfactory changes, and may imply changes in time-line or cost. To minimize surprises, frequent status meetings and/or reports are a must. We use the Microsoft Project systems to plan, track, and report on our projects. Deliverables and reports are scheduled and produced at agreed-upon times, and extra communication is added when necessary.

Summary

By following the Process, applications can be developed to meet the client's expectations on time and within budget.

Qualifications/ Certifications

Microsoft Partner -competencies ISV (developer), Dynamics CRM
MCSE, MCD (developer)
Microsoft CAE (Certified Account Executive)
People Tools

We are based in St. Louis, Missouri in the historic Globe-Democrat building at 710 North Tucker, 63101.

We may be reached by telephone at 314-621-1866, and by fax at 314-621-3881.

Our e-mail address for inquiries is gclaunch@gdcii.com.

Journey Team

Microsoft Small Business Specialist

Microsoft Gold Certified Partner

GSA Contract Holder