As someone who needs to keep abreast of the latest developments across the technology spectrum I take an interest in the ThoughtWorks Technology Radar, the latest version of which (May 13) was recently published. As always it is important to balance the various (and competing) viewpoints that fill the blogspehere so documents of this type should not be consumed verbatim. However for what its worth I thought I’d focus on one or two points in the latest read:
Techniques – Windows Infrastructure Automation. This is a technique I’ve used to architect solutions with for some time now, with VMware and AWS for IaaS and data centre virtualization, and more recently SkyTap for development/test environments in the cloud.
Techniques – Development Environments in the Cloud. For me it is development, test and deployment environments in the cloud based on source control (chef/puppet build artefacts) machine images.
Techniques – Machine image as a build artefact. No I didn’t contribute to the Radar (!) but its encouraging to see policies I have defined to fully automate the build-deploy-test cycle though source code being re-enforced by others. For me leading development teams should be putting their build-deploy-test code though its own build-deploy-test cycle. I’ve used TFS for this (more on this later) but must stress – machine images themselves should not be put in source code. You’ll eat disk space. Moreover machine images scripts (Chef/Puppet) are the source code artefacts and the images themselves are built through your IaaS infrastructure.
Tools – NuGet. I’m a recent convert to NuGet (“nugget”) and its derivative Chocolatey NuGet (“chocolatey nugget” – I know!) but for Windows/Visual Studio houses this is rapidly becoming one of the Agile trump cards. 3rd party packages (or your own packages) can be added to projects and solutions and the latest versions always included in your development process. If you use any 3rd party packages, either for infrastructure (Git/Node/Ruby/etc.) or in the build (JRE/.NET/etc.) then this will be great help.
Tools – TFS. The Radar is less than complimentary about TFS when used in an Agile environment with frequent (continuous) checkins. They must be talking about TFS 2010 (or earlier) as TFS 2012, in my experience, has not thrown up these problems. The Radar suggests using Git – and this is fine and may be better in certain circumstances but for Enterprise source control I’d still advocate linking Git to TFS through Git-Tf.
Let me know what you think.