PrairieDevCon is a great conference hosted in Canada a few times a year. For the first time it’s coming to Calgary in March and I couldn’t be more excited. I’ve participated as a speaker in every PrDC to date (2 in Regina, 1 in Winnipeg), and that streak will continue into Calgary.
In addition to the 2 conference sessions I’ll be doing:
- Why do we Suck at Estimating? And How to Get Better
- Evolve Your Code: Fundamental Design Principles
I’m also doing a full day Pre-Con Workshop on TFS Build. I plan to walk through the process of creating an “enterprise-class” build from scratch, and exploring along the way, what the heck does an enterprise-class build even mean? What type of things should you be doing in your automated build/deploy process? How do you customize and tweak the TFS Build to make it dance just the way you want? We’ll get down into the guts of TFS Build, and explore a lot of technology-agnostic Build best practices along the way. I can’t wait!
Here’s the full abstracts from the conference site: http://www.prairiedevcon.com/Workshops
Creating Powerful Build and Deploy Processes with TFS Build
In this day-long session we’re going to focus on unleashing the power of TFS Build to create a powerful fully-featured automated build and deploy for a sample application. We’re going to get down into the guts of the tool including an in-depth look at customizing Build workflows, creating custom build activities, and most importantly discuss a lot of best practices around creating valuable build and deploy processes. We’ll also get a chance to bring TFS Lab Management into the mix, and setup some virtual testing environments, and extend our build processes to automatically deploy to the various environments.
Some of the common questions that I hear that we’ll be covering are:
- What’s the role of MSBuild now that TFS Build is Windows Workflow based? When should I be using MSBuild vs Workflow?
- How do I test custom build activities?
- How do I auto-version my assemblies via my build process?
- How do I auto-deploy my application to a testing environment as part of my build?
- How do I upgrade my old TFS 2008 Builds?
- My build takes forever, what can I do?
- What type of things should I do in a CI Build vs Nightly Build?
At the end of day you’ll have a solid understanding of how TFS Build works, how to deploy and configure it in your organization, and how to create customized builds to meet your team’s needs. Not only that, but you’ll hopefully have a new understanding of the immense power of rich build system tailored to your project.
Why we Suck at Estimating (And How to get Better)
Few things are dreaded more than estimating how long it will take to develop software. Why are we so terrible at this activity that is an important part of *every* project we work on? In this session we’ll examine what the common problems with estimation are, and take a look at some strategies we can use to be more effective at estimating. The techniques discussed will improve your ability to estimate in all types of projects (Agile, Waterfall, etc). At the end of the session you’ll be able to immediately apply some of these practices to improve your estimates today, and approach estimates in the future with a different mindset to ensure you are providing the business with the information it requires.
Evolve Your Code: Fundamental Design Principles
In this session I'm going to pretend I can travel back in time and give the rookie developer version of myself an hour of advice. This session will be that advice. I'm specifically focusing on advice that will help us write better code. I've written a lot of horrible code in my career, and learned a lot of lessons in the process. In my day job I also get the opportunity to look at a lot of other teams code, and help them clean it up. Over my career I've gotten a pretty good idea of what I think the most important lessons are when learning to write "good" code. And here's a hint, it's not neatly captured in the SOLID set of principles that seem to be so popular at conferences these days. Expect a lot of examples and concrete advice that you can take away and start applying immediately to improve your code.