Generative Programming

ByDesign uses various forms of what is known as “dynamic code template generation,” or “generative programming.” This practice is a form of technology that automatically creates source code from templates and prototypes. Generative programming helps development productivity which enables products to be released quicker. It also provides higher quality programming as any issues can be corrected one time in the code template perfecting future code.

One area that we at ByDesign use generative programming is to generate the majority of Back Office 2 CRUDs. A CRUD is a common acronym used by development to represent an interface to “Create,” “Read,” “Update,” and “Delete” records from a table. A CRUD would include pages such as the AutoShip Rules or Inventory Control Limit Interfaces. While some more complicated pages cannot use generative programming due to specific rules and configuration, the majority of our CRUDs are programmed utilizing this technology. Does this mean we have pages that are created automatically and pushed out to clients or pages that are bypassing our standard checks and balances? Certainly not; let’s get a little more in-depth on how this practice works for us.

Like all development tasks, our CRUDs start with a requirements document. This document contains information for the new pages such as the new URL, helper text, where to place the menu, the capabilities (Create, Read, Edit, Delete) and the list of properties (Dropdowns, checkboxes, etc.). These are written in an excel file, where each item is placed in a specific column or tab of the file. This format makes it possible for a machine to read and parse the information required to build the page. We then have a special program that reads each tab of this excel document and creates the multiple files of code necessary to create the new interface. This program writes out files based on predefined code templates and automatically uploads them to the proper location to be compiled and tested. There are still pieces that must be manually programmed, but 95% of the page is automatically created based on the excel file. This 95% represents the busy-work that no developer wants to get stuck doing.

Once initial development is done, this new page needs to go through the same quality checks and balances as any other project. We still have developer peer reviews and quality assurance testing, as well as testing by the project owner. Additionally, these changes (and any other changes) go through our monthly release testing before going into the production environment. Therefore, these pages go through the same testing and validation process as any other project, yet we can cut down many hours from the development time. This, allows us to pass cost savings onto our clients for custom work when we can leverage Generative programming.

Leave a Comment

Scroll to Top