|
| Previous Thread |
|
|
7/29/2006 8:45:02 AM The agony of building an Application |
This post is not about any specific issue but about building the Application
itself. Please have patience to read the tale of an ametuer "programmer(?)".
Please help if it sounds meaningful.
Three months ago, when I was first exposed to Access, I was amazed to see
the ease with which one can build databases. I was hooked and started by
building my own Application. Learning VBA further enhanced the functionality
of my db.
The problem now is:
The code I wrote initially was very awkward. As I got more and more
acquainted with VBA and its possibilities (still exploring), my Application
grew in size and utility and is fairly successful in meeting the objectives I
set out at the beginning BUT it all became bits and pieces - a modification
here and an improvement there !
So I have decided to re-build a comprehensive Database with enhanced
features and started looking at Sample dbs and I am more confused than ever.
Also, re-writing the code is not as simple as I thought - sometimes, I'm
beating my head against a wall to find what went in my mind when I wrote that
in the past.
Ok, the question is:
Is there any standard documentation or blue-print that answers the following
questions and acts like a checklist ?
How should I approach when I set out to build an Access Application ?
How should I translate my objectives into what should be done with Access ?
How to make sure I don't miss anything ? (and avoid the agony of doing it
all again)
How to know what IS possible and NOT possible with Access ? (and avoid that
"errr... I should have added this to my db!" feeling)
What is the reasonable time it takes to build a feature-rich Access db?
What are the best practices to do it ?
--
Sreedhar
|
|
|
|
|
7/29/2006 12:47:55 PM Re: The agony of building an Application |
Welcome to the world of software development ;-)
As with any serious activity, knowledge and experience are
the critical factors (I'm constantly surprised at how many
people don't seem to get this simple truth). You now have
enough experience to recognize the need for deeper
knowledge. Instead of gathering knowledge through more
frustrating experiences, search your local library and the
internet for an interminably long list of discourses on the
subject. Somewhere out there you should be able to find
some of it that is worth more than one in depth reading.
I suggest that you start with something about how to create
a high level specification of the application, including
areas that may or may not ever see the light of day. The
big picture is here is extremely important. Like the cover
on a jigsaw puzzle's box, you should constantly refer back
to it for answers to questions about "how does this part fit
into the whole?"
Another fundamental area is something called Stepwise
Refinement. This is a way to breakdown the specifications
into tables and their relationships along with writing the
detail requirements for functionality, then break that down
further to a high level modular design, then detailed
component design, to skeletal implementation of each area,
and on to component implementation.
Don't forget that the refinement concepts apply to your test
plan as well as the application's documentation, both of
which should proceed in parallel with the rest of the
project.
Don't despair. It is a huge subject, but the fact that you
recognized the symptoms and the need get a grip on things
puts you way out in front of crowd. Now that you have
actual experience with the consequences of a haphazard
approach, articles, books and disussions will be much more
meaningful. And, don't forget that no matter how far down
this path you go, there is no such thing as perfection so
carry on, even when you're not sure about the "right" way to
do something.
--
Marsh
MVP [MS Access]
Sreedhar wrote:
|
|
|
7/29/2006 4:23:13 PM Re: The agony of building an Application |
comments inline.
"Sreedhar" <Sreedhar@discussions.microsoft.com> wrote in message
news:E97CCB91-9CA3-4B8B-80D7-2994DEA74F1A@microsoft.com...
following
see http://home.att.net/~california.db/tips.html#aTip1. in your case, since
you stress the documentation issue, i strongly recommend the book mentioned
in the tip.
see above link.
?
see above link.
you can never really be absolutely *sure*, because processes grow and evolve
over time, and often the applications that support them must do the same.
but thoroughly analyzing the business process, and broadening the scope of
the analysis as much as seems reasonable, can help get you a bit ahead of
the game. again, see the link above.
that
the line between what "is" and "is not" do-able in Access, is fuzzy. it
depends on the developer's skill level, and to some extent on his/her
ability to search the internet for the many, many resources and solutions
available. and there are expert programmers around the world, in the private
sector, who are constantly pushing the boundaries of what can be
accomplished using Access.
a lot of it depends on the process that the database must support, and what
features are needed (or wanted) to do the job. also, the time spent building
a database is inversely proportionate to the time spent planning it - the
more quality time you invest in process analysis and data modeling, so that
the "blueprint" is correct and complete, the less time you'll need to spend
on implementing that blueprint in Access. and finally, your experience and
skill set also play a big role: if you've done a particular task a hundred
times, you can do it easily without a lot of effort; but if you're learning
how do to that thing for the first time, or have only done it a few times,
then naturally it'll take longer. personally, i've built enough databases to
have several "standard" solutions to certain common needs, that i use over
and over - often with minor tweaking to fit specific requirements. i also
learn something new, often minor and occasionally major, in every single
database i build.
see the link above; suggest you read all the tips and follow the links to
other websites, and from those to yet others...
hth
|
|
|
7/29/2006 5:11:22 PM Re: The agony of building an Application |
"Sreedhar" wrote
It all depends, as others have said, on the _requirements_. That is, what
the database application must do, and the data with which it can work to
accomplish those ends.
In the mid-to-late 1990s, I worked for around five years, off and on, often
with others working on a development team, just expanding and enhancing an
Access client application that used an Informix server database as its
datastore. The basics of this application had been created by others, and
the client had purchased a license to convert it to the client-server model
and to expand its functionality for their own use. Near the end of this
period, we performed Y2K analysis and remediation. One of the things we did
was to "clean up" and eliminate those objects that we could verify were
unused; after the clean-up, the application still had approximately 1,000
objects (tables, queries, forms, reports, macros, and modules -- and almost
every form also had code in its module). This application was for corporate
real estate tracking for a Fortune 100 company. They used it to coordinate
between the company and the real estate companies to whom they had
outsourced major portions of the actual purchase, sales, leasing and
subleasing of thousands of properties owned, leased, or rented by the
company.
Less-ambitious projects can be done in less time... it all depends on what
you consider "feature rich" to mean. I've done Access database projects in a
few days that met the customer's needs and requirements -- for that customer
they had all the features needed. I've done others that required weeks or
months, and sometimes (like that big one) a development team.
"Best practices," like beauty, is in the "eye of the beholder." They are
also very specific to the development model you are using -- which can range
from a "classic" model of creating the requirements, doing the design,
implementing the design, testing the implementation, and deploying the large
project to "current" methods involving prototyping and "agile development"
where you do not attempt to define the entire project, but very quickly
determine the users' needs for, design, implement, show the users, get
feedback, and modify tiny segments of a large project, a few days at a time,
or a week, and then release that segment to the users for production while
you proceed on the next "piece."
In a previous incarnation as a "mainframer," I was involved in producing a
"Procedures and Guidelines" manual for a contract services organization. The
very first release filled two 3" ring binders, printed on both sides of each
page. And, there was constant work keeping it up-to-date, because as soon as
you collected the information from successful projects using a particular
technique, the techniques would evolve and you'd have to do the same for the
new development methodologies. It's certainly not a topic that can be
covered in a newsgroup answer.
Larry Linson
Microsoft Access MVP
|
|
|
|