The Uses of Virtualization in Software Engineering

Are you looking to find out how virtualization (server virtualization, like that offered by VMware, Citrix and Microsoft) can help your software engineering process? Lets look at various stages in the software development process (regardless of the software engineering methodlogy – waterfall/agile/… that you use). By the way, this was

Uses of virtualization spread across the entire ALM cycle

Uses of virtualization spread across the entire ALM cycle

something I wanted to post about and incidentally I also found a recent question about this raised on StackOverFlow.

Do take a look at this list below and let me know use cases that I am missing.

  1. Requirements gathering and Definition
    • Use virtualization during your rapid prototyping and proof of concept (POC) development. Rapidly build up machine configurations, deploy your ‘Hello World’ app and test out the POC.
  2. Design and Development
    • Easily create environments for intermediate (work in progress) demos to customers and management
    • Provide a consistent environment to all your developers
    • Unit test your code on various target OS systems easily
    • Some development organizations may use VDI to ease the management of developers’ desktops
    • Snapshot and save your developers’ environments – easy back up and recovery in case of machine failures
  3. Software Testing
  4. Software Build and Release Management
    • Get virtual machine build farm environments on the fly and on demand. Various virtual lab automation solutions like VMLogix LabManager offer integrations with build tools like IBM Rational Build Forge. Read more about VLA integrations over here. Read more about the Build Forge integration over here.
    • Save your build environments so you can easily revert back to the build configuration of an older version of the software. This is particularly useful during patch releases (I found this use as one of the comments in StackOverFlow).
  5. Source and Version Control
    • Maintain your source control systems on a virtual machine. Use the snapshot and save features to capture (backup) your source control systems easily. Revert back to the last known state in case of machine failures etc.
  6. Software Maintenance
    • Leverage virtual lab management solutions to support your various customers using the software. Easily replicate customer scenarios and reproduce the defects in the software. Share the environment with the developers. This may be useful related reading about the various users of VLA software.
  7. Software Staging and Deployment
    • Products like VMware Stage Manager and VMLogix StageManager help users manage multi-machine configurations in the pre-production staging and system readiness. These management products over the virtualization platforms help users collaborate in a workflow during the staging process and eliminates the risk of service deployment/upgrades to a large extent.
  8. Software Trials and Evaluations
    • Virtualization can help by making software trials and evaluations simpler. Software can be packaged as an appliance and users can immediately evaluate the software features rather than going through the challenges during installation, setup, configuration etc. This is a post that talks about virtual lab automation in software trials and evaluation.

– Srihari Palangala
Bookmark and Share


One Response to The Uses of Virtualization in Software Engineering

  1. […] and VMware Over the past several months, we’ve talked and written quite a bit about the use of virtualization in software engineering. If you are new to this blog, you might consider reading this summary […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: