My current day job is mostly project management and client liaison work, but I sometimes get involved in actual coding. I do this either because I have a clear vision of what I want the result to look like (and it's easier to implement than to explain it), because I have relevant expertise, or simply to add resources.
But I'm finding a couple of recurrent issues:
- The startup time to being productive can be prohibitive. Installing development tools, getting access to relevant systems, source code etc, and simply getting to the point of a first complete build.
- The overhead of working on a fast-moving codebase can be prohibitive. It's not unusual on one of my projects to have to completely rebuild the environment (that is, check out and build all the code again, including creating a new local database, populating it etc) every month or so.
- Worst of all, if I stop doing any coding for more than about 2 weeks, I completely lose all my mental "state": I don't remember where things are installed, I don't remember which of several working directories is "the right one", I don't remember how to resolve an error message I've seen several times in the past. (I suspect my mental state attrition is much faster than average.)
I would really appreciate tips from anyone else in this situation. So far, I've worked out this much:
- Only code in solid blocks of time - minimum 2 days. I can't get anything done at all in a few hours at a time.
- Document, document, document. Keep spreadsheets that store state as much as possible. If there are several systems where code is deployed, record all key directories, port numbers, user names, database names etc etc.