<div dir="ltr"><div>>Anything anyone can do to tighten the feedback loops they get from any process (faster test runs, constantly</div>
<div>>present product manager, fast deploys, rapid customer feedback, and instant feedback from a pair), will improve</div><div>>their productivity as a developer.<br><br></div><div>At the risk of being considered dogmatic, this is (or should be) the #1 principle. Whatever your bottleneck, figure out how you can turn it from being a gatekeeper process into something you can parallelise (e.g. by pairing, by publishing the pull request earlier, by involving QA or Systems or PCI experts or whoever at the outset instead of the end)<br>
</div><div><br></div><div>For example, one thing that's been really useful for us is to use ephemeral VMs (in Amazon or sometimes in Vagrant) to quickly deploy branches into places where QA can poke at them on their own schedule, as development continues on the developers' schedule. This makes QA signoff an async process that needs no locking, but without the danger of "it works on my machine"-type issues that may arise if they're testing on developer boxes.<br>
<br></div><div></suck eggs><br><br></div></div>