Control your destiny with Virtualization Driven Development (VDD).
VDD decouples teams in early development cycles by allowing changes in the virtual world, where team members are in full control of their destiny!
Background: This project (customer: anonymous) is in the middle of upgrading the end-user look & feel of the product by embracing some of the latest UI technologies. It’s a large modernization initiative involving many development teams at different layers in the architecture.
Real World: Since modern UI is the main driver, UI development team needed a lot of data scenarios (both quantity and quality) to develop and test for things like table pagination, scrolling and performance of the new portal. In this real world, developers send data requests and wait for business analysts and other teams to populate data in all different dependent systems. They wait and wait; only sometimes being lucky enough to get back a handful of useful data. The team lacks true control of their own deliverables (destiny); they are at the mercy of teams, systems and data. It’s not an easy problem to solve when you have to populate data across multiple systems of records, mainframes and also partner channels.
Virtual World: In the virtual world, instead of waiting for a real, end-to-end environment with questionable data, the UI development team decided to use virtual services in place of real systems. A team member updated virtual services for different permutations and combinations of data scenarios enabling the team to proceed with the
development and testing of the UI. As a result, the team successfully developed and tested pagination, scrolling, and even performance of the web pages without any delays. However, the fun just began - as the team made changes to the UI, they discovered changes needed in the backend services.
In the real world, they would have sent the newly discovered requirements to the backend team and waited for another sprint (or two) to integrate. However, in the virtual world, there is no such constraint. The UI development team still shared the discovered gap with the backend team, but didn’t wait for their deliverable. Another team member updated the service definitions (and associated data) in the virtual world, and the team proceeded further with the UI changes.
At the end of the sprint, they had a fully developed (and tested) UI and a reference implementation of the all the changes needed in the backend services inside the virtual world. This reference implementation was then passed to the backend services team to make sure they could validate their enhancements against these changes.
In the virtual world, the developer is king! The team gets what they want, when they want it, and how they want it, and deliver high-quality products on time. As for ruling the real world, that’s a topic for another day!