How Do You Start a New Job?
Today is my first official day at Broadchoice, though I've been on the development list server and conference calls for a while. I thought I'd blog quickly about how I'm getting settled and see if others have their own ideas or processes that they go through for starting a new job.
- Read up: Broadchoice has a pretty nice Intranet that contains a lot of information. So all the fun stuff like personnel forms, health insurance, tax forms (whee) and all the rest. Ahh, first day paperwork! I think the only other time I've signed so many forms is closing on a house. :-)
- Local development: New work means a new Eclipse workspace and new Apache virtual hosts. As a new Apache convert from IIS, the one thing that I miss is the nice management console that IIS provides. The first thing I did when moving to Apache was to write a script that would automatically create new virtual hosts for me. So by filling out a short form, I add a new virtual host to my Apache config, update my hosts file, and optionally create a new Eclipse workspace by copying a default workspace.
- Source code: If good developers are at least part artist, then source code is our clay. Like any modern development shop, Broadchoice uses source code control extensively. In our case, it's Subversion. That means hooking up to the SVN server and pulling down working copies of the relevant code.
- Tasks: Broadchoice uses Trac to manage tasks and tickets. However, like many people I think the Trac web interface leaves a lot to be desired. Luckily, we have the Mylyn plugin for Eclipse. This great add-on lets me connect to the Trac repository from within Eclipse and manage tickets. It's great to be able to do this without leaving the IDE. It gives you little message alerts when new tickets come in, and lets you create custom queries for Tasks. So, for example, all tickets assigned to me. Or all tickets associated with a specific release number. It also offers "context" which lets you activate a ticket and then it keeps track of what files you've used while working on that ticket. Any time you go back to that task, the IDE hides everything unrelated and just shows the files that relate to that task. This is really great when you have to jump between tasks since you don't have to think about what you need to open.
- Organization: I'm fairly anal about how I organize stuff on my computer. That means folders, usually lots of them! I've found that being a bit meticulous about setting things up makes life a lot easier later. In the past I might just create a "broadchoice" folder for documents, and dump everything in there. Later, when there are 100 files in there, I end up regretting my lack of organization. So I try to segment things off at least somewhat: corporate, employment, expenses, projects, etc. It's no extra work to drag a file into the right folder, but it makes things much easier to deal with in the future.
- Communication: With a number of remote developers, communication is key. The development team makes a big effort to be reachable in a variety of ways. Email is an obvious one. Instant messaging is another. We also use Adobe Connect on occasion, Skype for quick conversations, and of course the good old Phone when necessary. Everyone has an iPhone, which was pretty smart on the part of management. Being geeks, everyone almost always has their iPhone with them, which means email, phone calls, and SMS are almost guaranteed to be seen and answered quickly.
- Mindset: Starting a new job can be somewhat daunting. You're jumping into something totally new, working on things that may be completely foreign, and maintaining code that others wrote. For many, this may be scary. But I love it. The chance to break new ground and do new things is extremely exciting to me. Working with a team like this means there isn't room for shortcuts or half-measures. When you know the code you write will be scrutinized by people like Sean, you set the bar for yourself pretty high!
I think I've hit on most of the major things I've done in preparation for starting here at Broadchoice. Anyone have other tips or advice?


Congrats on the new job, Brian. Kick some ass.
When ever I am working on some cf code I always think HWSC (How Would Sean Code) keeps me from making old fashioned procedural short cuts I would have used in the past.
Having great code review and lots of help is one of the best things about working at Broadchoice.
Care to share that virtual host script?
btw congratulations with the new job.
larry
A new developer just adds an install-myname target with the appropriate property values and then runs: sudo ant install-myname
We try to automate things as much as possible (but we're always trying to improve).
What I could simply do is add: "By X" to the entry in the RSS field. I don't think I'd put that in the core BlogCFC though as most blogs have a single author.