The development methodology that I2X uses is based on the software industry, best practices model. This includes several planning phases and several development phases followed by an implementation and follow-up phase.
THE I2X APPROACH
Detailed below is the basic approach I2X uses to develop and maintain Client websites.
This phase is conducted prior to the initiation of actual source code development. This phase is a joint effort between the Client and I2X and is used to more clearly define the client requirements. While similar in nature to the Request for Proposal, this document, which will become part of the contractual agreements between the parties, is a more detailed version of the end-product requirements. The Project Scoping and Definition document will be used as the basis for the Functional Specifications Definition phase of the process.
This document will be generated after contract signing and will detail the various phases of development through go-live and beyond. This document is used both internally and externally as a guide during the development process to clearly set client expectations and to schedule I2X internal resources for development.
A. External Functional Specifications Document
B. Internal Functional Specifications Document
This document, which is developed after the Project Scoping and Definition document details product specification, performance, interface, database schema, functionality, usability criteria, look and feel, and ongoing requirements at a highly detailed level (e.g., button placement on the screen, page naming conventions, etc.) This document is used by the I2X Engineering Department as a guide during development and is used by the I2X Quality Assurance Department as a guide during testing.
The Technology Research phase of the development process is used once the Functional Specifications Definition Documents are completed. This phase of the development process allows the software design and implementation team to ensure that the most recent, most functional, and best suitable technologies are used for project. This could include internal sourcing of necessary development equipment and software, discussions with external strategic partners, Internet and journal research, etc. Since the Internet space and software/hardware technology changes so rapidly, it is generally prudent to conduct some research.
The Design and Development phase of the development process begins once the Functional Specifications are completed. This is the phase where actual software source code, graphic design, user interface, animation, and other related development takes place. Internal development tasks are assigned to various Engineering Team members. Since development of any large-scale project requires the skills of several Engineers, strict software source code control and task management is required. I2X uses several internal systems for task management, product issue resolution and tracking, time management, and source code control. Microsoft Project, Microsoft Visual Source Safe, SVN, a proprietary Product Tracking and Reporting (PTR) database, and a proprietary tasking database are used to effectively manage the development process.
The Testing and Quality Assurance phase of the development process begins during the Design and Development phase. This phase is an essential part of any software development project. It ensures that the end product meets the Client requirements, that the website is stable and operable in multiple web browsers and on multiple computer platforms, that the functional requirements agreed to by the Client and I2X are met, that the Engineers are working towards the pre-defined specifications, that performance metrics are maintained, and that any issues which arise out of the development process are identified and resolved early. I2X cannot emphasize enough, how important effective Testing and Quality Assurance are to the Client and to the end product. A significant amount of time is spent during this phase of the project. A proprietary Product Tracking and Reporting (PTR) database system is used to effectively track and manage website bugs, issues, and resolutions.
The Final Acceptance phase of the process is conducted after the Testing and Quality Assurance phase are completed. Since the client will have access to the website during the Beta phase of the project (a phase during which the site is available for Client testing but not general distribution) the Final Acceptance phase is generally short in duration. During this phase, the Client gives final approval to I2X that the site meets the Functional Specifications and Client expectations. Once the Client approves the website for go-live, I2X deploys the site for anonymous Internet logons.
PHYSICAL DEVELOPMENT & DEPLOYMENT ENVIRONMENT
The Development and Testing Network of servers is used for internal development and testing, these servers contain source code, source code work in progress, graphic files, miscellaneous documents, various database, and pieces of proprietary code. These servers are used by the Engineering and Creative departments for Alpha (pre-Beta) coding and internal testing. This network is used, if necessary, for ongoing development after go-live.
The Staging Network of servers is connected to the Internet and is used for testing, quality assurance and Client preview and assessment prior to go-live. These servers are accessible via a special URL for the client to use at the appropriate time during the development process. While this network is connected to the Internet, it is not available to the general public. This network is used, if necessary, for ongoing Client preview and testing after go-live3
The Product Network is a network of high-availability servers, switching and support equipment connected to the Internet. This network is redundant, load balanced, highly scalable, physically secure, monitored 24/7 for performance optimization, and located on a separate physically network from the Development and Staging Networks. These are the servers where the production website will reside once complete.