Gimli, son of Gloin, on software development

How to measure the productivity of a software developer has been an ongoing debate for years.

They studied professional programmers with an average of 7 years’ experience and found that the ratio of initial coding time between the best and worst programmers was about 20 to 1; the ratio of debugging times over 25 to 1; of program size 5 to 1; and of program execution speed about 10 to 1. They found no relationship between a programmer’s amount of experience and code quality or productivity. (Steve McConnell, Rapid Development)

Imagen de Legolas y Gimli en la peli de 1978

Gimli le explica a Legolas la vida del programador

From the number of lines of code written to assigning function points to each part of the code depending on complexity, there is a whole set of proposals out there.

Consider both points above together – your coworker codes 25 function points in one day, but they’re all simple validations (if text box “a” is not a date, throw an error…)

In the same day, you stared at the screen for six hours, whiteboarded a lot, then rewrote one line and deleted fifteen other lines, making a major part of the data processing engine faster by two orders of magnitude.

So he wrote 650 lines and 25 function points, you wrote *negative* fourteen lines of code and no new function points.

Who’s “better” ? (Joel On Software Forum)

J.R.R. Tolkien, in The Lord of the Rings,  was so kind as to take some time to explain, through the words of Gimli the dwarf, the most complex and marvellous part of a software developer’s work.

We would tend these glades of flowering stone, not quarry them. With cautious skill, tap by tap – a small chip of rock and no more, perhaps, in a whole anxious day – so we could work, and as the years went by, we should open up new ways, and display far chambers that are still dark, glimpsed only as a void beyond fissures in the rock.

Embed purpose beside the goal

Every project, every plant, every firm has one goal.

So this is the goal: To make money by increasing net profit, while simultaneously increasing return on investment, and simultaneously increasing cash flow.

Eliyahu M. Goldratt.

Sometimes you don’t agree with the goal. Sometimes you don’t understand the goal. Or even you don’t know about it.

But whether you are aligned with the goal or not, you can always work beyond the goal. You can always embed purpose on the project. On your work.

What is purpose?

Purpose is not the goal. Is beyond the goal. And it touches everyone involved in a deeper, more personal way.

mike-tysons-punch-out

Mike Tyson’s Punch-Out was a milestone on videogame development.It probably fulfilled its goal.

But the people working on the game also instill purpose into it by inserting an inspiring declaration from world heavyweight champion Mike Tyson into the box.

punchout_advice.jpg

Quitting is for people who are not serious about their goals. If you give up trying, you will never achieve your goal.
Mike Tyson.

Maybe you can’t choose the goal of your project. But you always can choose which kine of purpose you instill on it.

Fast vs Cheap vs Good and the Covey Quadrant

GOOD CHEAP FAST: You can pick any two

As the sign says, you can offer three kinds of service:

  1. Good and Fast (and expensive)
  2. Good and Cheap (and slow)
  3. Bad, but cheap and fast

The sign says you must choose one of the three. Please, don’t.

If your company needs to be able to keep pace in the long run, if you want it to be a great place to work in, you simply CAN’T AFFORD the cost of offering cheap and fast BAD service.

Bad service will give you angry customers in the long run, when they’d forgotten about how cheap and fast you were, but everyday remembers how bad you were.

Fast and cheap is easy to do, as long as good is not a requirement. Besides, there always be one competitor out there who is willing to offer cheaper and faster bad service than yours.

By the way, here is Stephen Covey’s matrix.

sin-titulo

Quadrant 1, the important and urgent things, is what allows you to serve good and fast.

Quadrant 3 is representing cheap and fast service.

Nevermind about point 4. Just don’t do it.

Finally, quadrant 2, non urgent and important things, is what will give you the chance to offer good and cheap (in the long run).

coveygoodfastcheap

What quadrant of the matrix are you willing to live your life into?

Winning is overrated

OK, Jason. Failure is overrated.

The lessons learned from doing well give you a better chance at continuing your success. (Jason Fried, signalvsnoise.com)

But winning is too.

Sometimes you have no other option that losing. Your competition is far stronger than you. You are an amateur playing against a professional. You are in bad shape this season or in a wrong mood today. Or you don’t have enough experience… yet.

You are going to lose. But you won’t get shaper, nor stronger, you won’t reach pro level, nor acquire enough experience just by quitting.

Sometimes you just need to lose, and losing while making your best effort is far better than winning by default.

Ride the quality roller-coaster

You’re absolutely eager to keep the quality level of your product. If you aren’t, all the things I’m going to say don’t really matter, because in a few years your product will become a failure or you will have left your current employer.

So if you continue reading, I will suppose you’re absolutely determined to keep the quality above standards. Period.

Ok. You’re not going to play with quality. But there are three other variables around you need to deal with:

  1. Cost
  2. Functionality
  3. Time to market

Imagine this three variables as the base of a pyramid. Quality is the top of this pyramid. And we’ve just said you’re going to keep this pyramid as high as needed.

So every time you are told to reduce costs (e.g. less people in the team), to increase scope (e.g. you need to add some new thing your product needs to do) or to speed up (e.g. it needs to be done for the next fair), the shape of your product´s pyramid changes.

But remember. Quality is the top. And you’re riding on it. Each time you adjust one of the three (cost, functionality, scope) you will need to adjust at least another one (probably the two of them), because if you don’t, the fourth (quality) would be the one that suffers.

Every time some sort of manager, client representative, sales guy, whatsoever, asks you to change cost, functionality or time… don’t ever say yes, until you’ve decided which one of the other variables is going to compensate for the impact of the changes.

 


 

Related

Beppo Roadsweeper and the state of flow

You see, Momo,’ he [Beppo Roadsweeper] told her one day, ‘it’s like this. Sometimes, when you’ve a very long street ahead of you, you think how terribly long it is and feel sure you’ll never get it swept.’
He gazed silently into space before continuing. ‘And then you start to hurry,’ he went on. ‘You work faster and faster, and every time you look up there seems to be just as much left to sweep as before, and you try even harder, and you panic, and in the end you’re out of breath and have to stop – and still the street stretches away in front of you. That’s not the way to do it.’

When there is too much work to be done, you don’t need to hurry up. You need to slow down. You don’t want to arrive late because of the shortcut you tried.

[…]’You must never think of the whole street at once, understand? You must only concentrate on the next step, the next breath, the next stroke of the broom, and the next, and the next. Nothing else.’
Again he paused for thought before adding, ‘That way you enjoy your work, which is important, because then you make a good job of it. And that’s how it ought to be.’

A focused work is enjoyable.

[…]’And all at once, before you know it, you find you’ve swept the whole street clean, bit by bit. What’s more, you aren’t out of breath.’ He nodded to himself. ‘That’s important, too,’ he concluded.”

Finally, a focus work is productive in the short run and even more productive in the long run.

When you are trapped by tons of work to be done, divide the task, prioritize, let you fall into the state of flow, and do and celebrate on each step. And then repeat.

 

Related:

Quote on passion on working

I’d say that, if you want to be successful and make a real contribution to the world, you have to be intrinsically motivated by the work you do, and you have to feel good about spending your days on it. Love might grow–and it’s a wonderful thing if it does–but you don’t need it up front.

The Fallacy of ‘Love What You Do’, Jason Fried, Inc.com

While professionalism and interest are enough for a new hire to succeed in a new position, and professionalism and interest could develop passion in the end, if you can find passion, profesionalism and interest will follow. Not necessarily the other way around.

Related: Interest + Professionalism = Passion