Are You Getting Everything You Need from Your Infrastructure?
The goal of agile development is to shift from a long and inflexible development process to a shorter, more collaborative process that enables the more-frequent shipping of software. To be truly successful, agile development teams need the following from their development and test lab infrastructure:
Self-service provisioning and on-demand scalability
Software development teams need to be able to create, change, deploy, copy, re-create, delete, and change development and test lab environments on demand, without IT assistance—in addition to being able to scale environments up and down easily.
Library of virtual datacenter templates
Software development teams need to create a consistent version of the current release stack, prior release stacks, and customer-specific variations as templates. Within a few minutes after a hot fix issue is reported, teams should be able to create a new environment that matches the appropriate release scenario to reproduce the issue, fix it, test it, and deploy the new code.
Complex bug capture and reproduction
When a complicated bug is identified, QA and support teams need to easily create, snapshot, and clone complex, multi-tier environments. They should be able to capture and quickly recreate complex environments, including all memory and state information, so that relevant development team resources can work to identify root cause and develop a fix, while the QA team moves forward with additional testing.
Collaboration
Developers need to share copies of their lab environments with test engineers, other development engineers, and users. Teams should be able to organize their work in projects, invite specific project members to participate, and assign specific roles or access points to each participant based on roles (user, manager, database engineer, etc.) or status (employee, contractor).
Together, these requirements enable agile software development teams to optimize the software development model for faster, more collaborative release cycles. When the development environment they use is as agile as their development process, they can focus on specific customer problems, quickly develop solutions, iterate with customers, and ship higher quality software faster.