Starbucks-fueled Developer

Monday, August 15, 2005

Virtual [Agile] Developer

I stated earlier that, in July, I was planning a presentation on Virtual PC and Virtual Server. Overall, it was really a hit and miss. One coworker/higher-up asked about how my group (AppDev) could possibly work with our networking and server-consolidation offerings to provide "packaged"(?) solutions, which wasn't really my intent, but hey, if it pays the bills...

Actually, what I was hoping to drive home was how those products could enable our team to develop better software. We do a lot of, well, immature things as a team: Load beta software on servers that customers are using, not to mention the rest of the team - things like that.

Those kind of "mistakes" just make your job more difficult. When you need to deploy the latest "build" (because, sigh, we don't do automated builds..."small moves...small moves"...) to the staging server, it's a chore because you never know if it's gonna take because the machine has so much crap on it, it's unreliable and almost unusable.

Here's a thought: what if, when the automated build, that we don't have, runs after we check code in, automatically created a new instance of an already, preconfigured, sysprep'd virtual machine that the build could be deployed to? OK, that's pretty cool. Now, how many acceptance testers do you have? OK, got that number? Make that many machines. Now your testers can test - reliably - in an isolated and constrained environment consistantly everytime you deploy the software. They could even have their own instance of the database(s) running on those machines so that they aren't trampling over each others feet. Uh oh! They found a bug?! How about saving the machine state,copying it to your machine, attaching it to your local instance of Virtual PC, restoring it in the condition the user left it and attaching VS.NET to the process to debug it?

And oh yeah, did you know that Virtual Server is managed via a web site? Oh, and that you can connect to machines using that web site?

You know...that's insane. It probably would just save so much time it's not worth talking about any more...

NB: I tried the whole remote debugging a virtual machine with an ASP.NET app. It didn't go so smoothly. I'm sure others have tried and met similar fates. I imagine that a WinForms or console apps would produce better results since you won't have to contend with IIS owning the process and everything. It is doable though...

0 Comments:

Post a Comment

<< Home