As I come to the summit of a large project, I've been reflecting on a few errors in thinking I made along the way. I was in a time crunch and finishing the project became the sole goal in my head. Being so focused on the end goal, I lost the plot a bit stopped being thoughtful about my decisions, prattling on through tasks and compounding decision upon decision.
If there's one thing I could take away from what happened, it'd be that before I dive into solving the problem at hand, I'd think first about how I can tackle the problem, how it can affect all the other moving parts of the project, and only then move forward with implementation.
For example, I've written a tonne of CSS in the OOCSS flavour. When I look at my code structure, I see many classes that are tied to others, breaking the single responsibility principal, which states that every class should have one responsibility and doesn't need to know about anything in the other classes. I've broken that guideline numerous places, leading to fragile code. Future changes could mean making modifications in numerous files instead of the one or two places where they could have been.
Note to self: Don't throw away personal guidelines to finish a project quickly. Make thoughtful decisions so it doesn't bite you later.