Hello Mike,
Based on the scenario you've provided, I have provided answers to your
questions #1 and #2 below. Before being able to provide further
analysis, it is worthwhile to break down the major requirements of the
system and the environment within which the system will run.
Informal requirements/objectives of the new system:
1. Eliminate physical paper trail in favour of database system.
2. Users (sales reps) access the system via a web browser; there is
software installed on user machines)
3. Database and application server are to be physically located on premises.
4. Purchase of supporting hardware (database and application servers)
will be required.
5. Purchase of networking capability (Internet access)
6. Major features include:
(a) Ability to place new orders via a web form
(b) Ability to share order forms across multiple departments
(c) Surgery calendar
(d) Integration with supplier to obtain parts data via barcode scanning
(e) Tracking of parts as they are shipped, returned, etc.
Now, on to the questions at hand (I've rephrased them slightly to
reflect the way that this answer is being presented).
Question #1: What software and hardware will be required to implement
a system like this?
First, let's address the major hardware/networking components
necessary to get this system up and running:
A. Physical server(s)
Servers are used to host your website, web application, and database
server. The reason I indicate you may need more than one is purely due
to my own preference that a corporate file server should be seperated
from any databases or applications. Databases and application servers
should actually be kept seperate as well for larger applications but
you should be able to get away one in your case.
Dell is a popular choice as a server provider and has options
available for the full range of needs. It is reliable hardware with
good tech support in my experience. I used the Dell Server Advisor to
obtain cost estimates on servers I thought would meet your needs. It
came back suggesting the PowerEdge 1800, which you should budget about
$4K per server (it varies since you can configure it further depending
on specific components you may want to add/remove.
The Dell Server Advisor is available from:
http://www1.ca.dell.com/content/topics/topic.aspx/global/products/pedge/topics/en/server_advisor
Details on the PowerEdge 1800 configurations are available here:
http://www1.ca.dell.com/content/products/features.aspx/pedge_1800
B. Client PCs
This one is fairly straightforward and essentially requires that all
of your users have access to a PC that has Internet access. Browser
and OS compatibility ease the development process, so it's best to try
and have a 'standard issue' of PC hardware for all users of the
system. Since you've mentioned that this is already in the works I
won't go any further here.
C. Testing Environment
Something that is often overlooked until the last minute is a testing
environment. Ideally this environment should be a replica of the
production environment and have it's own dedicated resources
(servers). The reason for this is so that the functionality of the
system can be verified prior to making it available to your user
group. You also want to make sure you have a testing database so that
your data integirty in production is not affected if ever you want to
make changes to the application. More on database servers in the next
section.
D. Server Facility (optional)
A best practice for organizations that don't have a dedicated IT
support staff is to keep their servers at a co-location facility. This
is essentially a managed datacenter that stores physical servers. It's
a much better option than having the server sitting next to Bob's
desk. Just something to keep in mind.
Here are a couple "COLOs" based in Vancouver:
Peer 1:
http://www.peer1.net/en/location.asp?city=501
BCHosting:
http://www.bchosting.com/colocation/vancouver.php
Next, we need to identify the software required:
A. Database Server
A database server is a software service that is responsible for the
storage and management of your business data. I've included a short
list of some of the more popular ones here. I've taken the liberty of
choosing a specific edition where applicable that is suitable for your
needs.
Microsoft SQL Server (standard edition):
http://www.microsoft.com/sql/editions/standard/default.mspx
Oracle (standard edition):
http://www.oracle.com/database/Standard_Edition.html
mySQL:
http://www.mysql.com/products/database/mysql/
The cost of a database server runs from free (for the open source
mySQL) to several hundred dollars for the MS and Oracle versions. The
difference is in the technical support and robustness of the higher
priced options.
B. Application/Web Server
Every web application requires an underlying service that is used to
serve content to users. This is not an expensive component, but the
choice is generally determined by the development tools you settle on.
The two main alternatives are IIS and Apache. Internet Information
Services is actually built into Windows operating systems and is
typically used to host Microsoft .NET web content. Apache, also free
and available for download, is the common choice for Java/J2EE web
applications.
C. Third Party Components
A popular phenomenon in the web development industry of late is the
use of third party components in web applications. Essentially what
this means is that the developer doesn't have to re-invent the wheel
to develop some functionality that is being offered as a packaged
component. In many cases, it is cost-effective to simply buy the
component and then customize/integrate it into your application. This
is something your contractor may bring to you, so it is good to be
aware of ahead of time. You generally wouldn't need to select such
components yourself, but rather approve their use within the system.
From what you've provided regarding system features, I believe you may
consider using something to provide you with calendaring functionality
(to support your sugery calendar). I found an example that could be
used within your your proposed system from ActiveUp:
ActiveUp: Active Calendar
"Active Calendar is an ASP.NET server control that allows users to
select a date and/or time quickly using a professional looking date
picker with a client-side managed event system. No postback to the
server required, no external script file required."
http://www.activeup.com/products/components/activecalendar/
The barcode scanning functionality is also a potential candidate for a
third-party component.
D. Development Tools
The decision of the development toolset to use is perhaps the most
significant and may be driven by the party you decide to do this work
for you. Depending on your arrangement, you may not even care about
this. Most consulting firms doing this type of work already have a
development environment ready and would just need to deploy the final
product to your production servers upon completion.
Nevertheless, below is a list of the types of software/tools
developers would need to create your system.
(i) Integrated Development Environment - this is the place where the
"coding" happens
(ii) Source Control Repository - a data store used to centralize
source code and other files
(iii) Design/modeling tools - assuming a thorough design is
undertaken, models are created (usually with UML) that represent how
the system should behave.
(iv) Deployment tools - required to convert and package source code
into a format that allows for delivery into a production environment
Question #2: Is there already an existing package that meets my needs,
and if so, what is its estimated cost?
I did an extensive search for packaged software that met your
requirements, and unfortunately there is nothing that is even close to
what you are trying to do. You can imagine that your company operates
in somewhat of a niche market - this means that the data your need to
manage is somewhat unique.
There are packaged systems that do the generic order processing, but
these are not in line with what you are trying to achieve. As a
result, I would suggest that this particular project be undertaken as
a custom web development effort. The benefit of this is that you will
be able to tailor the software to meet your current and future needs
without the need to conform to a product. The downside is that this is
not plug-and-play; you will need to be patient and work with your
contractor(s) to capture your vision in the software.
It is important that you are careful and that you limit your
functionality requirements to the absolute essentials. A good way to
do this is the following:
1. Brainstorm a "laundry list" of features
2. For each feature/functional area, mark it as "Need" or "Want"
3. Include your set of needs in your RFP
4. Retain your full list for potential future improvements
The next factor to consider is your time frame; in other words, how
long can your organization wait until the software is ready to use?
This expectation is something you need to express up front as this is
the other major determinant of overall system cost.
Since you are in the very early stages of hashing out the requirements
of this system and don't have a defined timeframe yet, I will hold
back on giving you an estimate on cost. However, keep the following in
mind:
1. Developing the system is not the end of it - you will need to
ensure your investment is protected by having support, periodic
application maintenace, and data backups. Budget for an overall
maintenance cost of about 10% of the total development cost for each
year the system is in use.
2. Projects quoted on a "time and materials" or "fixed bid" basis. The
first is essentially an hourly or daily rate for the people you need
to complete the work (usually up to some ceiling based on an
estimate). The second is a flat amount that doesn't change regardless
of how much effort is actually required - be careful here as sizeable
contingencies are often built into these types of bids to cover the
risk.
Hopefully the information above familiarizes you with the requirements
for developing a web application. If you have any questions please do
post a clarification and I will respond promptly. I will be looking
into the second part of your question shortly.
Cheers,
answerguru-ga |