Regardless if you elect to
utilize the services of Advantage Systems or not we understand
the complexities involved with the selection of a company to
develop your software package and the cost involved with this
decision. Not only is there the initial upfront cost to develop
the software package but the related business cost if the
application fails to produce the results necessary to maximize
the benefit to your company.
To help you with this selection process we compiled a list of
items to consider when selecting a software consulting company..
When
requesting a quote from a software vendor ensure the vendor
includes such items as support time, change orders and
deployment cost amongst other things in the proposal. These
items are normally considered out-of-scope and while the project
on paper may appear to be in budget during development these
type of “back-end” charges could drastically effect the actual
cost of the software.
Given the
nature of software development, regardless if the development is
being done onsite or offsite, it is difficult to track the
actual number of hours being billed to develop your software
package. You need to carefully consider why a consulting company
would send you timesheets or invoices on a daily basis. Having
an open timesheet visible on a web site 24 hours a day is no
guarantee your software is actually being worked on during that
timeframe. Instead it is better to request the consulting
company provide you with a timesheet when they deliver interim
releases of the software for you to review. This will allow you
to compare the timesheet with the software to ensure you are
receiving what you are being billed. The timesheet should be in
a consolidated concise format. You should be easily able compare
the current timesheet with the previous timesheet to ensure you
are not getting double billed for the same work.
Some software
companies utilize offshore programmers, in other words they
develop a written specification of the software project then
send the work overseas for a discounted programming rate. While
the cost of the development is reduced, Advantage Systems has
heard from clients they have experienced slow turnaround time,
source code is not commented or commented in a foreign language
and communication is challenging.
A software
company should utilize source code control software, this will
enable the company to retrieve previous versions of the software
in the event an unexpected behavior occurs between releases of
the software and isolate exactly what part of the source code
changed. Further, the source code should be located on a
file server with redundancy, reliable backups and a disaster
recovery plan.
A consulting
company should provide you with a development or beta release of
your software every 10-15 business days. This will allow you to
track the progress of the software, ensure a miscommunication is
not occurring and the software is headed in a direction
beneficial to your company. Even if you are not a programmer you
should still be able open some of the source code using notepad
to ensure the source code is properly commented. In the event a
programmer leaves a consulting company or you decide to go
elsewhere this will drastically decrease the cost of
transitioning the project to another programmer. For example if
you are having a company develop a software application written
in Visual FoxPro; as part of the source code there should be
files with a “prg” file extension. These files can be opened
using word or notepad for review without any negative impact on
the application itself. This practice will further ensure the
vendor is providing you with the source code for your
application.
Request to
speak with the programmer who is actually going to be working on
your application during the presales phase. No matter how much
you may like the salesman the programmer is the one you will
need to rely on if any issues arise with the software.
Written specifications
is a good idea to ensure your application is being programmed
correctly, however this is equally to protect the software
company as much as it is you. Often you will be billed by the
vendor for drafting the specification document along will giving
the software company a way to bill change orders for
modifications not included in the written specification.
One method of documenting specification is to draft a
specification document for a single module or subsystem of your
application then ask to review the progress of the software
development for that specific module. An alternative approach is
to actually build a prototype of the screens and reports during
the specification phase, this approach eliminates any questions
about what functionality to include and what the final look and
feel of the application will be like. A proficient programmer
should be able to create a form with you in about 2-4 hours
depending on the complexity of the application. While it may not
be fully functional many times this approach works better then a
written specification.