How we work
 
Guiding Principles

At eContek since inception we have always been not only process driven but also have varied the processes depending upon the project and business processes of the Client. With us the customers have the confidence of working within their business processes.

eContek has a very wide range of technology expertise in-house. We have local technical and Project Management teams in (Chatsworth) Southern California and extended team in India. We have a successful and cost effective model of a combination of strong local support with offshore development.

Our process is designed based on extensive user feedback and best practices.

The principles that we followed while designing this process are:

* Provide maximum transparency to the customer and the management throughout the entire project. Our hands-on project leads define understand the requirements to maximum extent. One of the main concerns of the customers in any outsourced project is the amount of visibility into the project. The clients give out a part of development that is very critical to their business success and often it goes into a blue box. 

* Develop well-defined requirements and interfaces to the process to ensure easy interaction. Usually in product development many parties need to be involved to give the complete solution. Functional experts, product management, and business analysts need to interface with the development team to provide their feedback and comments.

* Provide phased delivery through progressive steps of the solution. Simulation and Prototyping are very critical Often users cannot visualize what they are going to get without getting incremental input and feedback. Specifications may look totally different once the development is done!. Our process is designed to address this through deliverables at every stage and immediate feedback for correction.

* Optimize the use of diverse skills needed in product development to maximize speed and productivity. All product development depend on a diverse set of skills and technologies. Our process through its interfaces and phases aims to accommodate use of resources with diverse expertise for specific tasks in the system development. Our developers and project managers are trained in specific technology tracks – enterprise technologies, core embedded or Internet development, databases and QA. They are used in different projects depending upon the needs to minimize overhead.

Project Management Principles

User feedback and sound project management practices are at the heart of our development processes. The principles that we followed while designing this process are:

Keep our services as transparent as possible to our customer and their management throughout the entire project. Clients often outsource the part of their software development project that is most critical to their business success. One of the main concerns of the client is the amount of visibility and input they have in their project. All too often contractors perform their development in a blue box leaving the client in the dark regarding the status of their project. To ensure that the client is comfortable with every stage in the project, we meet with the client regularly, provide weekly status reports and then in every major decision we make. We also ensure that we have a formal sign-off from the client on every major deliverable. By applying this principle we ensure that, should the project not be progressing exactly how the client anticipated, the client has an opportunity to correct the course of the project. Project schedule updates and milestone signoffs at every stage

* Develop well-defined interfaces to the process to ensure easy interaction with clients and their vendors. Usually in a software development project many factors need to be involved to complete the solution. Functional experts, graphics artists, and Marketing or business analysts need to interface with the development team to provide their feedback. Web hosting and other service providers also need to be involved at the deployment stage, if applicable. It is critical that the communication processes are well defined, and that the client and its vendors are familiar with the process.

* Provide phased delivery through progressive releases of the software or solution. Often users cannot visualize what the software will look like when it is complete. Specifications on paper can look significantly different once the development is completed. Our process is designed to eliminate this problem by the use of deliverables at every stage, and with immediate course correction. Additionally, to help the client visualize the product, the first look the client has of the product will be its GUI shell, which is created very early on in the project.

* Provide the fastest delivery of services possible. With Internet development time becoming the standard development paradigm for software development, our process stresses maximum parallelism as the quickest route to solution delivery.

* Optimize the use of diverse skills needed in software development to maximize speed and productivity. All solutions depend on a diverse set of skills and technologies. Our process aims to accommodate the use of resources with diverse expertise for specific tasks in the system development. Our Developers and Project Managers are trained in specific areas of technology – enterprise technologies, core Internet development, databases, and QA. These technologies are used in projects on an as needed basis to minimize cost.

Our Process

* Our process consists of following phases. Each phase has a documented methodology and specific deliverables associated with it. The methodologies and sample output from each phase are attached to the document.

Discovery

