Friday, August 13, 2010

What's in my software development toolbox 2010

I think it might be helpful to describe my day-to-day working environment to give context to my writings. Like many people, my development process changes to suit my needs. However, drastic changes are few and far between and my current setup has largely been set for several years. I actually have two of these setups: one at work and one at home. This means I use this rig both for work (i.e., software development) and for play (photos, movies, recording music). Although work and play overlap in this configuration, I'll only describe how I use it for work.

At its core, my workstation consists of an iMac 24" and an external 24" monitor. I maintain four "Spaces" (virtual desktops). Of these four spaces I use three regularly.

In the first Space is my communication and todo lists. I use a "Getting Things Done" process so email and other requests go into OmniFocus, iCal, and Evernote fairly often. These automatically synchronize with my iPhone and iPad.

In the second Space is my coding. Eclipse (integrated development environment), MySQL (database), and several terminal windows. I run Safari to see the web application, Trac (issue tracking) database, and API documentation.

In the third Space is production. Elasticfox (Amazon EC2 instances), production admin pages, MySQL (database). I run release builds here.

I use the fourth Space (not pictured) when needed. Sometimes I display Hudson (continuous integration build server). Sometimes I use it for documentation. Sometimes the staging environment. Whatever doesn't naturally fit in the other Spaces.

I would be remiss to lead you to believe all development happens at my workstation. Software engineering is much more than coding. Designing software includes brainstorming with coworkers, thinking, and drawing on yellow pads and whiteboards (at least for me). While I spend a lot of time at my workstation, I couldn't do my job properly if it was the only place I spent my time.

Follow me on Twitter @jsjacobAtWork

No comments:

Post a Comment