Programming Assistance

See Programming resources.

We do not accept outside code contributions.

Why

Early in our history, we did accept some outside code submissions. We only accepted these changes and enhancements from developers who had experience with Open Dental, who were clearly skilled programmers, and who we could trust. But in spite of their very best intentions, the quality was just not good enough.

Coding Styles: We have very complex coding styles and patterns which must be followed. It takes years to learn these patterns, most of which are undocumented. We simply don't have time to train outside programmers on all our coding patterns and styles. There's a maxim in programming that it's easier to write your own code from scratch than it is to try to understand and adapt what someone else wrote.

Physical Presence: Creative projects require physical face-to-face interaction. Without that interaction, quality goes down. Physical interaction is a very important part of how we put out quality software.

Training Time: It takes us many years to train each new programmer we hire. A new programmer starts with repetitive patterns and gradually gets exposure to more and more of our patterns. Even working full-time, there is a long transition period before they are allowed to start writing more interesting code. No outside programmer has ever gone through this training process with us. It also costs us valuable resources to train each new programmer. We are not willing to expend those resources on anyone but our staff.

Pet Features: Outside programmers always want to add their own "pet features". These are features that others would not find useful. They nearly always have hard-coded options and add clutter. We prefer to add features in an order that takes into account long-term consequences. We add features that are customizable. In contrast, pet features interfere with future flexibility.

Bugs: Our programmers have had experience fixing hundreds or thousands of bugs. This helps them know how to write bug free code. An outside programmer may be very skilled at general programming, but they are still more likely to write buggy software.

Experience with Customers: Our programmers are constantly helping real customers. This gives them experience that outside programmers will never have. This deep expertise is critical to writing useful code.

In short, we have tried accepting outside submissions in the past. Without fail, it was eventually determined that all such code was buggy, did not follow our patterns, was not tight enough, was not flexible enough, wasted our time, was not useful, and so on. We have very high standards for the quality of our software. We won't compromise on quality, so we now have a firm policy of not accepting assistance from any outside programmers.

Other Options

Even though we don't allow code submissions, there is a lot that a programmer can do to customize Open Dental.

API: This is the only way of interacting with Open Dental for any action that requires a write to the database. Direct writes to the database are never allowed other than by going through the API. See API Specification.

Reports: The database schema is well documented (see the xml files at the top of Programming Resources). We include over 600 Query Examples, but you can write your own queries to extract as much rich data as you want. You could build dashboards, graphical reports, hook up to business intelligence products, etc.

Program Links: You can use Program Links to launch other programs like Outlook, Word, imaging, or your own program, passing command line parameters to the other program.

Plug-ins: Plug-ins were an old way of adding functionality with custom dlls. We are shutting down plug-ins as much as possible, and developers should use the API instead.