I’ve been on a number of development teams and one thing that makes a huge difference for the team is a good tech lead. I’ve been on teams where there was no “official” tech lead but where one team member became the unofficial tech lead. The following are the traits I believe contributed to this person’s acceptance as a leader. I’ll start with the most obvious quality first. A quick disclaimer though. I know there are both men and women in software development but to use he/she everywhere in my post when referring to someone will become annoying and distract from the message. Ok, on we go…
Exceptional Technical Skills
A good tech lead will know the technology stack he is working in at deeper level than a normal developer. To show you what I mean, think of a developer as a person who has a sink. (I first heard this metaphor used by Scott Hanselman in one of his talks). This person uses the sink every day and becomes very adept at knowing just how far to turn each knob to get the water to the exact temperature needed to wash their hands, or do dishes or any number of other tasks that a sink can be used for. However, they never bother to open the cupboard doors and look underneath the sink. They know that when they turn the knobs, water comes out and when it hits the drain it disappears. But they don’t know where the water comes from, or where it goes. They don’t know that there are supply pipes that bring water to sink as well as drain pipes that take the water from the sink and send it outside of the house. A good tech lead is like a person who is curious about where the water comes from and where it goes beyond the confines of the sink. He isn’t afraid to open the cupboard doors to see the piping and where it goes. He takes apart the piping to figure out how the trap works and is able to clean it out when it becomes clogged. In the same way, a good tech lead not only knows the language and database he may be using to solve a particular problem, but will also understand the operating system and how the application being built will interact with it. If there is a runtime such as in Java or .Net, the tech lead will understand how the runtime functions. He will look under the covers to see how things work instead of just accepting that they do.
Excellent Troubleshooting Skills
A good tech lead should be really good at troubleshooting issues. He should be able to think abstractly about how the system should be working, what error is occurring, places where that error would be likely to occur and what is likely to cause it. He should also be able to look at things from a higher level (more abstract) to be able to see potential trouble signs on the road being travelled.
A Sense of Humility (servant leader)
A good tech lead will not see himself as being different from the other developers. He will be consider himself just another member of the team. This person is happy to share his knowledge with other team members and pretty much anyone else who asks. When asked a question, he will give an answer without making the questioner feel stupid or belittled in any way. A good tech lead will give the team or another developer credit for a job well done even when he has had a part in solving the problem. He will also guide the team by asking questions which allow the other developers to see where something could go awry and learn as they answer the questions thereby moving in a better direction. He will not just take a position and expect everyone to accept it just because he’s the tech lead.
Knows How to Listen
A good tech lead not only shares his knowledge, but also listens to the opinions and thoughts of the developers around him. In fact, most of his time will be spent listening and understanding so he can better guide the team. The importance of this skill cannot be overlooked. Some developers that are highly skilled make terrible tech leads because they just won’t listen.
Not Afraid to Question the Status Quo
A good tech lead will not be afraid to ask “Why?” Why are we using this platform? Why are we using this particular language? Why are we using framework A over framework B or a particular framework at all? He won’t accept an answer of, “This is what we always use” nor the excuse of “this is a really cool technology”. He will ask the hard questions and if in disagreement, will defend his position in a professional and charitable manner, explaining why he feels something should be done another way.
In general, when there is a person on the team that has these traits, even if not “officially” a tech lead, you will see the team starting to treat this person as a tech lead by bouncing development questions off of him, looking for and valuing his opinion before settling on a solution, and not being afraid to ask pretty much anything even if having to ask the question of someone else would be embarrassing. If you notice a person like this, you’ve found your tech lead.
Flight from CMH to PHL (US Airways) was uneventful. Smaller jet but it was ok.
Plane from CMH to PHL
Hung out in PHL for a while until boarding a Lufthansa flight to FRA. The PHL airport had a liberty bell made out of Legos that was pretty cool. The Lufthansa plane from PHL to FRA was a little bit larger than the US Airways one I just got off of.
Liberty Bell Made of Legos in PHL
Plane to FRA
Plane to FRA
Cabin of plane to FRA
We had a bunch of turbulence but otherwise the flight went well. The stewardesses and steward were very nice and kept everyone fed, watered and well cared for. I had a long layover in Frankfort so decided to make the most of it by getting out of the airport and doing some site seeing. Weather in Frankfort was cloudy, damp, and in the 40’s (F).
I went to the “Welcome Center” to get a 1 day pass for the city’s public transportation system called a Frankfurt Card. From the description of the card it seemed that it applied only to buses and trams so I got my passport stamped and headed for the bus stop. After briefly talking to the driver to ask if I had the right bus, he suggested that using the trains would be faster. So back into the airport I go and after some direction proceeded to the lower level of the airport to catch a train.
Being from a place where there are no subways or trains or whatever you want to call the public transport by rail, I found it a bit difficult to decipher the train route map. After not even being able to find where I was on the route map, I decided that I’d just hop on a train going towards downtown Frankfurt and see what happened. If I didn’t get to downtown Frankfurt, I’d take a train the other way. So I jumped on the S8. The train rambled along and stopped a few times but those stations didn’t look promising. Finally I saw a station name that I recognized and figured that had to be it and departed the train.
I wandered in to place that had a good number of people mulling around and stores and such and found my first reminder of home, Starbucks!
Starbucks in Frankfort
After warming up a little I trekked on foot around Frankfurt and found some pretty cool places.
I decided to get a digital id for email yesterday and discovered what treat it was to get it installed properly (e.g. so I could actually use it) on OS X Lion. On Windows, getting, installing, and using the certificate was a snap.
For this particular venture, I decided to go with tctrustcenter.com to get the cert. The process was relatively painless, fill out a registration form and they send you 2 separate emails; one with a link to the page to retrieve your cert along with your username, and a second that has your password. Once you log in, you generate your cert and click a button to install it.
I use Microsoft Outlook as my email client (2010 for Windows and 2011 for Mac), but also did the same setup using Windows Live Mail for a family member who wanted one too. On the Windows machines, after the above simple install, the certificate showed up in the list of installed certificates to choose from. On OS X Lion however, things weren’t quite as straight forward.
Using Safari, generating the certificate was the same as what I did in Windows and, once the cert was generated, the “Install” button was available. This time it didn’t install the cert but instead downloaded a p7s file. I imported the certificate into the login keychain and went to Outlook to associate it with my email account, but it didn’t show up in the list of certificates available. I also went in to Mail to see if perhaps it was limited to Outlook but the tell tale sign of the security buttons being available on a new email wasn’t there. I went back to keychain access to double check that I wasn’t going crazy, and sure enough there it was in the list. I did notice that when I’d filter the list of certificates in keychain access to show just “My Certficates”, the cert I had just installed was not shown which didn’t seem right.
Time to search the web!
After what seemed to be an eternity of Googling and Binging and Yahooing (I used all three in the hopes that one of them would give me that one link that was different and provided an answer) and viewing post after post in forums, and blog post after blog post, I was finally able gather enough bits and pieces of information to solve the problem, hence this blog post to hopefully save someone else the time and effort I spent searching.
The email cert wasn’t marked as one of “My Certificates” (If there is an OS X guru who can tell me a way to get an installed certificate in keychain access show up under “My Certificates”, that would be the ideal solution.)
The solution I went with:
I used Firefox instead of Safari to install the cert. I then had to go into Firefox->Preferences->Encryption->View Certificates->Your Certificates, select the certificate and click the “Backup” button. This allowed me to create a PKCS12 file. I could then import this into keychain access and,once I did, the certificate showed up under “My Certificates” as well as appeared in the list of certificates to choose from in Outlook.
Success!! I am now able to sign outgoing emails and decrypt incoming email to me without issue.
I’ve got my about page up, give it a look!
I’m in the process of moving my blog from my domain to WordPress so I don’t have to worry about it as I try new development ideas. I’ll have my about page up quicky, and my first (well first real) post shortly thereafter so check back.