Code Your Way Up – The Getting Started for Software Developers

2020-02-11 13.50.32.pngGoing back to many years ago, when I first became a Software Manager, I was surprised (shocked) in the steps I went through in going from Developer to Manager.

Many times I asked myself questions such as;

  • Why’d they pick me?
  • Am I doing this right?
  • Should I have started earlier?
  • Is everyone laughing at me?

None of which I could answer then because I didn’t know the answers to them and for the most part they didn’t exist.  Software Leaders are an interesting breed because we are essentially promoted into the position because we excel at being great coders – we DELIVER – we get things done and we make things happen.  The next logical step is to see if you have the – DRIVE – to get yourself and another group of people to the same location but delivering an even bigger piece of software that can only be done by a team.

We’ve all had the conversations that go like – “You have a $500K budget for this project, why don’t you give me half and I’ll go into a cave and do it myself, burn myself to a crisp doing it and hope it lines up with your requirements and you’ll save all that money and not need to deal with more people as a result.” – and sure this is a valid question, but it’s not a question that will have an answer that will generate long-term GROWTH for you (forget the company, we’re talking about you).  It will burn you out or give you a bad name in the process.

In thinking of all the challenges that go into Software Development, I started to write them down, identifying the behaviours that go into being a successful leader, where they begin and how.

To be a leader, whether you’re leading a team, a project, a customer fix, a performance test in QA, a trial delivery, etc, etc you don’t need to be overtly charismatic, an extrovert, the first person who puts their hand up for everything.  You need to show the INITIATIVE in that this is something you want to do.  LEADERSHIP isn’t an overnight deliverable, it’s not something that happens all at once and it’s definitely not something you are going to get right on your first time.

But where do you start?

You start with your code, you start when you are cranking oodles of goodness to production, when you’re the key to it all, when you’re comfortable in what you are doing.  You start by executing all the behaviours highlighted above so that when you do get there, you’re ready for it and it’s not so much of a grand announcement, but a natural progression for which you have prepared for your entire career.

Code Your Way Up is available now for pre-order on Amazon (Canada and US) – it’s a great addition to your library to get going and realizing where you want to take your career (and how).

 

The Leadership Exit

Making the decision to leave is never easy.

It’s easily doubled when you’re the Leader of a team because not only are you now leaving an organization, you’re now leaving a group of people that you have invested an incredible amount of energy into their own personal and team growth and development that to leave feels like betrayal.

They bought into the story.

They listened to everything you had to say.

They jumped higher than you asked.

They believed.

And now you are leaving them. Or rather that’s what you’re made to feel like when you make this hard decision to do so.

“You’re abandoning us”

“You’re leaving us behind”

“Why aren’t you taking us with you”

“How could you?”

There are many emotions at play here when you decide to leave and most are coming at you.

Let’s dissect a few of the most prominent ones here.

You’re Not Leaving Your Team

It’s time for you to move on to new challenges and opportunities. Leading a team is like being a parent, there is a moment when you know it’s time to let your kids go, spread their wings and start leading themselves.

Every Leader knows when they’ve hit this point with a team – “I’ve done enough here and what comes next will only be incremental. You need more, you need a different approach, you need someone else.”. This isn’t an easy realization for a leader to come to, but it’s one that is realized from the view that they want their team to continue to grow, become stronger, better and share that wisdom with others.

When the Leader’s involvement is only going to result in incremental returns, it’s time for them to make the exit.

It’s Not a Betrayal

And if your team thinks it is, then you should have left much sooner. Your team is now dependent on you for more than you had originally hoped and they are fearful that without you, they will fall apart.

Fear is a powerful emotion and a Leader should never stay if the team is fearful they cannot survive without them (the Leader). If this is the case, then you haven’t done the proper work in preparing your exit strategy and ensuring they are setup for success for when you leave. A well organized team should be able to survive in the short-term without their Leader and keep things going through what has been taught to them.

Don’t fall into the trap of being made to feel you are disloyal or have betrayed your team, you are giving them the opportunity to grow and develop.

The Bought Into You

Great.

Fantastic.

Your team bought into your plan, they executed and delivered on what you asked them to do, what you inspired and motivated them to do, what they raised up their own games to do.

This isn’t a bait and switch or a pulling of the rug from underneath their feet, this is your team trusting you to lead them, you leading them and no matter where you are in the delivery of your plan, they are being successful and continue and will continue to be successful.

What everyone tends to forget when you are leading a team or a project is that this IS THE ONLY  team and/or project that you will EVER lead.

But it isn’t and will never be and for you to continue growing, you will need to work with different people, validate different approaches with a new group of people.

In the end, you might end up working with some or all of these people and that is the best experience because not only did they buy into you at this moment, but they are ready to do it again, this time without having to go through all the Interviewing and Identifying and get right to Delivering.

Don’t fall into the trap of changing your mind about leaving because your team doesn’t want you to leave.

Focus your energies on setting them up to take over from you with the remaining time that you are working them. Over that period of time, their emotions will subside and will turn to being happy, excited and proud of the tough decision you’ve made. You’ll inevitably have many one-on-one conversations that will turn out to be some of the most encouraging conversations you or they have had during your tenure, enjoy them and know that you’re making the right decision.

But don’t change your mind, over time you will resent the decision you made and depending on your team, their attitudes might change or shift as they realize you will always be there to catch them if anything goes wrong and they’ll slowly start to question what your level of commitment truly is when faced with tough decisions.

 

Collaboration’s Biggest Challenge

A few years ago, SLACK was the messaging darling, enabling quick, simplified messaging with minimal setup and management for administrators.  In addition, it boasted a robust API/Integration framework which let it do what so many collaboration applications to date had struggled with – get inside everything you work with.

