Billing ethics for managing access database (1 Viewer)

adewale4favour

Registered User.
Local time
Today, 11:21
Joined
Aug 9, 2019
Messages
55
Dear all,
I will appreciate having response to this question as it bothers my Office and work.

I am with a Company that needed a database to be running on server for not less than about 20 users. This has been implemented, the company want me to remain and manage this. This cannot be done without billing the company, even for series of required updates in the future. Please I am new to billing on managing a database, I need a professional advice.


I will appreciate please


Michael
 
Last edited:

Minty

AWF VIP
Local time
Today, 18:21
Joined
Jul 26, 2013
Messages
10,355
There are many ways of improving performance with Access, but you need to be more specific about your issues.

How many records across how many tables? Do you have indexes on your tables ?
Is it forms taking to long to load or a specific query that is taking longer to run ?

Each of these things has it's own methods for improvement / redesign etc.
 

jdraw

Super Moderator
Staff member
Local time
Today, 14:21
Joined
Jan 23, 2006
Messages
15,364
In addition to Minty's sound advice, do you have a backup and a routine to do backups on a regular basis?
Is this a split database?
Have you done a Compact and Repair?
More info on performance from FMS.
 

theDBguy

I’m here to help
Staff member
Local time
Today, 11:21
Joined
Oct 29, 2018
Messages
21,358
Hi Michael. You might also keep an open mind and accept or plan for when it's time to move the data out of Access into an RDBMS.
 

Pat Hartman

Super Moderator
Staff member
Local time
Today, 14:21
Joined
Feb 19, 2002
Messages
42,971
I expected a completely different question based on your topic title.

If the database is growing rapidly, it is most likely because someone is using make-table queries or running delete and append queries to replace the contents of a static table.

