DaedTech

Stories about Software

By

Habits that Pay Off for Programmers

Editorial Note: I originally wrote this post for the LogEntries blog.

I would like to clarify something immediately with this post.  Its title does not contain the number 7, nor does it talk about effectiveness.  That was intentional.  I have no interest in trying to piggy-back on Stephen Covey’s book title to earn clicks, which would make this post a dime a dozen.

In fact, a google search of “good habits for programmers” yields just such an appropriation, and it also yields exactly the sorts of articles and posts that you might expect.  They have some number and they talk about what makes programmers good at programming.

But I’d like to focus on a slightly different angle today.  Rather than talk about what makes people better at programming, I’d like to talk about what makes programmers more marketable.  When I say, “habits that pay off,” I mean it literally.

Don’t get me wrong.  Becoming better at programming will certainly correlate with making more money as a programmer.  But this improvement can eventually suffer from diminishing marginal returns.  I’m talking today about practices that will yield the most bang for the buck when it comes time to ask for a raise or seek a new gig.

Read More

By

Always Be Leaving

Last Friday, I published a post called “The Polyglot’s Dilemma”.  I had actually had a stubbed draft for this post, “Always Be Leaving,” before writing that one.  But it turns out that post segues nicely into this one.

Programmers (especially polyglots) face a dilemma wherein the thing that makes them most employable (broad generalist skills) also positions them as resources rather than strategic experts.  To make matters worse, broad industry generalizing also puts programming labor in the category of fungible commodity.  Knowing many languages and techs makes it easy for a company to assign you to any arbitrary upcoming automation project.  But it also makes you easily replaceable by any similar generalist.

The polyglot generalist comes to the company as an easily-deployed generalist.  He then waits for people tasked with organizational strategy to deploy him.  But then, of course he does.  This represents the only way for him to remain indefinitely engaged as an employee.  A specialist comes in to execute on a limited duration charter.  A generalist signs on to do whatever the company happens to need for the rest of his career (theoretically).  This context demands a generalist, since nobody knows what the company will need in 5, 10, or 20 years.

And so we see that the polyglot’s dilemma arises naturally from indefinite employment.

Leverage: A Study in Contrasts

“Always be leaving,” as a title probably reminds you of the pop culture sales phrase, “always be closing.”  Popularized by movies like Glengary Glenn Ross and Boiler Room, it evokes images of the iconic pushy sales guy.  This sales guy does things like cold call you and say, “should I sign you up for two or just one?”  See what he did there?  He gave you no option to say no.  Slick man that he is, he’s always closing.

If you take the self-important testosterone out of the situation, you can see a more basic psychological reality.  “Always be closing” applies to situations with little to no leverage.  Fast-talking sales guys call up “whales” and, through force of personality, convinces them to buy stocks they don’t need.  He has no actual leverage — nothing they really want — so he exerts his dominance by turning on the forceful charm and bamboozling them.  Then he high fives his buddies afterward and rings a bell and screams or some such idiocy.  He creates leverage theater in order to secure the metaphorical kill.

“Always be leaving,” on the other hand, offers a complete leverage reversal.  When you find yourself ending an engagement or an employment tenure, you have tons of leverage.  But you usually forgo using it.  You give your notice, and the notified party often asks what it can do to keep you, even though you feel excited looking ahead to the next thing.

Read More

By

The Polyglot’s Dilemma

