The tyranny of absolutes

How many lines of code make the perfect software program? Is 10 just the right number? Maybe 30,000? Is 100,000 lines too much? Or is 50,000 just about right?

The reality is that there is no absolute answer to that. It depends on the circumstance; it depends on the frame.  

Nonetheless, in software development, you’ll find the following “truisms” floating about:

  • How ‘valuable’ is this programmer? Based on the number of lines of code they completed, x
  • Is this a ‘messy’ program? Based on the overabundance of lines of code, obviously; conversely, light on lines, quick on speed (but does anyone ask on “speed to/for what?”)
  • Keep it agile, keep it relevant! Waterfall/’old’ methodologies are stodgy and prevent an ability to pivot the market/the customer

Et cetera, et cetera…the biggest problem with all of the above is that they are absolutes. They are true, at best, 50% of the time, and even so, rarely completely even true even then.

That said, I think they are valuable as starting points and they are valuable when they are taken in conjunction.

If the goal of my program is to print on the screen “Hello, World!”, if it’s more than 2 lines, tops, then it’s too much. If the goal of my program is to launch a standing platform into space, then I hope it’s more than 10 and less than ‘n’ if n represents an approach that didn’t show proper planning, requirements, and design upfront.

[If I wanted to launch a rocket, I’d prototype on a small scale, as Agile as possible, and I’d build large-scale as Waterfall as possible, because despite great new advances on science and engineering, launching a persisting platform in space requires the ‘steady-steady-steady as she goes method’ and as many ‘proven’ materials and pieces as possible; now is not the time to do ‘live tests’ – but that is just my five cents.]

What I am calling for is a meeting of the minds, a laying down of the arms from the various camps of absolutism. We are very quick, too quick, in fact, to toss old approaches and ideas aside in the acceptance of trite truisms and flash over substance, and it was okay for a while, really, because it forced so much of technology to move forward, to make a great leap forward even.

But, we’re running into wicked problems, now, and those will not be solved by:

  • brute force
  • apps
  • sticking heads in sand
  • entrenchment
  • putting on the blinders
  • bullet points

No, they will only be solved by thoughtful people doing thoughtful things and using all the tools that we have in front of us: old and new, slow and fast, non-absolute but blending, a taking of a nuanced approaches to create elegant, sustainable, and valuable solutions.

So, now, let us lay down those arms.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s