Applying Version Control to People

Wouldn’t it be great if we could apply the concepts of Version Control to people?

Label your best days so you can always back, do a GET and see why everything worked so flawlessly?

Forget what you did 3 months ago and why?  Go back into the HISTORY and read the comment – “oh yeah, this is why I had to do this”.

Take the best parts of people and MERGE them together et voila – the perfect team?

Having a bad day, BRANCH that attitude over to here outside of my main workspace so I can focus on what is important today.

It seems silly, but sometimes the silliest concepts, when visualized in our heads, distilled and simplified are the ones that lead us to the best solutions.

And a laugh doesn’t hurt either.


Can you handle the Change?

Should I apply when my skills don’t quite line up to what is being asked?

I have .NET, they want Java?

I do Development but want to be a QA?

I’m more Agile than Waterfall?

Do you have an aptitude to change and learn without disparaging that which you don’t know?

If yes, apply, if not, probably not the best idea for you because you know it is going to be different, you know there are going to be hurdles and hills to climb and you know it is going to take you out of your comfort zone.

So before you get into the technicalities of programming languages, methodologies, and roles, start with are you willing to make a change and learn from it without bemoaning your decision to make the change?

The Role of the Team Lead

Continuing on from The Road to Team Lead it’s amazing to see all the different job descriptions out there for a Software Team Lead – some ranging from “Super Coder that leads the coding” to “Full Blown Manager”.

With so many confusing descriptions that differ from organization to organization, it makes it a little tricky to understand what you are getting into.

My thoughts on what the role of Team Lead encompasses;

  • 50% coding – the team still needs you to be contributing to code and let’s be honest, you still want to be contributing to code
  • Team Onboarding – this can be a time-consuming process and one where you might need to sit side-by-side with someone to help them out in those first few months of getting familiar with the company.
  • Product Matter Expert – you are deep in the code, working with the team to build the products, possibly doling out tasks and assignments, you should know the products the team is building inside and out.
  • Product Architect – note, I didn’t say, architect of everything, could be, maybe not, but at the end of the day, you are responsible for the architecture of the product area that you are focused on and working with your team on
  • Facilitator – whether it is QA, Product Owners, Customer Support, etc, you are the facilitator of these internal roles to your team to get things done.  You are the bridge to make sure your team is handling the right priorities at the right time.  At times, this might appear as a GateKeeper as you try to keep people off of your team, i.e., towards the end of a big release but what you are really doing is ensuring the good communication lanes stay open during that time for the necessary discussions, the rest can be turfed.

Is that more or less than what you are doing right now?  It would depend on your overall team configuration if you only have Team Leads and no Managers OR if you have multiple Team Leads for each Manager OR if you have some other crazy configuration – so take it as this – the minimum that a Team Lead is expected to do.

Slow it Down

I sincerely enjoy watching any sport where a single athlete can change the tone of a game in a matter of seconds and slow it down to their pace.  Where all the heightened pressure and urgency that was there, when there was still plenty of time left in the game, has now come down a notch.  The emotion has been tossed out the window and now they have made it their game.

Where there was urgency to make something happen, there is now importance to make something happen… not right now… but right.

That ability to shift a player, a team a crowd from the moment of urgency to importance and make something happen is an incredible skill that we all need to develop and learn from in a time where everything is now and onto the next.


You Don’t Know Everything

And never will you.

You will know a great deal, you will be a sponge, you will learn everything you can but you will always need someone to fill in the gaps for you.  Whether it is a customer explaining that final set of requirements that you never understood, or the junior developer that knows the 18 steps to configure and deploy that complicated hotfix or the Product Owner who has a better handle on your competitors because they have gone out and met them.

You cannot know everything.

The sooner you realize, you don’t know everything, the sooner you will be in a better position to identify the people who do know the everything about those certain topics and the sooner you will start to have less of that feeling of – “knowing a little bit about everything, but not enough to do something”.

It’s not an admission of failure, it’s an admission of growth and trust in relying on your team to help you get to where you are going.