Automation: Not just for a Parallel Universe...
When I was growing up, I watched a lot of Sci-Fi films (I know stereotypical techie huh? Although I never wore Spock ears, so that’s OK!)
One of the ones that stuck in my mind was Tron (released in 1982, with Tron: Legacy in 2010). The films are all about how a user gets stuck inside a parallel world of automated programs, carrying out day to day tasks – all controlled by a master control program.
It wasn’t until I started to write this blog that I realised how sublimely this compares to me and my job…
I’m a Chief Architect in TSG’s R & D team and I’ve been developing programs all my life. The way that a program is traditionally created is that you have some form of definition of what the program needs to do, a developer then codes this up, it gets passed to someone else to test it (like with writing a blog you should never proof read your own work…), and then it gets deployed.
Generally this process is carried out a few times to iron out any issues, and then the program is released.
That process works ok, but there is no real master control program in the process.
We can make this a lot better by automating it (a la Tron), meaning we can run the whole process more often. This will save everyone time, and more importantly you can get back to playing light cycles!
It’s a bit like the IKEA machine which opens and closes drawers automatically thousands of times, to prove how robust their kitchens are.
Anyway, now it’s time to boot up the legacy.
How has Tron influenced my job? Recently I have been working on the new ‘build and test’ environment that sits at the heart of TSG R & D to make our process a lot slicker. Yes, it’s techy but it’s really all about improving the experience we deliver for our customers.
We use Windows Server 2012 R2, along with AlwaysOn SQL Server 2012 as the core platform. We then use Microsoft Team Foundation Server (TFS) 2013 for the master control program.
The development process is generally the same, however now when someone checks in some code to TFS, an automated build can be triggered. It compiles the code and runs any unit tests that the developer has created.
What’s even better is that we can now run automated deployments along with fairly simple smoke tests. This means that (for example) three times a day, a project that a team is working on can be built, a clean virtual environment can be booted up, the code can be deployed to the environment, and a set of simple coded UI smoke tests can be run to validate that everything works as expected.
The beauty with this process is that we get continual feedback during the development lifecycle, with screenshots available through Microsoft Test Manager, which tells us when something didn’t go to plan.
And, of course, it means we know everything is running seamlessly and smoothly before we deploy for real – whether the ultimate environment is on a customer’s premises or, as is becoming increasingly the case, in the Cloud.
I know that Mark Bryant (Southampton Office) is a great advocate of this approach and something which has seen him and his team turn out some awesome work.
Working with our talented QA (Quality Assurance) team (headed up by Luke Barfield, Loughborough Office), we have created a number of simple yet effective tools to bring the continuous integration and deployment process of bespoke program development to the world of Microsoft Dynamics CRM.
This means that with a click-once approach, we can check for prerequisites on a Microsoft Dynamics CRM 2013 installation.
We can then deploy a number of solutions, run some other custom actions, import any data settings that we need, and finally run some checks and balances. (I know accountant speak gets everywhere, but we love them all the same!)
I hope you followed all of that, but if not then just take it from me our R & D process is on par with anything you’ve seen in futuristic movies!
So that’s how a film like Tron has influenced my job, and so now I’m handing the input back to you… What’s your favourite film and has it had any influence on the job you do?