 |
12. How does Xetex produce timely, cost-effective, high-quality custom solutions?
All custom solutions are implemented using a repeatable software engineering process that includes the following phases:
- Goal and Budget Establishment - Establishing the business case for the project, what the customers' goals and general system requirements are, and sizing the project budget.
- Project Scope Estimation - Defining the scope of the project based on the requirements and budget.
- Requirements Definition and Analysis - The first step in translating the requirements to an implementation. Determining the system components and their interaction, typically by using Object Oriented Analysis methods.
- Preliminary Design and Investigation - A refinement of the analysis that consists of breaking down the interactions into flows and use cases. May involve the development of an information model based on requirements and evaluating commercially/freely available solutions.
- Prototyping - Developing a functioning user interface in order to obtain customer feedback and/or writing code that proves the concept of some fundamental design component.
- Detailed Design - A refinement of the high-level design that results in a software architecture (objects and interfaces) that can be coded.
- Coding - Translating the design into extensible, maintainable, well encapsulated source code.
- Unit/Regression Testing - Writing and running code that tests that all coded classes work as they are supposed to. Regression tests are automated to provide developers with immediate feedback regarding the effect on the system of changes recently made.
- Release Building - Packaging up the class files, configuration files, documentation, graphics, certificates, etc. into a distributable installation file (i.e. a release).
- Quality Assurance Testing - Installing the release and running a series of functional and stress tests on it for the purpose of finding bugs.
- Deployment - Installing the release at the customer site and getting it running.
- Bug Tracking - Keeping track of bugs that are reported and which releases they are fixed in.
The phases are ordered somewhat temporally, but are not strictly sequential; there is some overlap and some groups of phases are done in iterative cycles. The process involves continuous unit test and integration and frequent small releases that facilitate early customer feedback. This approach makes Xetex particularly well positioned to handle projects where requirements are initially vague and/or evolve rapidly throughout the development cycle.
Project progress is formally tracked and reported to the customer weekly. This provides the customer with continuously updated decision making information and allows Xetex to quickly adjust to changing priorities. The process is highly structured but also lightweight, and flexible enough to be customized to meet specific project requirements.
|