Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I get a new laptop, it usually takes me about two weeks to reinstall all my developer programs, utilities and tweak the O/S settings to how I like them.

I know there are utilities out there to backup/restore systems, but this is usually if it is on the same hardware.

What would you recommend?

share|improve this question
I view getting a new setup as a form of rebirth. Its an opportunity to set my system up differently and stops me getting in a rut. If I don't get round to reinstalling it or resetting it, its obviously not that essential. – Mongus Pong Sep 20 '10 at 15:44

Over the years I've come to this set of habits, which works well for me:

  1. I stopped customizing so much. Before I used to tweak my desktop and Windows settings greatly. After a while I realized I grew dependent on these tweaks, and would get uncomfortable when working at a co-workers PC, on family members' PCs etc. Now I keep it down to just a few must-have changes, and generally keep my Windows and less important tools at default settings.

  2. I use multiple PCs, each dedicated to specific tasks. My work PC is a laptop, which I keep 'clean' for lack of a better word -- no private stuff, almost no games/multimedia/accessories, just my primary work tools. As such it rarely (actually, almost never) breaks, and I spend often keep the same Windows installation until it's time to replace the hardware (2-3 years). My home gaming PC on the other hand gets reinstalled far more frequently. But I don't care, it is easy to just reinstall and allow Steam to redownload all my games.

  3. Optional, use full-disk backup with system state. Actually I'm thinking about quitting this habit, because I haven't had to reload a system backup in ~3 years. But in the olden day Acronis Trueimage saved me a few times, by allowing me to just overwrite my full Windows + applications state with a known working backup. The built-in Windows Vista / 7 backup tool can AFAIK do something similar.

  4. Embrace Virtualization. I do all testing of new software in a VM, and I keep 'invasive' software (mostly enterprise server software) contained in VMs. I have my VMs on a external USB2 2.5" HDD; it's not the fastest but it works for me.

share|improve this answer
The first point is seriously challenging - I appreciate why and I've run into people who do the same and the problem is that you see them being less productive. My view is that you have to develop a flexible mindset - if you're not on your own machine then yes, absolutely, you have to be competent with the default toolset (and not be stressed about losing your tools) but as often as not a colleagues box is liable to be tweaked to their preferences so unless you insist that everyone runs vanilla setups you're not necessarily going to benefit (and vanilla all round would probably be bad!) – Murph Sep 20 '10 at 8:04
@Murph : Challenging, yes. Less productive after the transition, not at all. It's just a different set of keyboard shortcuts and habits to commit to memory. Note that I said less customization of the OS and less intesively used tools -- I'm still in favor of customizing Visual Studio, Eclipse etc. – Jesper Mortensen Sep 20 '10 at 15:32
+1, especially for points #1 and #4. Some customization is good, but the productivity gains most "tweakers" seek to gain are greatly outweighed by a "defaulters" flexibility and ability to stay on task in the face of change ("the new virus scanner software broke my 3rd party Windows Explorer replacement.. AGAIN!") . In my experience I've found that a majority of customizations are really just some user trying to do some thing in some old way, or is an outright refusal to accept an equally good but different method. ("I'll NEVER put my music in the My Music folder!") – Kevin McCormick Jan 5 '12 at 18:24

Portable external disc (the regular spinning kind) with images of all your software on it, along with an image mounting program. All except the OS of course. Really speeds up the installation on a new system compared to the time when installing from CD/DVDs.

Put all your settings files in one place - for me it's "user-home" directory on C drive. Also, all portable software goes in there (in general, all software which can be easily copied). So that leaves only the installable programs. Before reinstalling get a screen shot of your Start menu (as stupid as it sounds - it works - you'll always forget to reinstall something, and it's a pain discovering it when you need it and haven't got the installation media near) and go from top to bottom.

Don't know what else to say ... could you be more specific with your question?

share|improve this answer
Short of listing out everything I use, and how to copy the settings/preferences for each app... not really.. – Talvi Watia Sep 20 '10 at 2:33
+1 for the screenshot, but i generally take mine from the add/remove programs screen. – Ahmad Sep 23 '10 at 5:56

That is way longer than it should take. How much time are you devoting to it? How much do you keep up with the progress bars?

If you have another computer, you can use it to check the progress of your dev system. Once you've installed your OS, immediately install network drivers, then VPN/VNC software like UltraVNC or Windows Remote Desktop. Then just login to the machine and install everything remotely. All you have to do is alt-tab, see where the progress bar is, then alt-tab back to your work.

If you get a laptop, why not just put it right next to you? Easy.

For settings, just backup the %appdata% folder on Windows or your entire home directory in Linux. This should get most of your settings.

For theme, just save the theme file in Windows or backup your theme according to your DE in Linux.

For me, it takes about a full day with Windows, and a day or two with Linux. 2 weeks is an excessive amount to be spending on reinstalling an OS.

share|improve this answer
Its two weeks, because I don't have a definitive list of everything I use, or need to hunt down the CD, or don't have time always to go through the entire process in one sit. Oh yes, not to mention syncing up all my logins, and project files. – Talvi Watia Sep 20 '10 at 2:30
@Talvi Watia - Well, don't this as "wise", but why don't you make all those things then (make a list, collect all the CD's and so on) before starting? It isn't strange it takes that long if you can't find the CD. But in which case nobody can help with advice (save of "look in the closet, on the top shelf) ... the rest (syncing & co.) can all be dealt with in one afternoon. – Rook Sep 20 '10 at 3:09

I'm a huge fan of VMs (virtual machines) when it comes to development environments. The benefit of virtual machines is that you have a portable, machine independent snapshot of your environment. If you wind up working on team with other developers, cloning the VM is a snap.

share|improve this answer

You don't mention what OS you're using, so I'd like to mention that this is another argument in favor of MacOS as a development platform -- Apple's migration assistant makes it very easy to move all user accounts/customizations/installed apps to a new system at install time.

Beyond that, I'd second some of the points others have made here:

  • If it ain't broke, don't customize it -- this may be the sysadmin and past consultant in me speaking (when you have to go around to many clients' systems, you quickly learn that a little time spent on getting acclimated to the default way of doing things can be a lot better use of time than trying to carry your customizations everywhere you go).

  • If it is broke, customize it in a repeatable way. For MacOS, this means using a system like homebrew or macports to install software, so you can run the same command on each box. For Unix, this means using the native package manager on your system (yum, apt-get, etc). For Windows, this means keeping installers around so you can re-run them later.

  • Share, share, share -- if you have files you'll need all over the place, use something like Dropbox, a local wiki install, or one of the many sync products out there to keep them available wherever you are (the usual caveats about trusting data to third parties apply, though -- be mindful of what you are and aren't willing to put on a service like Dropbox).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.