Stories about Software


The Coding Dev Manager Can Work, But It’s Hard In Traditional Orgs

Today, for reader question Tuesday, let’s consider the idea of the coding dev manager.  In my experience, most companies draw a fairly sharp line between individual contributors (they code) and managers (they don’t).  But in startups and Enterprise Silicon Valley companies, you’ll have additional rungs of the corporate pyramid where people still write code.

Who is right?  Well, in my estimation, startups and Enterprise Silicon Valley.  Er, at least, they’re less wrong.  (Let’s talk “right” when we stop modeling our corporate structure after ancient militaries.)

But, as the asker of today’s reader question points out, this still-technical manager struggles to spend much time writing code.  (When he refers to “the book” he’s referring to my book, Developer Hegemony.)

The Reader Question about the Coding Dev Manager

Hi Erik,

I really enjoyed the book. One question I have regarding the efficiencier/partnership model for developers.

In my last job at [redacted], I was leading a large team working with [redacted]. We followed a similar model where we worked with customers on business problems, and then designed the technical solution ourselves (obviously updating them along the way), and then delivered it. As the team lead of the initial project (and eventually the overall engagement lead of 3 projects), I found myself spending less and less time programming. Towards the end it was < 10%.

In your book, you mention that it is possible to still be programming yet work on these other areas, but in my experience the “other” areas end up taking so much time I ended up not really coding. Sure if we have a team full of “T-shaped” people everyone can share various burdens, but from the client’s perspective they typically want 1 counterpart who they can go to to make the final calls. Is this an inevitable fate, similar to section 3 of your book that as the person’s value increases they go further and further away from coding?

Also, a Tweet on the Subject

For a bit of additional background on the subject, check out this tweet from last week.  More interesting than my tweet is the responses, in the context of this discussion.  (None of which I replied to — apologies, folks, I’m terrible at Twitter.)

The doubts in the responses to my tweet are important.  People see the following failure patterns for the coding dev manager.

  • You don’t actually wind up coding (as expressed in the reader question).
  • You kinda do both things, manage and code, and both kinda suffer (Doug).
  • You don’t actually wind up leading (Grant).

And then there are a couple of points that maybe staying “at the top of” one’s tech game isn’t that hard or even necessary.  (I’m inclined to agree with both ideas.)

So overall, what we’ve got is the million dollar question — how can you be both a programmer and a leader?

Read More


How to Get Clients for Your New Consulting Business

Having ironed out the day of the week for reader questions last week, I’ll get right to the point here.  Today I’m going to talk about how to get clients for a consulting business.  This is in response to the following reader question.

It’s ideal to reach out to existing contacts, but past that what is the best way to approach people outside your immediate network for work?

When starting out, should you be highly specialized or more general to get the freelance practice started? And is it better to focus on a particular single offering or cast a wider net by offering more services?

So let’s set the scene.  You’re working a 9-5 gig, but with visions of starting to moonlight.  Maybe you want to become an efficiencer, a freelancer, or a consultant (if you’ve been reading my developer to consultant series).  Whichever of these you want, the advice I’d give is coalescing into one consistent narrative.  And I’ll offer that narrative today.

The person asking this question is exactly right in the first sentence.  It is ideal to reach out to existing contacts and, more specifically, to those who view you favorably.

But it’s not ideal for the reason you probably think.

You probably think these are ideal outreach candidates because they like or respect you.  But, while that doesn’t hurt, it’s not actually that important.  The reason outreach to close associates is so valuable is because they know how you can help them and how you can help others.

Job-Seeking Teaches You A Sales Pitch That Hurt You as a Consultant

I’m going to answer the reader question, but first I have to explain this subtle distinction.  And I’m going to explain this subtle distinction, but first I have to explain why the best way to look for jobs is the worst way to land consulting gigs, and vice-versa.

When you apply for jobs, your general mission is to make it clear how broadly useful you can be for prospective employers.  A good resume paints you as someone with a broad set of skills and a work history full of employer-favorable outcomes.  It reassures prospective employers that you’ll be useful to them in the years to come, regardless of changing circumstances.

The overarching message?

“I can be useful to you in whatever ways you need and deem necessary.  You, future boss, are the work planner and I am your broadly useful resource.”

This makes you an honestly good employee.  And it makes you a relatively useless consultant.

I once referenced an idea from Book Yourself Solid  that you need a “who and do what” statement.  I help [who] do [what].  As a consultant, you have this statement in lieu of a resume.

The overarching message?

“I can be useful to you in this very specific context where I am an expert and you need my help.”  This makes you pretty useless as a prospective employee, but well-positioned as a consultant.

Read More


The Mercenary’s Guide to Should I Stay or Should I Go?

Look at that!  It’s Monday and I’m actually doing reader question Monday.  Just kidding.  Once again, I’m doing reader question Monday on a Tuesday.  In fact, I am going to pull the trigger on switching it to Tuesday going forward.  My wife and I are experimenting with a 4 day week that would make Tuesday the new Monday for us.  Also, for those of you interested in blogging advice, Tuesday is a better day to publish posts, anyway.

Enough of This!  What’s The Question?

Alright, housekeeping aside, let’s get down to brass tacks.

Do you have advice for helping one answer the age old question, “Should I Stay or Should I Go?” At what point is it time to throw in the towel and move on?

