Step 1) Bemoan how {OldSoftwarePackage} doesn't do X, Y, Z
Step 2) Write {NewSoftwarePackage} that does most of what {OldSoftwarePackage} did + X
Step 3) Spend an order of magnitude more time than expected finishing Y, which turns out to actually be rather hard because {Messy Real World Engineering Details}
Step 4) Never get to Z & eventually come up with a narrative about how Z was stupid anyway
Step 2) Write {NewSoftwarePackage} that does most of what {OldSoftwarePackage} did + X
Step 3) Spend an order of magnitude more time than expected finishing Y, which turns out to actually be rather hard because {Messy Real World Engineering Details}
Step 4) Never get to Z & eventually come up with a narrative about how Z was stupid anyway