Client Engagement Process
There is certainly no "one-size-fits-all" approach to managing software projects. Each customer
has a unique set of requirements and constraints. However, there is a common process we employ
to ensure the success of each project and the delivery of high quality software on-schedule and
under the budget constraints of the customer. The process consists of the following basic phases:
Requirements Definition
This initial phase is very critical to the success of the project. You may have a very clear set of
requirements or you may have just a general concept of the product you want us to develop. It's quite
challenging at the beginning of the project to define all the detailed requirements when not all the
information is available and the implications of making certain decisions are still unknown. We
encourage you to work with us as a team and involve us in the process. The Implicit team is very
experienced in working with you on what we call 'discovery sessions'. These are a series of brainstorming
meetings to assist you in identifying the exact requirements for your project and defining them with a sufficient
level of details and timeframes. We help you translate your business goals and priorities into clear, well defined
software requirements. Once the requirements have been defined and agreed upon, we prepare a Statement of Work.
Statement of Work (SOW)
The SOW includes detailed requirement specifications to ensure that we have a comprehensive understanding
of your requirements and their relative priorities. The SOW assigns roles and responsibilities to every member
of the team. It provides milestones, schedules and a detailed list of deliverables. We then work with you
interactively to refine the SOW until a final agreement is reached. Once you sign off on the SOW the development starts.
Design and Development Phase
Typically, the first milestone will be either a prototype or the completion of the design phase. The objective
is to ensure once again that we are aligned with your goals, requirements and priorities. This is also the time
to present you with different options and get your input on appropriate tradeoffs. Often, requirements may change,
and this milestone is an opportunity to synchronize.
We usually prefer to have a number of intermediate milestones during the development phase in order to once again
ensure that we are in sync with your expectations. Typically those milestones are associated with the completion
and demonstration of critical tasks.
Testing and QA
We are strong believers in having our software QA engineers participate in the early design stages of the project.
This ensures that they are knowledgeable about the product, its design goals and functionality. In many projects,
your internal QA or engineering team is also involved as they will eventually be responsible for conducting acceptance
tests. When the internal testing is completed, the product is delivered to the customer to conduct acceptance testing.
Delivery and Acceptance
When the internal testing is completed, the product is delivered to your engineering/QA team to conduct acceptance testing.
The acceptance criteria are typically agreed upon in advance. Upon delivery of the software (code, build trees, tools etc)
we will also deliver the product technical documentation. The Implicit team will continue to work with your internal
resources to ensure a smooth transition by facilitating ongoing training sessions and knowledge transfer.
Maintenance and Support
Even after the product is delivered and is officially accepted by you, Implicit engineers are available to continue to support
the product and deliver maintenance releases and enhancements. Those are typically covered via a separate support agreement.