I facilitated a discussion on Automating Your IT Shop at St. Louis Day of .NET. There was so much to talk about, we didn’t get to everything.
Here are the notes I took while we were talking.
Conversation Starter Questions
What tools do you use to automate?
What tools would you like to use?
What tools would you like to explore (time dependent)?
How do I know what to automate? Cost v. Benefit. Decision tree complexity. Rewritable process?
How do I automate? What is the right amount of tech for the job? For example: Batch file and Windows scheduler...
Automation Suites to look at
ChuckNorris - WarmuP, UppercuT, RoundhousE, DropkicK, SidePOP
Bombali
Principles
Basic Principles
1. Change yourself first. You are the biggest hurdle right now...
2. Automate the painful.
3. Automate the mundane. The boring
4. Automate the repetition. DRY...I repeat...DRY. ;)
5. If you do something more than once, look at whether it should be automated or not.
Tools
1. Use Source Control!!!!
2. Automated Builds
3. Continuous Integration
4. Automated Testing
5. Automated Deployments
6. Use the best and simplest tool for the job
7. Automate it ALL!
Tools
Continuous Integration Servers
Hudson
Cruise Control .NET
TeamCity
CI Factory
TeamBuild (TFS)
Visual Studio Add-Ins
R# (ReSharper)
Refactor! Pro + CodeRush
TestDriven.NET
Source Control
SVN
Mercurial HG
TFS (nearly exclusive to the IDE)
Git - deploy
VSS <---DO NOT USE
Vault
Bazaar
Testing Tools
TestDriven.NET
NUnit
MSTest
xUnit
MbUnit / Gallio
Machine.Specifications (MSPec)
FluentAssertions
Cuke4Nuke
StorEvil
AutomatedBuild
UppercuT
TeamBuild (TFS)
FinalBuilder
MSBuild
NAnt
Rake
PSake
Fake (F#)
Deployment
MSBuild
NAnt
MSDeploy
DropkicK
One Click Installer
Database Deployments
Migrations.NET
Migrations
FluentMigrations
Tarantino
RoundhousE
Microsoft (Data Dude)
Merge Tools
Beyond Compare
AraxisMerge
KDiff
DiffMerge
WinMerge
IDE
Visual Studio
Vim
SharpDevelop
Documentation Generator (from XML comments)
SandCastle
GhostDoc
Doxygen