My 5 Best Things About Being A Developer

This is for John

1.  Thinking on Your Feet

Few people might call analysis an art, but it is — ask any developer. When you have to come up with a way to fix a train when its moving along the tracks (patch a broken, already released product) , you learn fast how to think on your feet.

Another way to put it: when you develop software, over time, you begin to restructure your thoughts so that almost any inquiry can fit inside a formalized optimization problem.  It goes something like “What is the ideal way to handle this?” After answering that question in the multitude of ways its presented developing software, the programmer literally has learned optimized internal methodologies. This in turn further improves how they handle future analysis.  And before long like rolling lava, this optimized way of thinking covers all things and creates a new mental landscape. Smarter… Faster… Stronger…

Except maybe as an acrobat on the high-wire, few other jobs will provide such powerful training with thinking on your feet.

2.  Mastering Discovery

Developers need a lot of other software tools for making software.  And they are without a doubt the very definition of power user when it comes to how most of those tools were designed to be used.  So its often that a developer will discover a bug in the very tools used.  What so great about that?

These instances teach you discovery! They teach you how to remain skeptical and studious, so that one day from learned proper analysis, you are astute enough to see such problems coming down the pike and perhaps inspired to deal with things differently in your own creations– all gratifying..

Sometimes though, there is just no more instant a form of gratification than being first.  First in line.. first to make it home– first to find a problem.  Mastering discovery means just that, being first when it comes to finding (and if possible solving) problems.  But, it also means being a developer sometimes comes with all the gratification and arrogance of approaching your SAT proctor and saying suggestively, “Excuse me, sir.  I think you’ve gotten this question wrong.”

3. Being In-Demand

Lets face it, we’re surrounded by technology.  And one of the best things about being a developer — being a technologist — is simply the fact that right now, every one needs you!  Mostly due to the truths surrounding #4 on this list.

4. Making it Look Easy When its Not

One of the best things about being a software developer, is that we’re usually able to make it look incredibly easy given what the heck we’re actually doing.  We type some jumble into some window on our screen and suddenly, we can all socially network on the web;  communicate and search based on geographic location; blog about our day; become closer to one another and the information that binds us to one another.

To draw a metaphor other developers might need concrete, nails, hammers, sheet rock, a giant truck to carry it all and the laborers. Not us; a desk if you got one otherwise our lap will do and these days the obvious Internet connection, is pretty much all we need.

The reality is though, our job — software development — is intensely challenging, making the success all the more sweet albeit not so easy to share.

5. Making Friends/Solving Problems

Then there are times you can share it.

One of the most true statements about sociality with people is that shared trials and tribulations can bring people together more smoothly and easily than most other sets of circumstances.  The effort to share survival is an ultimate and immediate trust-builder.

When you and your co-worker manage to save the company $100,000 outage, keep some cracker from making it all the way into some critical system, find a faster way to complete some business process, or even just provide a friend a URL that makes their personal lives easier somehow, you’re making friends,  solving problems.  You’re contributing to something that is truly the masterwork of every developer: a unified framework for solving problems, creating a better perhaps less hectic life for everyone.

5 Most Ridiculous Things About Being a Software Developer

I read a rather enticing post from some other blog entitled 5 Best Things About Being a Developer. This post was enticing in that it was so shill, I could think to do no other thing in response to its content, than write: 5 Most Ridiculous Things About Being a Software Developer.  Apparently, the author had a few of his 5 Best Things happen the day he wrote it  up — how quaint.  These items I’ve scribed below are however, the things that happen to us software developers every day and are not quite as inspirational.

1. Writing Code That Works The First Time Maintaining Code That No One Wants to Exist

You know that script/program/library/object/method that you and your boss both hate.  It rears its ugly head time and again; it ruins perfectly good days.  No matter how many times you try to explain the need to scrap the code involved, no one’s interested.  Its either too time-consuming, too costly, or my favorite line of all time: “It opens us up to too much risk.”   That line should be followed by the Office Space-famed “Riiiight” every time its used.  Imagine how insane it would be if we took that perspective on any other facet of innovation: “Automobiles!?  Oh, no.  We’re sticking with horses.  That opens us up to too much risk!” From a standpoint of business and innovation, and considering this logically (heaven forbid), isn’t it much more risky to have technology running your operation where change is too terrifying a proposition?

I guess what most people don’t realize is risk is success — taking risks is what teaches you things — or as the Zen aphorism goes: The obstacle is the path.

2. Finishing a Project Never Feeling a Project is Finished

