One other area not touched upon that makes code easier to read is: "When you update code, make sure you do not leave code that is no longer relevent." For example JT used:
IF v_data_type_cd = 'STRING' THEN
v_return_dt := NULL;
ELSIF v_data_type_cd = 'DATE' THEN
v_return_dt := v_value_dt;
ELSIF v_data_type_cd = 'NUMBER' THEN
v_return_dt := NULL;
ELSE
v_return_dt := NULL;
END IF;
instead of
IF v_data_type_cd = 'DATE' THEN
v_return_dt := v_value_dt;
ELSE
v_return_dt := NULL;
END IF;
If I had to guess, the original function (or its original intent) returned information about NUMBER and STRING data types. But I cannot just "guess" when working on code so I need to double check the code to see if I am missing something, which wastes valuable time.