Do not fear, you are certainly not alone in your desire to convert a
tedious manual process into something more manageable. Often people
working with structured information such as this choose something they
are comfortable with to start (such as Excel in your case) and later
find that although they have become proficient with working around the
deficiencies, the tool is not quite appropriate for the task(s).
Enter systems analysis and redesign - although from your description
it doesn't seem there are any other users aside from yourself the
process should resemble that of a similar system. In order to convert
your current (manual) process into something that leverages your
information effectively and allows you to perform your tasks easily
you should first take an "inventory" of sort so that you personally
understand the desired result of any future work with a software
1. Define what type of information you are working with, and for each
type of information is it also helpful to know how that information
comes into existence. For example, you could be entering data
yourself, or you could be the recipient of data from another source.
If you are retrieving data from another source, note the format of
that data. One of the largest problems that occurs during the
conversion process is that the data coming from the old system is
somehow incompatible with the way the new system is designed.
2. Make a list of the ways that you want to use this information - a
key part of this is to try and avoid Excel-specific references and
think about you task as if you didn't have a current system. Once you
have your list compiled, you should do a couple of things:
(a) Create three categories: retrieve information, create/update
information, or perform administrative function (data is not involved)
(b) Prioritize your tasks by their importance to you - its important
that you factor in how often you will need certain tasks, and how
easily you could live without a task. This is important because in
reality it is difficult to incorporate all the bells and whistles when
you have a limited budget. You should know which tasks are essential
and which you can throw out if necessary.
3. Document a sample workflow - this is essentially a walkthrough of a
typical anticipated use of your future system. It is a good idea to do
this because if you've forgotten any tasks this will surely remind
you. Furthermore, it will be of great help to a developer so that they
have an idea of the context within which you plan to use the system.
The result of providing this to a developer will be a (hopefully) more
4. Define a list of business rules that you want integrated into your
main tasks that will need to be built into the logic of the program.
You may want to specify what tasks or pieces of information are
affected by each rule (refer to the work you've done above).
This is the "analysis" part - as a system designer and developer
myself, the above information is extremely helpful and almost enough
to design and implement a solution. With the above in writing, you are
minimizing any chance of miscommunication and, more importantly, you
can use this preliminary work to guide yourself through the rest of
Next, you need to consider how to attain a developer and work with
them to work your project to completion. The three major variables of
any project are:
1. The extent to which the result meets the initially specified requirements
2. The cost of the project
3. The time requried to complete the project
For your application, your idea of having a university student
complete it for you is a great idea. Professional consulting and
development firms usually deal with medium to large corporations -
while their solutions are typically more reliable the cost is likely
to be exorbitant. Offshore developers (ie. India) are more effective
if you want a long term relationship for the purpose of a stream of
projects. While cost is minimized with this option if you choose
carefully, communication is often a challenge and the client tends to
lose control of the direction of the project.
So since we have narrowed down the source of our developer to a
university, let's explore how you can obtain a suitable candidate.
Depending on the institution, you would normally contact either the
respective faculty or department office and ask for a referral to the
industry liason. This is the best way to get in touch with faculty who
require external projects for course credit. Most universities have
strong ties to corporations - this liason acts as the intermediary
between the department faculty, administrators, and external
corporations. Another place within a university to obtain contact with
student talent is through internship and/or co-operative education
Given the information you have provided, it is difficult to pinpoint
the estimated hours or cost of your project but you should have a much
better idea once you have completed your analysis. I would say that
hiring a full-time employee for approximately 15-25 hours should be
sufficient to complete your project. This is all very much dependant
on the technology you choose - Microsoft Access is a good choice for a
project of this size as there doesn't seem to be any "unconventional"
database concepts necessary. An hourly cost for an Access developer
ranges from $40-60/hour and consultants are far more expensive. Since
we are dealing with students, I would suggest offering $20-25/hour for
a fixed period of time - you don't want to be billed for a project
that is far over its time estimate. Of course, students are not
typically available to work full-time they would be working part time
over a longer period. Expect delays around exam time, but if you are
patient and you know that degree projects (which are done for free)
are going to come around you may not have to pay anything at all.
However, these projects are closely screened by professors and having
done a couple of these during my own computing science degree I
suspect yours will not qualify as it is not complex enough.
From your question, it doesn't seem that you are very interested in
actually developing this database application yourself. However, the
comments provided by spokane-ga should be considered. The importance
of databases and information management in today's business
environment has pushed many non-technical people to learn the basics
of this field. Microsoft Access is piece of software you may already
have if you own the Microsoft Office suite. This is a user-friendly
program that is very powerful - if you have any interest in learning
about this I suggest Access along with a reference book (Microsoft
Press has a host of these available).
Hopefully this first-hand account has given you some insight into the
analysis and development process. If you have any problems
understanding the above information please post a clarification and I
will respond promptly :)