Skip to main content

Clean Up

The final stage in a feature's lifecycle is deprecation and removal from the codebase. As anyone who's worked in a company that does a lot of optimization knows, this is an extremely important step. Neglecting to clean up your technical debt can cause it to pile up and turn your code into a big mess of spaghetti. It will be hard to read, and become a large drain on developer productivity.

Fortunately, Causal makes removing obsolete code easy. When you commit your FDL file to your revision control system. Causal updates the tools that product managers and other non-technical users can see. Using these, they have unprecedented visibility into the code-base.


One of Causal's tools is Code Review. It will list out all the components of each feature, and allow a non technical user deprecate portions that are no longer needed. Stakeholders that determine whether or not to keep a particular feature in place no longer need access (or the skill to read) the code.

Causal's Code Review page

When something is marked deprecated, that portion of the front end API will be marked as such and engineers will be able to see it in the IDE:

IDE deprecation message

Information on who deprecated the item, why, and what it should be replaced with is compiled into the API's documentation string. There's no need to create a JIRA ticket or write anything else up. Causal puts all the information needed by the engineer right where they need it.


When an engineer wants to remove a piece of deprecated feature code, they just delete it from the FDL file. The compiler will regenerate the API and warn the engineer if they forgot to remove any obsolete code.

Once that code is checked in, the table columns associated with the removed tracking are no longer meaningful. Fortunately, when you commit your FDL code to an environment's branch, the views into that environment's tables will automatically drop the obsolete columns.1 This eliminates a huge source of confusion for analysts looking at the feature table. With Causal, they can be sure that all the data in the table is accurate, up-to-date, and maintained.

  1. The data is still on disk. If you'd like to go back to an older version of the data warehouse to view historical (but obsolete) data just check out the corresponding version of the FDL file from your revision control system. You can run causalc --hive to regenerate that old view into a temporary database.