4D Databases are expensive; you should demand exactly what you need to run your business and not settle for less.
Here are a few of the things you might want to consider when working with a 4D programmer. Following these guidelines should save you both money and time.
© 2003-2008 Palmer Tilden of Wizard
Problems with the chosen 4D programmer
What to do if it appears that the project is not going to be satisfactorily completed.
Even though the client's project might be priced on a fixed bid, it is important to determine the 4D programmer's regular pay rate. Hourly rates vary from $25 to $175, with the average rate of a good programmer being $75 to $125. Since extra enhancements to the 4D database may be required in the future, it is crucial to know what to expect as an hourly rate.
Certain 4D programmers will only work when there are exact specifications. If the client does not have specifications, then the programmer may want to charge for creating them. During the project the client may need to make a few minor changes to the specifications. Some programmers are flexible about this; others are not. The client should discuss this matter with the programmer before the project is started.
The matter of who owns the source code to the database should also be discussed in advance. Some programmers charge more for the internal workings of the database and will only release it for an additional fee. It is crucial that this matter be clarified before the project is started. See Ownership below.
Communications between humans are subject to error. Therefore, it is best to have every specification for the project in writing. Thus, if the database is not what the client expected, the client and programmer can both check it against the written specifications. While programming, Wizard has sometimes reread the specs only to find that his first impression of them was incorrect. This review has prevented much unnecessary programming.
Not everyone is good at writing specifications. Therefore the client should do only as much as he feels capable of. Some is better than none. Often the client will find that while writing, he discovers some new additions he wishes to have in the database. Documenting the specs tends to clarify one's thoughts.
Wizard is very flexible with his clients. Often they do not know all the options that are available to them. Sometimes the client is not quite firm on what is needed in the database. Perhaps he wishes to amplify the specs as the project progresses. In such cases a flexible 4D programmer is definitely needed. Wizard has found that his clients like to be able to add or change features as needed. Clients are asked to give him as much as they can in writing; however, they are told that they can leave some things open to change, because Wizard treats each project as a work in progress.
For the client to make sure that a good 4D database has indeed been produced, the following guidelines should be followed:
- The end product must be thoroughly tested.
- It should be confirmed that the programmer will implement all fixes without any long delays.
- The client should accept nothing less than the desired result.
Databases are expensive, but are necessary for a company to run well. Since the client is paying the bill, he wants to get exactly what is needed to run his business efficiently. Nothing less than this is satisfactory. The client must keep informed of what the 4D programmer is doing. Regular updates should be submitted by the programmer. These should be tested for bugs, ease-of-use, and a good user interface.
Someone at the client's company may be viewing the screens all day long. Therefore, it should be confirmed that these screens are pleasant to look at and function compatibly with the manner in which the company's business is run. The Client should report back to the programmer as soon as he receives feedback.
The client at times may want the work completed in an extraordinarily short amount of time. However, each programmer has individual limitations. Pressure to get the job done faster may not suit the way in which a certain programmer works. Some people can perform well under pressure; others cannot. Therefore the client should immediately determine the programmer's reaction to pressure.
If the project is done on a fixed bid, then the client should not have to pay extra for any bugs that are found in the program after the job is finished. The programmer's handling of such problems should be determined before the job is begun. The client and the programmer should be in complete agreement as to the definition of a bug. A bug is not merely something in the software that doesn't work correctly. A simple change in the software should not cause the database to function in a manner which causes the client marked difficulty. Such an occurrence would be a bug as far as the client is concerned. you.
A well fed programmer is a productive one. The client should make sure to pay the programmer on time. If the client takes advantage of the programmer's good nature and takes too long to pay, bad feelings may be incurred. The client should do his very best to have a good, ongoing relationship with this programmer.
When negotiating money with a 4D programmer the client should strive to be fair. It is human nature to negotiate for a lower rate, but it is usually not the best way to obtain an optimum relationship with a programmer. Hiring a 4D programmer to work at an hourly rate is most often the best method of contracting for services. Using this approach ensures that the client is charged for exactly what the programmer does.
Setting a job up on a fixed rate can cause either of the parties involved to end up very dissatisfied. The job of figuring out what to charge for programming is, at best, an estimate. If, for example, the job is bid at $2,500 and the programmer finishes it in three hours then obviously the job was overbid. In such a case, the client would feel victimized. On the other hand, if the job takes four weeks, then the programmer is going to be very unhappy about underbidding it. It can be very hard for a programmer to do an excellent job if it is obvious that the compensation will be quite meager. If the client tries hard to be fair, he will most likely end up with a better database.
Unfortunately, there are many bad programmers attempting to obtain contracts for their services. A bad programmer is not necessarily one who does not know how to program well. There are a variety of factors which could have a very adverse effect on the quality of the programmer's work. A particular client's project could suffer badly as a result of this fact.
Here are some examples of such adverse factors:
- The programmer is undergoing severe personal problems.
- The programmer heavily favors the work of certain clients while tending to ignore other customers.
- The programmer is quite inexperienced in the dealings of the business world.
- The programmer lacks a professional attitude towards the demands of various assigned projects.
If the client feels that the chosen programmer is not being sufficiently productive, the subject should immediately be brought up for discussion. It is possible that the situation can be promptly rectified in this manner.
If the client is working with a large company which employs multiple 4D programmers, it is best to insist that the same programmers always work on the client's project.
Sometimes the larger companies will put trainee or junior programmers on a project in order to save money. Switching programmers can be very costly for the client. New programmers have to spend time learning the client's database and may duplicate code that has already been written. The client should insist that the company avoid changing programmers once the project has been started.
The client should make a maximum effort not to switch programmers on a given 4D project. It is to the client's advantage to talk with a 4D programmer for the purpose of patching matters up when it seems they are going quite badly.
A new programmer is going to have to learn the client's business, how his database functions, and some of the internal database code. It is going to take a significant period of time for a new programmer to get up to speed.
If it appears utterly impossible to work matters out with the original programmer, then the client must terminate the relationship and contract a new programmer who can work well with the client and the client's company. There are plenty of good programmers available who can be found by employing the proper methods for doing so. This web site has an excellent set of guidelines for selecting a good 4D programmer in the section entitled How do I Choose a 4th Dimension Database Programmer?
Note: Make sure you get the master copy of the database structure before letting your old programmer go. See "Ownership" below.
The most important move the client can make to insure the future of his 4D database is to be certain to obtain the master copy of his database structure. Without it, no fixes or enhancements can be made to the client's database if the services of the original 4D programmer become unavailable.
One of the Wizard's main functions is to repair and enhance databases created by others. While performing these tasks the Wizard has encountered numerous unfortunate situations where the original programmer has changed careers, moved, or is otherwise unavailable.
What can a company's officers do if they cannot make changes to the database as the company grows? In such cases, many companies have had to spend large sums of money creating a brand new database because no one could modify the old one.
Important note: If the client want future additions made to his company's database, he must acquire a copy of the uncompiled master of his 4D database structure. For more information on how to tell which is the uncompiled structure of a database see "Know the parts of 4D" which appears elsewhere on this web site. If passwords are used, the top level password must also be obtained. A customer who fails to follow this advice could very well find his business in an extremely awkward situation.
Wizard is the 4D expert, specializing in enhancements or repairs of 4th Dimension databases. Wizard wants all of his customers to be completely satisfied. Wizard has the experience, flexibility and enthusiasm to do the job just the way the customer wants it.
If your 4th Dimension database needs just a couple of changes or requires a complete overhaul, we are the professionals you can count on.
Top of page
4D Wizard's Home