Keeping your developer castle organized
A little bit about how I work.
There are a few important things I do while working on any project.
- I document design and development decisions in my personal customized wiki.
- I work with source control and a server-based, centralized location for assets.
- I spend the late afternoon organizing & cleaning my area. I also evaluate my assets.
- Wunderlist & Slack & Yammer.
My Wiki. Documentation for all.
This is something that I have really spent a lot of good time working on. I am a macOS devotee. I could have used it’s built-in wiki (which is okay), but I needed something I could truly customize. A wiki that makes available extensions from other developers.
For this, I used Dokuwiki. It’s pretty amazing, is actively being developed, is easy to customize, is free, doesn’t require a database, and is fast. Trust me when I say default wiki templates look boring as hell. The one I have looks a little like Apple and it makes working in it every day more fun. I have spent a lot of time under it’s hood to get things the way I like it. Extensions. My own custom code and CSS. It all adds up to a wiki that doesn’t feel like one.
My wiki is backed up (the changes made) every weekday at 6:00 PM with a CRON job to an external hard drive. I even get a nice email when completed.
Every project gets it’s own page. Each page follows a nice template. I document important decisions, conversations, milestones, problems, solutions, thoughts, ideas, etc. The wiki can be searched as well. As projects come and are completed, it’s nice to be able to go back and read all about them. More importantly, others can easily do the same. With a quick email of a link, I can direct attention to these things too. They can also be printed to PDF in macOS.
A wiki can be a great tool. They are easy to get into quickly and make edits. Others can make edits too. Wikis rock. They let you express yourself freely and also present an organized, clean look to those in other departments. We have Microsoft wiki stuff at work, but it sucks. MacOS server has a wiki too – and it sucks almost as much. Mine is pretty awesome.
Source control & organized assets.
When I am working with Xcode or Android Studio projects, I’ll make sure I check the projects into source control. This allows others to play in the same ocean without fear of messing something up too badly. It keeps things organized and in sync between anyone involved. Obviously I’ll do this if I’m the only developer working on it because I might screw something up and a quick revert will set the ship aright again.
All of my go-to assets (AI, PSD, Sketch, icons, etc.) go in one centralized location. I add that to my macOS Finder sidebar. The location is on a shared work server that gets backed up twice a day. Easier to find assets and files make tasks go by more quickly. I’ll have to catch myself at times at my Downloads folder & move things to the server. It’s a pain sometimes, but after doing so I know it will be worth the effort.
The fact that the data is being backed up regularly under work IT is very nice. I also don’t need to worry about file sizes or how much room I have left on my laptop. I have a ton of space. Which means macOS runs smoother too. My desktop… that always needs addressing as I try to keep that nice and clean too. Desktop Curtain can ease a troubled mind. It’s a very nice piece of software you can run to hide your desktop in a pinch.
NOTE: I have an Apple TV at my desk, and the screensaver matches that on my laptop. I go to Aerial for this. You can view what’s available right here. When the TV and my monitors and laptop are all playing related video – it’s pretty sublime. That makes me feel a little more organized too. Or at least it shows others that I am.
Before I leave for the day, I’ll make sure my Apple TV isn’t running. I’ll gather together anything I’ve printed out for the day – and if it’s a stretch to need again I’ll throw them in the recycling bin. My monitors will run the Apple TV screensavers. I’ll put pens away, notebooks away, blow out any dust bunnies in the corners of anything, and generally tidy things up.
I do this because I like to walk into a clean office every day. Before walking into my building there is almost always something that I’m dying to get to. I’ll think about it while driving to work. Less clutter means accelerated work for me, especially in the morning. I’ll get 75% of my work done for the day in the first couple hours. It’s just how I groove. Anything that slows me down in the morning is wasted time. The way I work, it’s even more important.
I’ll also weed through assets and recategorize them if needed. Or throw duplicates out. I still have a lot of ancient Actionscript files laying around. I want to kill all that, but since storage isn’t an issue – I hesitate there. I don’t do this every day, but I try to get to it after a few days of accumulation.
Invariably someone will ask about a project that I worked on a couple years ago. I can dive into the assets if I need, or I can go to it’s wiki page and see where I put things, check links, etc.
Wunderlist & Slack & Yammer.
I am not always at my desk, so when an idea comes to mind or I think about how to attempt to fix a bug, I open Wunderlist on my iPhone and log it. I may log things on the desktop version as well. I currently don’t share lists with anyone – it’s all mine. But you don’t want to lose something when it hits, and I don’t carry a notebook around with me all the time. In fact, almost never. Everything syncs well across all my devices that run Wunderlist. I usually have the client running on my desktop and it gets it’s own desktop I can swipe over to using my Magic Mouse.
I LOVE Moleskine notebooks, dot-pattern books, cool pens, etc. But I don’t use them a whole lot. Maybe in meetings if a lot of people are involved and I need to write a lot of things down quickly. But almost all of the time it’s digital cataloging.
Since I can give deadlines to things, I get notifications to remind me about important tasks.
Slack. It’s a pretty nice tool. Running it on my desktop & phone. I get notifications well enough, it’s easy to create new channels, and it helps keep communication open and documented. I’ve tried Microsoft Teams – and I dislike the UI. It can access documents, your calendar, a crap wiki, etc. If they improve the user experience, I would consider moving to it. For now, Slack occupies my efforts in non-email communication with team members.
Yammer. Yammer is cool. It’s like Facebook for our business. Lots of groups I can follow or create, and the link processing and user interface is quite nice. Funny – it’s owned by Microsoft. They should slap in support for calendar & documents and I think they would have an even better product. Yammer helps to streamline mind-flow.