We need some more info to help you.
1. Is the database split into a FE and a BE. The BE (back end) would contain ONLY tables and the FE (front end) would contain all the other objects and links to the tables in the BE.
2. If the db is split, do the users have their own personal copy of the FE or are they all sharing the same copy (they shouldn't be sharing)
3. Is the "temp table" in the FE or BE

For now, you can compact the database (FE or BE or monolithic) as long as no one has it open (there is no .laccdb file in the same folder with the same name).

If it really is that data is being added very quickly, you may have to convert the BE to SQL Server sooner rather than later. The FE can remain as Access BUT, you may have to make changes to the FE to see any speed improvement if the FE was not built with client/server techniques.
 

adewale4favour

Registered User.
Local time
Today, 11:21
Joined
Aug 9, 2019
Messages
55
Many thanks all.


The database is currently running on a server, and all users are sharing the same from end from the server. I have observed with curiosity that each passing day, the database size grows in about 10% larger its original design size.



PATH: appreciate your response. Please is it the best practice to distribute the from end to users system and link to the back end on server? It's been sometimes noticed that if this is done, then the back-end does not get updated easily.


As to the title of my post:
I am with a Company that needed a database to be running on server for not less than about 20 users. This has been implemented, the company want me to remain and manage this. This cannot be done without billing the company, even for series of required updates in the future. Please I am new to billing on managing a database, I need a professional advice.


Many thanks all
 

jdraw

Super Moderator
Staff member
Local time
Today, 14:21
Joined
Jan 23, 2006
Messages
15,364
Heed the info from theDBGuy's link!!!
 

Cronk

Registered User.
Local time
Tomorrow, 05:21
Joined
Jul 4, 2013
Messages
2,770
@ adewale4favour
I see that you have edited your original post for more clarity that you are in fact seeking are seeking input on billing methods for future work with that company.


I have been working with Access development for over 20 years. I have always charged by the hour, with a few exceptions where the client could provide a written detailed specification of the work required.



I base my hourly rate on 50% more than what I think I could get as an employee to cover employee benefits I forego and overheads like insurance and my time for government reporting etc. I also do a reality check by talking to body shops (employment agencies) as to the going market. price.


Hope that helps.
 

Pat Hartman

Super Moderator
Staff member
Local time
Today, 14:21
Joined
Feb 19, 2002
Messages
42,971
If you built the application and you are the one who implemented it as a monolithic database, YOU should fix it for free. You should not bill the client to clean up this poor implementation.

Split the database into BE (only tables) and FE (all other objects with links to the BE tables). Distribute a copy of the FE to each user so he has his own personal copy.

Once you split the database, you should also clean up the bad design that is causing the database bloat. Get rid of make table queries and also any procedures where you constantly delete and insert replacement data into a permanent table. There are other ways to work with temporary data that won't cause bloat. In fact, binding forms/reports to queries rather than tables may eliminate the need for temp tables entirely.

And as a final suggestion, perhaps do some studying on application design so you can create more professional applications.

I've been consulting for more than 40 years and I don't bill clients for my mistakes. I do bill them when bad specifications caused the rework.
 

adewale4favour

Registered User.
Local time
Today, 11:21
Joined
Aug 9, 2019
Messages
55
Many thanks all. I have learnt quite a lot.

@Pat Hartman, just to state a little more; One of the modules running every 24hours is on append query, to back up activities of that day, so as to make available for management records of previous days. I was looking at this as one of the reasons for such size explosion, however, I will check with the architectural design to eliminate bugs



As to billing the company. The design is made free, I don't think the management of the database should also be free.



Please share your thoughts.


Thanks
 

gemma-the-husky

Super Moderator
Staff member
Local time
Today, 18:21
Joined
Sep 12, 2006
Messages
15,614
Hi.

It's not clear what your employment status is. If you designed this as part of your employment the dbs probably belongs to your employers, not you, even if you built it in your own time. It depends on what you agreed.


The biggest issue with mtce is that the dbs has to be robust and resilient, but also undertaking to maintain it means you have to be permanently on call and available. Assuming the database manages some urgent task - if the task fails today, you need to be able to fix it. These things can even make it difficult for you to consider a vacation - since you need to have broadband available to sign in and fix things. Hence it's a real commitment you shouldn't undertake lightly.

Good luck
 

Pat Hartman

Super Moderator
Staff member
Local time
Today, 14:21
Joined
Feb 19, 2002
Messages
42,971
One of the modules running every 24hours is on append query, to back up activities of that day
This will certainly cause bloat and there is no reason for it.

Access treats select queries as being equivalent to tables for most purposes. That means that you can bind forms and reports to queries with criteria so that they show ONLY the requested data. If you want to see data entered within a twenty four hour period, use a form with a text box where the user enters a date. Since this field will be unbound, set it's format to short date and that will make Access consider it to be a date and bring up the calendar when you want it.

The criteria for the query will then be something like:

Where DateValue(SalesDate) = Forms!yourformname!SalesDate

Or

Where SalesDate between Forms!yourformname!SalesDateAND DateAdd("d", 1, Forms!yourformname!SalesDate)

The second will probably be more efficient.

Both assume that SalesDate includes a time element. If SalesDate is always just a date, then, you would use

Where SalesDate = Forms!yourformname!SalesDate
 

sonic8

AWF VIP
Local time
Today, 19:21
Joined
Oct 27, 2015
Messages
998
As to billing the company. The design is made free, I don't think the management of the database should also be free.
I have a hard time understanding what this thread is actually about. I perceive this rather as a business question than a technical one.

Of course, maintenance and management work of a database solution should not be free indefinitely. There might be a free period included in the arrangements made for the initial creating of the db solution but this should end at some point.

As for billing the company using the database, there are basically two options. Either you charge them a monthly (or quarterly, yearly) fixed fee based on the amount of work usually required to perform those management tasks you mentioned, or you simply charge them by the hour with an agreed on hourly rate.

I practice, I use a combination of the above for maintenance work.

When a database is completed, I usually offer the customer a maintenance contract. They will pay a fixed amount per year. This will cover two things.


  1. I will keep my development environment used for that customer in a usable state to be able to test and resolve any issue that might arise in a timely manner.
  2. An included, but limited, number of hours I will answer support questions and do maintenance work on the database application.
Once/if that limited number of hours is used up, I will either start billing the client with my hourly rate or offer them an upgrade on their maintenance contract.
 

The_Doc_Man

Immoderate Moderator
Staff member
Local time
Today, 13:21
Joined
Feb 28, 2001
Messages
26,999
As I read through this, two issues come to mind. One of them is technical. One is not.

Technical first:

The database grows because Access creates a temporary structure when you open a query. This structure records something (we don't always know exactly what) about the records that will be in the recordset that results from the query. Updates also make new copies of records that will eventually replace the records being updated. Because of the way Windows uses virtual memory, these structures often end up as part of the Access file. Rapid growth of the file merely means it is active.

You can counteract some of that growth using the strategy of splitting the DB into a front end (FE) and back end (BE), then distributing copies of the FE to individual users. At least some of those temporary structures are created in the FE so that is an immediate reduction in what we call "bloat." If you then use one of those strategies that transparently replaces the FE every time the user prepares to launch the FE, you drop the "local bloat." Then you only have to worry about BE bloat, but that should be reduced to issues in updating.

You also mention that you have heard that a split BE is harder to update. If you mean "via UPDATE queries" then no, that is not correct. If you mean "by changing table structure" then you are correct, but this has to be considered a "cost of doing business."

If you have to modify a BE, it will be to update a data layout because there will be no forms, reports, macros, queries, or code modules to update in the BE. The only thing that should be in the BE would be tables, and would would hope that that your table structures are more stable than the parts in the FE. And if you did the split and used the dynamic distribution method, that update becomes automatic. In this case, you set aside a period of some number of hours once per week, once per two weeks, or whatever you can manage. Update and maintain the BE during that time, including making backups. Again, that is a cost of doing business.

The other side of this question is "charging the company." This gets into contract law, which in turn gets into employment. With a couple of hundred countries out there, I have no clue as to what laws apply to your situation. However, as a general principle, if you are a salaried or hourly employee of the company, what you do for business projects is the property of the company immediately. If you are NOT an employee but rather work under a contract, see the terms of the contract, but most companies write that so that they own work done for hire. The third case is if you are a contracted consultant, and again, check the contract. However, only consultants or contractors with highly limited contracts have any hope of owning anything for which it would be possible to charge for software services.
 

CJ_London

Super Moderator
Staff member
Local time
Today, 18:21
Joined
Feb 19, 2013
Messages
16,553
However, only consultants or contractors with highly limited contracts have any hope of owning anything for which it would be possible to charge for software services.
If I have say a very dynamic search form that I have previously developed off my own bat (not for another client) and a client wants to use it it I do one of two things, either it is used as a .accde library or I annotate the code to say that copyright rests with me and I grant a license FOC (assuming I'm being paid to build an app) for the code to be used in that app, and that app alone and the app is not do be distributed to third parties without my consent.

However in my experience, clients always want it rewritten in some way. IT/purchasing generally understand but don't want to commit, so I have to write something similar for which I have no legal rights to. The trade off is cost - 'use this 'off the shelf' module for £100 one off fee or pay me £1000 to rewrite it'.

Of course I have no way of policing it...... but generally speaking the client will pay the £1000
 

Pat Hartman

Super Moderator
Staff member
Local time
Today, 14:21
Joined
Feb 19, 2002
Messages
42,971
The design is made free, I don't think the management of the database should also be free.
From what I see, what the company got for "free" was worth exactly what they paid for it.

Billing for ongoing services is fine but you should not be charging them for your mistakes. Get the app up to a basic working level and then you can start billing them for management and changes.
 

adewale4favour

Registered User.
Local time
Today, 11:21
Joined
Aug 9, 2019
Messages
55
Dear all,
I quite appreciate. Our suggestions are great, and has helped in no small measure.


Many thanks
 

Users who are viewing this thread

Top Bottom