* During this phase we go through intensive client interaction to discover what the scope/problem/opportunity is and what are the related issues. Discussions with the client leads to definition of scope/problem/opportunity from technical and business point of views.

* Items addressed in this phase are -
* Who are the potential users of the system?
* What are the needs that the system will serve?
* How are these needs being satisfied now? What are the   current business practices?
* What would be the key benefits of the new system?


Customer’s business, business success factors and constraints are understood in detail in this phase

These questions help us define the scope of the system in terms of usage, performance, scalability and security. Time to market is also looked at and often decides the technologies to be used.

Definition

A detailed architecture and definition of the system along with system processes and dependencies is made during this phase. Estimate and schedules are also drawn up.

Key technical decisions are made in this phase. Architecture, design, technologies, and components used in the project are defined.

This phase focuses mainly on the technical aspects of the definition – user tasks, system objects, system processes and interactions are defined in this phase.

Following items are identified by the end of this phase -

* Major user roles
* Major system components and services of the software
* Screen navigation diagrams for various user roles
* Sub-system interactions
* External system entities that the software needs to interact with.


Completion of definition phase ends with decisions about the technologies to use, components to buy, and delivery of estimate and schedules.

Design

A high level design of the system is made taking all the above “discoveries” and “definitions” into account. We also address the high level needs of scalability, reliability and ease of maintenance in this phase.

Following activities are completed in this phase-

High level architecture and design of the system
Low level design involving

* Identification of Components and Interfaces
* Identifying web pages to be mapped to Screen navigation diagrams
* Development of the data model

Search of object repository to identify and retrieve reusable components. These are incorporated into the design

Rapid Prototyping

Those parts of the system that face most uncertainty and ambiguity are rapidly prototyped during this phase and decisions made through client interaction.

Mainly the UI and high technical uncertainty portions that threaten the execution of the project are addressed in this phase.

Following activities are completed in this phase-

* Development and acceptance of design with limitations known upfront.
* Development of major UI components
* Development of prototypes to explore any other system uncertainties like response time, scalability etc.

Course correction and Change control

Based on the feedback from the previous phase course corrections are made and added to the initial specification. Course correction is also done at each of the milestones in the implementation phase.

This is the interface for clients to provide their feedback. After each phased deliverable client gets a chance to course correct within a framework.

The clients get a guided look into the system at least every week. Any changes that are suggested are categorized into bugs and feature requests.

All feature requests go through a Change Control Process. These are implemented only after the effort estimate and cost are approved by the customer.

Implementation

Coding of the system is done in this phase. This phase in itself is split into milestones and deliverables that are delivered to the client and his feedback taken. Actual “realization” of the system happens during this phase.

We have developed our coding process and setup our development environment in such a way that enables us to execute this in a massively parallel manner. Various components of the system, services, UI and database are all developed independent of each other based on the low level design.

Acceptance Testing

System is tested in our testing lab at every milestone. We take the system through functionality, stress, and load testing.

We have customized tools and COTS (commercial off the shelf) packages that we use for various types of testing and bug tracking. Our clients also participate in this process through the same tools.

An acceptance plan is made and submitted to the customer along with the detailed design. The system is accepted once the Client signs-off on all the items in the acceptance plan.

Deployment and Handover

A completely tested and approved system is deployed on customer specified location. This is also an iterative process in practice so that client’s feedback can be incorporated. We work with client’s development team to handover the system, with documentation.

This phase involves -
*  Installation of all components of the system at customer’s premises
*  Aiding hosting outsourcers in deployment on production servers
*  Training in-house staff to administer the site

We work as your Technical Support center  

Using dedicated communication lines, we can provide 24/7/365 technical support for YOUR product. We train our technical support professionals in India on your products. They will provide the best support to your clients transparently. Our call centers in India, have proven to be the most cost effective way for customer service and tech support. Your customers will be happier than ever because they will get to speak with a live expert any time without having to wait and listen to telephonic music!







Copyright 2010, eContek, All Rights reserved.