After an initial conversation, we will send you an NDA (Non Disclosure Agreement)
and then work closely with you to gain a deep understanding of your needs. The initial
contact will be made by a project coordinator who will become your primary business
contact for the full duration of the project. They will usually involve a developer
at this initial stage with an appropriate background to understand your needs and
prepare an estimate.
Depending upon the size of the project, we may break the estimation process into 2 steps,
an initial rough and broad ballpark estimate for planning purposes and a detailed design
phase to determine your exact needs. The results of this design phase are a detailed execution plan
of exactly what is to be created and how. At this point a very accurate estimate can be created.
For the initial estimate, we break down your project needs into well defined units and then place a best
and worst case estimate of time. These are summed up to a range of time and
additional time for Testing, Project management and Bug fixes are added. This creates
an overall range for the project. Depending upon the nature of the project we may
add an additional safety factor to account for unknowns and risks. As there are
always unexpected elements to a project, we weigh the final estimate somewhat towards
the top end of the range to create a project estimate.
We charge by the hour for our services. Our clients own the work product, source
code and all the background files. We have a standard services agreement and work
with our clients and their lawyer to fine tune it to our clients needs.
Once the project is agreed to, we assign staff and can usually start the project
within a few weeks to a month. Throughout the entire life of the project the lead
developer and the original project coordinator remain the primary points of contact.
It is normal for our clients to have a close and direct connection with their lead
developer as the project evolves.
We strongly favor the agile, iterative approach to design and develop a project. This approach allows
the project to evolve through a set of working prototypes that are given to our
client to provide us with feedback. As the project evolves, the prototype become
more sophisticated and tuned to the clients needs. This allows our clients to provide
us hands on feedback and guide the development of the user interface as the project
matures.
We are qualified as a company to create high integrity software for the medical
industry. While most of our projects do not need this rigorous a manufacturing process,
we use a subset of this process for all our projects. This ensures the project is
documented, properly designed, the code is written to a set of standards, that unit
testing is conducted, that a peer code review is done and that the testing is designed
to properly validate the program and ensure it is robust.
Once the project is complete and has been released, we remain available as a long term resource
to our clients as they need.