DDS Approach |
|
|
|
|
When I am retained to design a system, there are only 2 things that drive my decisions: your return on investment ("ROI") and your ability to continue to use the system for as long as possible. I see little benefit in spending thousands of dollars on a system that will not receive enough through put to return your investment in a short period of time. Similarly, I don't see any point to using a document assembly program if you aren't going to embed your logic and decision processes into it. That's just my personal take on the technology. I don't develop systems that require my intervention to update routine details, such as a letter or fax, or staff list either. Any common use items (staff, common correspondence, parties and players, etc) are centralised to make it easy and simple to make updates and amendments. My aim is to provide you with a system that you can maintain with minimal (if any) assistance and that will continue to produce ROI. While this generally costs a little more up front, the approach saves thousands of dollars in maintenance and your time within a short time frame. Much like any software investment, initial purchase isn't the 'real cost' - ongoing support, maintenance and upgrades are. In my opinion, a well designed and programmed document assembly system should generate 100% ROI within a 3-6 month period. The exception to this rules are systems that are designed to be very simple, and are undertaken purely as a quality control mechanism. Typically, there is little profit in these systems, as a client is not seeking profit, they are seeking to have all their documents produced with a consistent look and feel. All my systems come with the original "blueprint", which is a filterable, sortable, searchable spreadsheet of all variables, dialogs and other programming "pieces" in your system. This blue print is designed and finalised before I code a single thing in HotDocs - I don't believe you can build a system well until you've mapped out everything it needs to do first. So you need never be concerned about whether our design and structure will leave you "beholden" to me. I use a structured naming convention to openly write code so that it is as readable and logical as possible. You will have the complete blueprint for any system I produce, so that with a little training, you can maintain your own system should you require, or hand it to another HotDocs developer. I just dont believe in coding practices that are unclear or require a "cipher decoder" to read them. I believe that any custom-built software should include some kind of road-map as part of the deliverable, as I have been the "receiving consultant" who has to pick up a system with zero documentation. When this happens, it costs a large number of hours before I can even start work. Its not a good result for the client. Programming ApproachThere are four major items that I believe set my works apart from the works of most "document assembly developers" I have seen:
As an odd side comment, english is the "odd one out" when it comes to languages generally. In most other languages, "I love you" is "You, I love" - you state the noun you're talking about ("you"), then attach the verb/adjective ("love"). My coding approach is similar; instead of "First Name" its "Name, First". Unfortunately, it is counter-intuitive initially to a native-english speaker. And this all means...?This approach avoids many errors and omissions common in document assembly programming. It almost completely avoids re-writing code because of something "new" that pops up (whether in a later template or a new client requirement). It also results in a much quicker and concise system, as there is no "clutter" - every item created has a documented and annotated use, which can quickly be found in my blueprint. If you wish to change something minor, you can quickly look at the blueprint and see what is dependant upon the item you wish to change. No more changing a single variable and then spending hours of time tracking down what went wrong. No more attempting to decipher the system you were supplied with, or figuring out exaclty what F1928 does in your documents. Personally, I think it is just common sense - review, plan then code, but only once you know everything you need to code for! For more information, check out the Document Assembly Developer section, where I provide guidelines and approaches to document assembly developers. |