I don’t want to be a quitter and always have regret that I missed out on the company becoming an awesome place six months after leaving. Yet, I don’t want to waste six months of my life and career on hopes and opportunities that never manifest into reality.

I’m well aware the grass isn’t always greener on the other side and all companies have problems. However, in today’s developer advantaged job market, when is it time to change one’s attitude from “I can make a difference” to “Not my problem anymore”?

Thanks for writing and publishing such thought provoking content. I really enjoy reading your articles; even though you write faster than I can read 🙂

Well, first of all, thanks for the kind words!  Failing to create enough volume of content has never been a problem for me, to be sure.

I Have Biases, So Let’s Get Those Out of the Way

Now, before writing this post, I need to address something.  I have, in the past, written posts encouraging you to job hop, saying that you should always be leaving, and that you take jobs already thinking of your exit strategy.  I also wrote a book with an entire part devoted to the merits of viewing the very existence of a company as a limiting illusion.  So there’s that.

I mention this because you need to understand where I’m coming from with my advice.

This isn’t to say that I can’t conceptualize enjoying being part of a larger whole or regarding a company as a potentially benevolent entity.  It’s more that I would tend to view those things as creature comforts that conflict with career advancement.  For people looking to get ahead, I wouldn’t recommend a company collectivist attitude.

That said, I’ll do my best to put aside my own preferences and beliefs.  Just know what those are as you read: I’m a mercenary and a lone wolf and, when it comes to jobs, a quitter.

Read More


Promoting Test Driven Development with a Remote Team

Happy Monday, readers!  I’m getting back on track with reader question Monday once again.  No more excuses about bad web hosting issues.

Today’s question is about test driven development.  Specifically, it’s about test driven development when you’re trying to get a team to do it — a remote team.  Here’s the question (directed at me some time ago on Twitter).

I’ve talked so much lately about consulting and other such topics, that it’s fun to get back to programming a little, if only for nostalgia’s sake.  So, yeah!  Let’s talk TDD.

I have a lot of coaching experience, a lot of consulting experience, and a lot of TDD experience.  I’m going to combine all of those things into a series of suggestions.  This is what I would do if a prospective client wheeled a dump truck full of money up to my place and asked me to do what you’re doing.

First: Test Driven Development Evanglism

Leadership is on board, and you’re on board.  That’s important.  But without the team on board, it won’t matter at all.  With a new initiative like that, lack of team buy-in means they’ll humor you until the first excuse to stop comes along.

Now, getting buy-in doesn’t mean that you necessarily make everyone true believers.  A lot of times, the easiest way to convince skeptics is to (accurately) point out that having TDD on their resumes makes them more marketable.  So, hey, look at it as that your company is paying you to learn a skill that makes you worth more.

Even better than that, though, is to combine that with promise of alleviated pain.  Find some big snarl of global state and complex methods, and point out that TDD is like kryptonite for that kind of thing.  Or demonstrate the embarrassing-defect-saving power of a regression test suite and then ask if it wouldn’t be nice to have that everywhere.  Whatever the magic selling point is, try to find it.

And, by the way, this isn’t specific to remote test driven development.  You should apply this to any effort to install TDD (or really any practice, frankly).

Read More


Freelance Tax Implications for Side Hustlers: How to Handle It

Alright, time for a reader question Monday post.  I’m sure nothing takes the edge off of the end of your weekend like me answering reader questions.  So, let’s do that.  I’ve talked before about taxes for people going fully independent and hanging our their shingles.  But this one is all about taxes for side hustlers.

Here’s a composite of the reader question, since several folks, some from different professions, have asked me about this.

How should I handle taxes when I have a full time job and I start moonlighting?

In all likelihood, this will be a fairly US-specific post.  But there are commonalities with other tax systems, as I’ve learned by having an increasingly global set of colleagues and folks that I talk to.  So, hopefully, even those of you not in the US can get some value out of this.

Wait, Why Is This an Issue at All?

I’m going to really start from first principles here, in this discussion of taxes.  In other words, I’ll assume that you not only didn’t know how to handle taxes from income when you moonlight, but that you didn’t know you needed to do anything to handle them.

Alright, so here’s the thing.  Let’s say, for the sake of easy math, that you earn $52,000 per year, paid biweekly.  This results in paychecks of exactly $2,000.  At least, that’s what it will say under the “gross income” portion of your paystub.  As you well know, Uncle Sam has his fingers deep into your pockets before the direct deposit ever hits.

For the sake of more easy math, let’s say that your overall tax rate is 25%, meaning that you take home $1,500 per paycheck.  (This is extremely facile, since the US has a graduated income tax system.)

So every paycheck, the government (actually, your employer, but forget that for a moment) hangs onto $500 and you bring home $1,500.  At the end of the year, when you do Turbo Tax or drag your receipts to H&R Block, you neither owe money nor receive any.  Why?  Well, because, in a rather unusual circumstance, your employer has withheld exactly what you owe.

But what if you now start earning $1,000 per month moonlighting?  When you moonlight, nobody withholds income.  So now, at the end of the year, you have something of a problem.  Your total earnings are now $66,000 (52K + 12 months of 1K), but you’ve only paid $13,000 of the $16,500 that you owe throughout the year.  You’re going to need to pay the IRS $3,500 at tax time.

Oh, and they’re going to penalize you.  But let’s worry about that part later.

Read More