Oh, its done alright — just about, anyway — just that last 10%.  Its in the “Shoelace Phase” as I like to call it. The whole shoe is there but that leaves that last part of tying the bow.  Then, quite suddenly, someone not even involved with the shoe realizes something is missing among the myriad not-physically documented requirements, and you, Shoemaker, are back to the beginning.

Most software projects fail in just such a way, as they fail to collect accurate requirements which determine the necessary state of a release candidate.  Worse, if such a final state can be determined, the expectations of that state are rarely appropriately managed, resulting in end-user’s who feel surprised or unsatisfied with the final product; more relevant, a developer who is surprised or unsatisfied with the final product.

3.  Optimization / Re-Factoring / Reducing the # of Lines of Code Bloating / Re-Inventing the Wheel / Needlessly Increasing the Complexity of the Lines of Code

“We need something to get a file from A to B.”  You offer to use a transfer protocol and an existing transfer client.  But, no.  Thats rarely reasonable or robust enough. The route everyone loves is: E-Mail!  So, you bloat your own e-mail client that is a transfer protocol client by the time your done.  Lovely work, I suppose you could mark that under #5  — “Learning Something New and Useful.”

Of course, the only excuse for those kinds of software development sensibilities is a hefty amount of time spent smoking crack.

“Thats going to take re-factoring, perhaps re-design… ” Very common words of the software developer.  How about at least one common response? “Nothing takes a re-design, come on! Just build your more advanced (in other words, your system with a more accurately recorded set of requirements) on top of the old system (the system with nearly no recorded set of requirements that only exists in motion).”  In laymans terms:  Build me a train that runs on eggshell tracks while its on its way to its first stop — I’ll be in the back adding cars, so hurry up.

4. Seeing Marketing For a Product You Work On

As many times as this happens, I can not resist informing whoever is nearby that the entire product came about because a few people scribbled some things down on a napkin and handed them to me on a Monday morning (and told me to “be creative”).  Nor can I ignore the urge to explain precisely how much money they are making off each individual sale and how little they took into account the potential customer. The few times I’ll keep my mouth shut in these types of instances, are when the product is in fact so piss-poor there is no reasonable way to explain my involvement while at the same time absolving myself of having been a part of such worthless engineering.

Any one who sits there cheering proudly is the kind of fan-boy who does that no matter the nature of the product.  For developers, critique is king.

5. Learning Something New & Useful Ignoring Best Practices For Irrational Reasons

Remember all those wonderful things you learned in your first few projects?  Good, cherish them.  The rest of the time you’re going to be told there is little time to make use of them; no time to develop test cases; no time to actually write down requirements; no time to discuss certain aspects of certain features with the actual users; no time to explore that experimental way of filling this need, only the same-ole’ broken ways they’ve learned to accept so far.

Remember the insane look you got when you suggested making a web form to replace executing business processes through specially constructed, shared E-Mail messages? Remember how they told you The Web was just a fad?

The Anatomy of a Subway Hack

For years people have learned from hacking — its the most ancient human art. But, it seems the US has slid so far from its foundation, that now the sheer construction and presentation of information can within itself be considered in some way criminal.

A judge acting as thought-cop told 3 MIT students they were not to discuss their latest hack. Since the halt order, the availability of the information in the presentation has fluctuated. Decius makes mention of the evolving legal manifestation on Memestreams.

I believe information like this ought to be free, and so: a complete form of the content of the halted Defcon presentation is right here (in PDF format). Enjoy.

Well Adjusted to a Sick Society

Lyrics: Pink Floyd - Keep Talking (Samples)

For million of years, mankind lived just like the animals.  Then something happened, that unleashed the power of our imagination — we learned to talk…

It doesn’t have to be like this, all we need to do, is make sure, we keep talking.

The Book of Jordan

I want to be a writer one day, and so, I must practice. I realize its possible to conclude myself a writer given this blog. That won’t suffice though, dear reader– its not True. I’d like to be someone who writes well. No, that too is not an entirely True way to explain my goal, dear reader. I must strike True with this, so that you know what being True is all about. What I want to be… is the story-teller.

You know the story-teller; the story-teller speaks clearly but often parenthetically. He motions at times with a scarred or wrinkled hand, reaching for a pocket full of magic or to separate himself from his nicotian and billow smoke — in his mind, the history of the world swims beset aside the long lost decades. Perhaps still  though, admist the madness, a few pearls of wisdom exist to share, if only you’ll listen.

He always begins, by clearing his throat, dear reader– and that is what this is. So, without further self-indulgence, I offer…

