As I’ve grown older I’ve become obsessive about my development environment and it’s state of readiness. A few months ago Cynth laughed at me because I said I couldn’t get to work yet (it was 8 am) because I had left my headphones in the car and my coffee was still brewing. I told her I hadn’t setup my mise en place yet.
It’s not that I’m a prima donna (or at least I hope not). I’ve just learned over the years that starting a project (or starting the day) without having everything “put in place” can lead to huge gulfs of waisted time. The coffee and headphones were a joke (just barely though!) However some stuff absolutely has to just be there and working properly. Usually this is in the form of “tools” or the “environment”.
The following is my development mis en place on a Windows development box
The obvious stuff:
- A recent stable Netbeans IDE with at least Java and PHP
- Visual Studio 2008 (with at least C# and VB of course)
- SQL Server Management Studio (hopefully not express)
- MySQL Tools: (I prefer to have both MySQL Workbench and sqlYog available)
The nice to have stuff:
- A decent image editor. (I prefer having both Photoshop and Fireworks available.)
- Fiddler for troubleshooting anything that communicates over http
- WinMerge for those times you have to work with another developer that is too “busy” for source control.
- Firefox+Firebug and Google Chrome
The stuff that saves epic amounts of time:
- VirtualBox running the closest clone of a production environment I can simulate. (Usually for me this is latest Fedora, latest CentOS, Windows Server 2005 or 2008) I do sacrifice some things for comfort here. I always use a shared folder for development and I forward all Apache, IIS, SQL and MySQL ports to the host machine through guest extensions.)
- VirtualBox with a version of Windows XP SP2 for testing compatibility with IE7 (not 6, let 6 die) or for testing C# desktop installations in earlier versions of .net when necessary).
- A decent Subversion client (I really like Netbean’s SVN plugin although it is pretty basic)
- Various SDKs (I usually have at least the android, air and flex sdks available)
- winMTR (is the downtime caused by them or us?)
- FileZilla Client
Want to share yours, have suggestions, criticism or questions? Leave a comment.