I’m currently in a massive ‘organization’ mode…which, when I think about it, is a phase I go through every few months really.
Even when I was a kid, every few months I would get the urge to de-clutter, re-organize, and re-arrange everything in my room. And in fact, I still do this with my 'guy space’ (my wife does not appreciate my re-arranging of the furniture throughout the rest of the house – so I limit most of it to only my little spot of the basement [and sometimes my kids rooms when I can convince them that changing around the setup would be 'cool’]).
Programming-wise, every so often, I make sure to take a step back from anything/everything I’m building and I do a full code cleanup.
I got file-by-file, and line-by-line through thousands of lines of code to make sure that things are formatted and documented in whatever my preferred style is at that time. I also move files in or out of folders to more directly map to my 'organization thoughts’ of the moment.
It probably sounds daunting, but generally it’s not that much work as I do it every few months…and since this process itself forces most of the code to be standard across all my projects (and I’m very anal about the formatting of my code anyway), it becomes a pretty simple set of instructions/steps that I need to go through for a given set up of updates.
In the current go-around, I’m porting a lot of my code to support the 3.0 version of Twitter Bootstrap - and I’m adding in some more granular folder structures to my views.
I’m also finally pushing all of my 'notes’ and 'to-do’ lists into trello and away from paper (you wouldn’t believe the number of notebooks and lists of random things I have stacked near my home desk).
I’ve tried to push towards an online system a few times before, and it never seems to completely stick…but I remain optimistic as I know when it finally clicks it will be way more efficient and effective (especially when I’m working with others on various projects – which I am making a much more concerned effort to do these days).
Beyond just being soothing to my OCD traits - this 'organization’ work also really helps to make it very quick and easy for me to switch focus between projects as needed (something, if you’ve been following me at all you’ve prob. noticed, I do a lot).
It also helps to make the code very plug-and-play portable from any one of my given projects to another (so I can then just focus on what I have to tweak for a given project).
And it gives me a chance to revisit some coding and organization decisions - now with some distance from the action - and recognize/fix the gaps.
So - it can seem like a bit of busy work - but really it has a lot of very valuable side-effects and has always turned out to be time well spent.
This post has received 47 loves.
Kevin has a day job as CTO of Veritonic and is spending nights & weekends hacking on Share Game Tape. You can also check out some of his open source code on GitHub or connect with him on Twitter @falicon or via email at kevin at falicon.com.
If you have comments, thoughts, or want to respond to something you see here I would encourage you to respond via a post on your own blog (and then let me know about the link via one of the routes mentioned above).