The Book of Jordan

Read the rest of this entry »

Today’s S3 Crash is Tommorow’s Gloom 1.0, & Later, the Birth of the Grid

One day, all our computational abilities will flow, as electricity does, into every home, carrying with it the full force of the entire orchestra of functionality on the Internet — it will cease to be the Internet and become the Grid.

A prediction inspired by this...

Read the rest of this entry »

Great Atheism

Religion is the opiate of the masses. - Karl Marx

Religion does three things quite effectively: Divides people, Controls people, Deludes people. - Carlespie Mary Alice McKinney

An atheist is a man who has no invisible means of support. - John Buchan

I contend that we are both atheists. I just believe in one fewer god than you do. When you understand why you dismiss all the other possible gods, you will understand why I dismiss yours. - Stephen Roberts

In Christianity neither morality nor religion come into contact with reality at any point. - Friedrich Nietzsche

Atheism leaves a man to sense, to philosophy, to natural piety, to laws, to reputation; all of which may be guides to an outward moral virtue, even if religion vanished; but religious superstition dismounts all these and erects an absolute monarchy in the minds of men. - Francis Bacon

Calling Atheism a religion is like calling bald a hair color. - Don Hirschberg

The God of the Old Testament is arguably the most unpleasant character in all fiction: jealous and proud of it; a petty, unjust, unforgiving control-freak; a vindictive, bloodthirsty ethnic cleanser; a misogynistic, homophobic, racist, infanticidal, genocidal, filicidal, pestilential, megalomaniacal, sadomasochistic, capriciously malevolent bully. - Richard Dawkins

Which is it, is man one of God’s blunders or is God one of man’s? - Friedrich Nietzsche

Romans 13

God.  Religion.  And all those poor, witless dupes taken in — these are a few of my favorite things! I’m kidding. While I do despise organized religion, that does not automatically mean I have a problem faith. I make this clarification because people will likely assume I believe faith — along with religion — is useless. When the fact is, such a characterization could not be further from the truth.

Its important to make clear that, I’m not saying anything about faith when I talk about religion. That those are two entirely different things.  And though its somewhere in the really boring middle, that the Bible covers this particular topic.

Read the rest of this entry »

Being Weird

Sometimes, I do not fit in with ‘the crowd’. And even though I understand my misfitted social standing better than most, it is a problem in my life as untamed as the very seas that surround me. Its a truth that perpetuates simply because I will not offer up my will to those almost automatic processes in my brain that say ‘just rely on altruistic fairness’.

What in the holy hell does that mean? Well, allow me to explain.

Other people seem to talk about their life as if like some shape, they have always been made just so, and managed to fit into some designated place. These people consider that they have always been right where they belonged. Sadly they are unaware, that this constant is a trick played by the mind. Implemented to keep people (most of them anyway) emotionally stable. This emotional counter-balance can only be described with two words: altruistic fairness.

Altruistic fairness as a measure, is exactly how the mind makes you accept whatever it is you end up with, and it is also what keeps you from trying to set the world on fire, if what you end up with substantially less than desired. The mind does this and other things through a complex process which has been re-enforced your entire life; activities learned all too soon become behavior.

For instance, If you were shooting for a $500,000 house, and end up with a house worth $250,000, almost immediately, neurological activity takes place that quite literally re-writes your preferences. You will now consider the $250,000 option to have been not only just as well, but better (and why not? its YOUR house — that too is part of the trick, just because this particular house is YOURS its better, it now shares all your ‘goodness’). You’ll ponder on how much closer it is to places you like to go. Maybe its near relatives. Its certainty much better than a house worth $100,000, you’ll reason. Besides, you had fallen in love with this particular house’s in-ground pool…

Did you really though? The answer was an obvious ‘no.’ But now, its, ‘of course’. Altruistic fairness provides guidance in this way and would act to make you feel great with whatever you ended up. The mind protects itself from being overwhelmed from any sort of consistently negative observation (as part of the survival instinct), it is achieved in the simplest and most economic way — through the measure of things under the scopes of altruistic fairness, we change what we fundamentally believe was best; we change our mind.  The facts however remain unchanged.

When I see this, I tend to immediately denounce it. Only because I hate to see someone allow such a simple mechanism stop them from the greater goal. For all the good it does, this leverage of altruistic fairness perhaps, is the greatest of human flaws. And as I sit there watching, writhing in unutterable anger at these people, I wonder: How few are we — those of us being weird — that look beyond our own sorted programming, and try to find the world hidden under our cheated senses, conceived within a mind full of lies?