The Engagement Process
The Engagement Process
eCosCentric engages with customers on either a fixed-price or a time and materials (T&M) basis. The following overview should help you understand which may be the most appropriate approach for a specific project and describes how engagements with eCosCentric are generally handled.
For a project with a fixed set of well defined specifications, we are generally happy to enter into a fixed-price, fixed-specification, fixed-schedule type agreement. The wealth of experience and capability we have in porting eCos to different hardware, creating device drivers and developing new features provides the confidence needed for this approach.
Whilst this type of engagement delivers certainty to customer's budgets and schedules, they do require time to prepare. Detailed requirements gathering, engineering estimation and agreement drafting are all prerequisites and must be fully completed before any engineering work can begin.
Time & Materials Engagements
A T&M engagement can be a more suitable approach for many projects. Compared to a fixed-price engagement, only limited specification, estimation and agreement drafting is generally required in advance, so projects can start immediately engineering resources are available. This makes it a good match for short engineering tasks and consultancy. It is also the only suitable approach for investigation, debugging and research oriented projects, where accurately determining the overall effort required ahead of time is not possible.
This approach is naturally flexible and allows the specification of the work to be modified dynamically. In situations where a project's system software specification is incomplete or not yet locked-down, where there is a lack of detailed hardware documentation or hardware design volatility, or where there are other critical risk factors, then it will only be possible to engage on a T&M basis.
Whilst we do endeavour to inform customers ahead of any potential scheduling conflicts, resources for T&M projects must be booked ahead of time in order to guarantee availability.
Engagement Process Phases
The following describes the general process we follow during custom engineering projects, and in particular, when handling fixed-price projects.
Initial discussions usually start with a phone or email enquiry. At this stage we try and answer any general queries directly, gather an outline set of requirements, and provide an initial feasibility assessment.
If the project looks feasible then a "ballpark" estimate is typically provided as the next step. The aim here is to take a customer's outline project requirements and produce a quick first pass engineering estimate, with the goal of setting reasonable and realistic budgetary expectations. There are often a number of questions that come back from engineering to clarify aspects of the specification further, to tie-down any major unknowns, or to provide feedback suggesting alternative approaches or options to consider.
Once the system software requirements are locked-down, the ballpark guidance is deemed within acceptable bounds by the customer and they wish to proceed, the next step is to produce committed costings for the work.
This requires, from the customer and their suppliers, a detailed set of requirements, specifications, schematics and datasheets. Everything necessary for the detailed analysis and estimation of the effort required to develop, debug, document and test the required system software. The estimation may include optional components, where the customer is uncertain of the total extent of the specification. As with a ballpark estimate, a number of requests for more information and clarifications is typical.
The end result of this phase will be a fixed cost and timescale quote for delivery of the required software.
Depending on the project's scale and complexity, we may require a small fee to cover the effort required for this detailed investigation and estimation phase. The fee will generally be refundable against the total project costs, should the project go ahead.
Should the costs and timescale be deemed acceptable to the customer, the next step is to produce a framework agreement pack.
The framework agreement pack consists of Services, Support and Statement of Work (SoW) Agreements. Subsequent engagements will be streamlined as they will only require the generation of a new SoW. These agreements provide the contractual underpinnings of any engagement including software licensing, warranty, support services, payment terms and so forth.
The SoW details the specification of the project-specific work to be undertaken, the deliverables, their scheduled delivery and associated invoicing.
The SoW will include a signed-by-date. A signature on or before that date is required to lock-in the resources required to deliver the project on schedule. If this date is missed then the SoW will usually need to be resceduled and redrafted.
Development typically starts with the delivery of any custom hardware and software from the customer as specified in SoW.
During development the customer is provided with engineering status updates on a regular basis, along with any questions or issues that are subsequently identified with hardware, specifications, etc. If the project is of a sufficient size then a project-specific mailing list will be created with relevant project management and engineers assigned from both customer and eCosCentric. This simplifies contact between the two sides for rapid and transparent sharing of information, queries and status.
Software Development proceeds through the various development, documentation, testing, release engineering and quality assurance tasks as defined in the SoW. The end-result of this phase is the delivery of a high quality software release to the customer.
Once delivered the project moves into its support phase. The support services are defined in the Support Agreement within the contract pack, with the support period and allocation as defined by the project-specific SoW.
Our support services provide advice and resolution to any identified system software issues, helping to ensure the customer's project stays on track through to its ultimate deployment.