Few things seem as institutional to the programming world as what I call the experience tuple.  A company needs to hire someone to automate something, so, naturally, it asks the software development group to make alphabet soup for dice.com.  “We need someone with (C#, XML, HTML, JS, ASP, MVC, REST, Angular, AJAX) with (React, MSTest, Moq, CSS) as plus.”  Presumably then, polyglot applicants stand a better chance.  But I’d argue that they also face something I’ll call the polyglot’s dilemma.

Hold on to your hats, programmers, because this will get counter-intuitive before it makes sense.  With that in mind… where to start?

Problem Solvers and Problem Transformers

Well, perhaps categorizing hired software developers as problems makes for a good start.  I don’t mean problems in a negative sense, but rather in the same vein as puzzles.  A business hires software developers for some broader purpose.  Maybe they work on internal automation that reduces operating expenses.  Or perhaps they produce software sold as a good or service and add to top line revenue.

In either case, the business implicitly says “I need help increasing our profitability.”  And you show up saying the following.

I have (8, 10, 10, 4, 6, 3, 1, 1, 0) years of (C#, XML, HTML, JS, ASP, MVC, REST, Angular, AJAX).  Now while the rest of you figure out how to make use of me, I’ll be over here sharpening the saw with some code katas.

Whenever I’ve had management responsibility, I’ve subconsciously put people into two buckets.  Problem solvers take a problem I have and make it go away.  Problem transformers take a problem I have and solve it by bringing me the next problem.  (I’m omitting non-performers who don’t solve problems at all as beyond the scope of this post.)

For instance, take the problem of a malfunctioning production server.  A problem solver would go off and come back with a functioning production server, somehow.  A problem transformer would come back, report that the problem was caused by a faulty power supply and ask what I wanted to do about that new problem.

As programmers, we behave as problem transformers.  We present ourselves and our skill sets as problems in need of management solutions.

Read More

By

Turning Tech Hobbies into Side Hustle

I just dug up a tweet I made about 6 years ago.  I did this because I remembered saying it, and because it perfectly illustrates a distinction I’m going to make today.

Specifically, I’ll talk about the distinction between technical hobbies and side hustle.  And, I’ll then advocate for side hustle.  But first, the tweet.

Quick and to the point.

The year was 2013, and, during the course of yet another oppressive Chicago winter, I wanted to learn F#.  At the time, I ran an IT department as the CIO for a company, and I had come to miss writing code.  So, I took to Twitter and threatened to teach myself yet another programming language.

I’m embarrassed about this tweet, in a sense.

You might think the fact that I never wound up learning F# embarrasses me.  But no, I’ll get over that.

Rather, the undirected, goalless nature of the sentiment embarrasses me.  It does in the context of career, anyway.

Programming Hobbies

Before I go any further, I want to talk about the idea of hobbies and career.

At times, I’ve enjoyed hobbies, such as guitar playing, cooking, and home improvement, among others.  Given that I’ve historically earned my living in software development, nobody would confuse these hobbies with career plays.

The line blurs a bit with certain other considerations, however.

For instance, I could have regarded writing as a hobby for a good bit of my career.  These days, however, people explicitly pay me to write in various capacities.  This kind of knocks writing out of the realm of pure hobby for me.  And then there’s time you spend outside of work doing what you do for a living.

Let’s say, going home to learn F#.

It doesn’t pay your bills, but you can file it under the heading of “sharpening the saw.”  Sure, my job may not call for F#, but it makes me a better programmer (and, a better CIO, I guess).  So it counts as career-something.

Right?

Actually, I would now argue that no, it does not.

Had I gone home to learn F#, for the sake of learning F#, I would have engaged in a hobby rather than a career play.  You can’t just blindly count something tangentially related to stuff you do for a wage as career improvement.

And yet, we do that.  A lot.

Read More

By

Two Flavors of Technical Opportunists: Missionaries and Mercenaries

“Missionaries and mercenaries” has a pretty intriguing ring to it, huh?  I wish I could claim credit for it, but I heard about it on this podcast with Ribbonfarm creator Venkat Rao.  Apparently, entrepreneurs use this pithy phrase to make a distinction among themselves.  I’ll explain in more detail shortly.

First, however, I’d like to do a bit of explanatory housekeeping.  In the coming months, I’m going to make some changes to my life.  Specifically, I plan to wind down the management consulting in favor of creating content (products) and offering productized-services.  This may sound a little crazy to you.  It would have sounded crazy (or naive) to me up until a few years ago.  Why trade a high profile consulting career for… an unknown?  So I want to explain myself before I lose sight of the fact that I might need to explain that to people.

On “Trading Hours for Dollars”

I’ll tell a quick story to clarify.  A few years back, I’d decided to leave a CIO position in favor of consulting as a free agent (which may also sound crazy, but it worked out).  As I looked to build my book of business, I was chatting with fellow Pluralsight author John Sonmez about the jump he had made away from full time employment.  He said something during that conversation that I’ll never forget, when I asked him about how he finds consulting work.

“To be honest, I’m trying to get away from trading hours for dollars.”

When you listen to the podcasts I listen to, read the books I read, and talk to the people I talk to, you’ll hear this a lot.  At the time, however, I had never heard anyone say that.  I probably replied with something noncommittal like, “oh, that’s awesome, man.”  Meanwhile, I recall thinking to myself, “I don’t even… wat?”

These days, I completely get it.  Back then, I didn’t.  And so I want to start bridging the gap before the curse of knowledge consumes me and I just assume that everyone shares my perspective on hourly work and the corporate condition.

Developer Hegemony launches on May 2nd, and people have been asking me what comes next.  Well, among other things, I plan to pursue a line of business wherein I help support people executing their plan to achieve developer hegemony.  But before I can do that, I have some mental groundwork to lay.  And that brings me back to missionaries and mercenaries.

Opportunist Escapees

If you’ve only recently come to read my blog, understand that I mean something deeper than the dictionary definition when I talk about “opportunists.”  I explain in depth in this post, but this graphic should suffice.

Most simply, opportunists are those who maneuver their way to the top of the pyramid-shaped corporations.  The C-suite consists exclusively of these folks, but you’ll also find them at all levels of the organization.  I think of those working their way up as “ascendant opportunists.”

But wherever you find them in the corporate hierarchy at the moment, you’ll find that all of them have ceded good faith with the organization.  In other words, opportunists ascend rapidly by coming to understand the essential bankruptcy of the corporate advancement narrative.  They arrive at their positions and status through the lonely recognition that the normal corporate rules are for the idealists and pragmatists around them.  They chuckle internally, behind a careful poker face, at the notion that companies can have such things as “missions” and “values.”

If you really want to dive deep into the psyche of the opportunist, my book talks about this archetype and the other players in detail.  For our purposes here, I want to talk about what happens to these players when they exit the game.  (And make no mistake, they’re the only ones who ever do this side of retirement.)  What fates await opportunists that exit pyramid-shaped corporate life?

Read More