| 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!
|