This document discusses lessons learned from developing a plugin to add Hyper-V hypervisor support to CloudStack. Key lessons include using HTTPRequest to escape Java's limits, serializing JSON objects instead of porting Java classes, writing code with test-driven development, automating tasks with CloudMonkey, adapting existing plugins where possible, using QuickCloud instead of system VMs, and avoiding proprietary tools and libraries. The plugin extends CloudStack using plugins, includes a ServerResource for device access, and implements the hypervisor API via a remote or direct connect agent.