Skip to main content

HDC 2016 Keynotes

I really enjoyed attending the 2016 version of the Heartland Developers Conference (HDC). I want to share some of the things that I took away from the conference this year.

The biggest highlights for me were the 2 keynotes on day 1 of the conference. Tarah Wheeler kicked off the show with a great talk that focused on mentoring. Jeremy Clark finished the day off with a complimentary talk about how to be more social and interact with fellow developers at events like HDC.

Tarah Wheeler's Keynote

From Tarah's speech I gained a lot of encouragement to go forward and work to help mentor others in the community. She has found that when she gives to others that it has opened doors for her in the future. Even just giving someone encouragement can build a relationship that benefits everyone involved. Mentoring doesn't require you to know everything and not even a lot more than the person you are mentoring. Knowing just 1 more thing than your mentee still provides them with knowledge.

Once you start giving, other will seek to help you. I believe the reason for this is tied to Tarah's advice on who to mentor. She said to look for others that are already giving themselves. If you are giving and your mentee is giving then you form a mutually beneficial relationship. If you seek out someone that is not interested in giving themselves, then you will likely be frustrated by the effort that person gives you back.

Tarah was a great speaker and had a great message. If you have the opportunity to hear her talk, I would highly recommend doing so.

Jeremy Clark's Keynote

Jeremy covered 2 main topic. First was User Driven Development. A few of the main points I took away from this keynote were:

  • His biggest successes were when he knew what the customer needed and his biggest failures where when he didn't.
  • My job, as a developer, is not writing code, it is solving problems. To achieve this, you need to understand the users and their needs not just what a spec tells you to do.
  • It is important to build trust with your users.
  • Care about making things better. If you want to make things better all the time, you will have a greater impact than just writing code.

He also had a couple of good quotes that can be used as a guiding principle for helping the user. "I fight for the user" and "I need to know the user because the user doesn't know the technology."

And he also had a good story about a place asking him to make the system do what it does today. His response was, "We are rewriting it because it is broken. What it does today is not working." Eventually he was able to come up with a simple solution to solve what the users needed rather than just having it do what it already did.

Then he focused on Becoming a Social Developer. When you are around a group of developers like at a conference, you know 2 things that you have in common with anyone there.

  1. You both love technology
  2. You both want to learn

So given this knowledge you can fairly safely assume that you and any other developer you are around can find something to have a conversation. You can take a fairly small risk by asking someone if you can join them and they will most likely say yes. Even if they do not, the worst thing that can happen is really not very bad at all.

This part of his talk really synergized well with Tarah's talk. By being more social, and being willing to start conversations, you will create new relationships. Those relationships might lead to opportunities in the future or they may just be a learning experience.

Many developers think that they are too shy to be social in this way. Jeremy said that shyness is a learned behavior and just like any behavior it can be changed. He gave some tips on how to overcome that behavior and challenged everyone to meet someone new at the conference. I was able to complete his challenge and met a few new people. Some of the conversations I had went better than others, but I was able to complete the challenge and should have an easier time of it in the future.


Popular posts from this blog

Converting a Large AngularJS Application to TypeScript Part 2

In part 1 I was able to take an Angular controller written in JavaScript and convert it to a TypeScript file while doing very little to change the code. In this post I am going to explore transitioning that same controller to actually use the features provided in TypeScript. This is how I left off my controller:
declare var angular: any; (function () { 'use strict'; var controller: any = function($scope){ ... } angular .module('app') .controller('controller', controller); controller.$inject = ["$scope"]; })();
While performing the translation from JavaScript to TypeScript, I would make sure at every step that the functionality I expected still worked, so if anything I did broke the system I would change it back and try again with another approach. Also if something seemed like it worked too easily, I would break it on purpose to make sure I wasn't getting a false result through browser caching a previously working fil…

Converting a Large AngularJS Application to TypeScript Part 1

I work on a project that uses AngularJS heavily. Recently we wondered if using a preprocesser like CoffeeScript or TypeScript for our JavaScript would be beneficial. If our team is going to switch languages, we would need to be able to convert existing code over without much pain and we would have to find enough value in switching that it would be worth the conversion.

I had read an article that stated that because TypeScript is a SuperSet of JavaScript, you could convert a plain JavaScript file to TypeScript by changing the extension to .ts and not much else would need to change. I wanted to test out this claim, so I took a file that I was familiar with, an Angular Controller, and tried to convert it to TypeScript to see how much effort it would take and then try to figure out where we would benefit from using TypeScript.

This is what the controller JavaScript file looked like to start out with:
(function () { 'use strict'; angular .module('app') …

Gamify TDD

I like it when things that would not normally be associated with games add concepts from games as a way to incentives you to accomplish things. Why simply go for a run if you can have an app that will track you and give you a gold star if you do better than you did the last time? Why go to the coffee shop that only gives you coffee if the other one will give you points that you can redeem for free drinks eventually?

I was recently introduced to CodeSchool, an online training system similar to PluralSight, it has video courses and challenges you can take to prove that you retained what the video taught. CodeSchool also adds badges and tracks to your learning, so as you complete a video and its challenges you get a badge. Complete a collection of courses within a specific discipline and you become a master of that discipline.

Some of these incentives are not tangible and really don't mean much in the real world, but they tend to work for me. If I start working towards a large goal a…