Or rather, you get inside SLACK with everything you work with.

Fast forward to today and there are not only a number of challengers to SLACK but also SLACK has been hit by a few complaints about being “too much”, “always on”, “never able to get away”, etc, etc, the list goes on.

This isn’t a SLACK problem though, this problem has been in existence since the first iteration of that green jellybean icon came to represent your availability – you are here, you are available, let’s get to work.  That little icon came to represent not only your availability to get work done but also an indicator of when you are available to get work done (read: how much work are you putting in, how later are you up).

Collaboration’s biggest challenge to autonomy and not micromanaging your team has always been that little green icon.

How do I know where they are if it’s not green?

They’ve been away for so long, they must be doing something else?

Why aren’t they answering when they are green?

It’s the perceived notification that someone is available and ready to do work for you – that’s how it is interpreted but what it was never meant to show.

Want to know how pervasive the colour schemes are in messaging tools?  Look no further than them all using similar schemes – green – available, yellow – maybe, red – busy – they flow between different systems so we don’t need to relearn anything.  And just like a traffic light, they mean exactly the same things to a user.

But the question for the traffic light – Would you leave it on green all day long? – probably not, because eventually, it’d burn out.

When email took on the collaboration challenge it did so without presence, asynchronous communication – “I’ll get back to you when I can because I could get busy” – which unfortunately turned into the simplest of messaging protocols that allowed and enabled people to SPAM us with updates on everything and anything.

As much as we want to make it, Collaboration’s biggest challenge will never be the technology, the protocols, the AI to reduce message flow, where it’s hosted, whose hosting it, etc, etc, etc.  It will be the trust we put in each other around presence and messaging to ensure that those boundaries are preserved and supported.

Think that’s an easy way out?  Then here’s a question for you – What is your company’s collaboration policy and does everyone know what it is and how it works?

Doubtful, if you do fantastic and if you do, that means this post wasn’t meant for you, it’s for the rest of us that are working against that little green jellybean trying to find the right way out.

 

Bad Renovations in Software

Recently, while doing some work in my basement, I had to remove a vertical bulkhead.  Actually, I didn’t have to remove but wanted to see what was behind it after staring at it for so many years.

When I opened it up, it was empty, there was nothing of use behind it – no vents, no water lines, no electrical, nothing – just empty space.

Well, not just empty space, it was filled with scraps from when it was first built, leftover pieces of drywall, wood and whatever else could fill in that cavity.

It was Technical Debt in all its physical glory.

Code that we have pushed to the side because no one’s ever going to see it.

Code that’s so bad, we don’t even try to hide what it is, we just add it to the pile.

Code that serves no other purpose, except to make work for the next person that comes along.

How many times have you had to go into a project that was rife with bad code that was pure bad debt that now you had to fix?

Bad Debt, if you think back to the mortgage and housing crisis of 2008 and watch the movie “The Short” you know what Technical Debt truly is, bad code, hidden within even more bad code, hidden within even more bad code that somehow works so we call it great and leave it for later or until it blows up.

Good Leaders know when to take on Debt, they take on the good debt, debt that will help their company and team grow.  And they don’t leave it behind, in the next release, the next beta, three sprints down the line when everyone is happy with the results, they go back and do it right, make it better and fix it so the next person that comes along isn’t saddled with a gargantuan problem that blows their project out of the water.

The Good Leaders fix Technical Debt but working on it.  If it’s going to add two weeks to their delivery timeline, they figure out a way to do it and make it happen.  If the team is overloaded and can’t spare the week involved in testing thereafter, they find a way to coordinate with QA and get it done.

We only have Technical Debt because we let it get there, but we all know the answer to fixing it.

You don’t have to be the one to put your hand up and announce you’re going to tackle it and get it done, you need to be the one to start doing it.

Finding your Non-Leadership Style

Leadership Styles are a tricky conversation primarily because no one wants to be pigeonholed being “that” type of Leader (when no one cares for having “that” type of Leader in their organization).

But it gets worse, as you start to work with other leaders (maybe you have a group of Team Leads you are mentoring) they want to understand what style you teach and employ because this is more important than the results you create.

To be a Great Leader, you don’t need to have a Leadership style. 

If you want to be better then having a particular style, I would urge you instead to focus on having a Non-Leadership style which essentially says – who you aren’t.

Having a Non-Leadership Style is what keeps you open to changes in the industry and lets you build your toolbox with a variety of tools, adding new ones, replacing old ones.  It prevents the conversation from with team members from going down a path of – “oh okay, so today we’re doing this?”

When you have a Non-Leadership Style you KNOW who you DON’T want to be, what you DON’T want to do and what you DON’T want to teach others.

You won’t find Non-Leadership Styles in a powerpoint deck because there are too many and only you can be the judge for what works for you and what doesn’t from your experience at trying them.

Non-Leadership Styles are typically unstructured and not driven by processes or perfect diagrams.  Instead they are composed of guiding concepts and goals that hold the leader to their path and direction but let them choose the route to get there.

Non-Leadership Styles are not for everyone – there is no handbook (except the one written by the leader) that says – “when this, do that, then do this, followed by that” which can frustrate those that are looking for a step-by-step manual to leadership.  They are free-flowing, evolving and natural in their development, growth, and escalation as they are implemented, tweaked and twisted.  They are the leadership styles that we come to admire for these exact qualities of flexibility and growth.

The next time you get asked what’s your Leadership Style, flip the conversation and start by saying what your Leadership style isn’t.  In that instant, the conversation will change as people here what you will not do and when you start doing what you set out to do they will not be fearful for what comes but instead be relaxed in knowing what it will not be.

 

Subscribe to Roving Thoughts

Enter your email address to subscribe to this blog and receive notifications of new posts by email.