Always. Be. Shipping

This hits home. Strangely enough, I got sh*t done today in programming. But I got something done in an area completely unrelated to get motivated first. I’m gonna blog about it now.

How am I supposed to do it f***ing now ? I’m busy fighting software imprinting !

I think the real key to being the best programmer you can be is a combination of balance and focus. Balance in life is important so that focus is possible. Burnout kills the ability to focus, so while a coding binge can be very productive in the short term, the burnout after will offset that productivity tenfold in the following days. (sometimes it’s neccessary) When it’s time for work, focus on the task in front of you and let nothing distract you. Now, that’s not as easy as it sounds - even for a true geek that loves to program! It’s bad enough to have a bunch of talkative people around you, but what’s worse is the internet! Imagine being a programmer 20 years ago. You login to your computer, which is likely not connected to anything. All you have in front of you is your work. Furthermore, back in the day you couldn’t slouch around coding with the JDK or .net framework… You had to really know your sh*t and get a lot done to do simple tasks!
The other day I disconnected myself from the internet to see if I could do my job without it. Surprisingly, I could do amost everything because I have my webserver and databases running locally. One funny thing I noticed is that I kept going to the Browser/Mail shortcuts in my quick launch bar. It’s amazing how addicted I am to email, news, blogs, and the internet. I must waste hours every day on that crap. What the hell am I doing here! I’m supposed to be working. AHHHH!

Jeff, great article as usual. One thing though, we need Pundits. your description of a Pundits is quite accurate.

But

A pundit serves almost like a “fluffer.” While they don’t do anything themselves, they provide the background noise that may inspire DOers.

Btw I’m redoing my site, will need your critics soon.

Great article!!! Let’s get out of the Uber ivory tower and down in the trenches!

My first job out of college we spent days talking about the open source revoloution and how it applies to java. We should have just been building software and maybe people wouldn’t have lost their jobs.

Code for fun and profit!!!

Do or do not. There is no try.

Or as Steve Jobs said:

“Real artists ship”

I guess that’s why the rumors say he can chew you up and spit you out quickly and easily. He probably has no patience or sympathy for people who “talk a good game,” but don’t have a track record of accomplishments to go with it.

A pundit serves almost like a “fluffer.”

A disgustingly apt simile…

I’ve deployed about 15 incremental releases of our software this year. I guess I rock.

Great Post !! Heard the advice a million times before… but the word “f**king” really DOES add that little impact.

Yes, you pundit :wink:
Blabbering impresses yourself first.

But if I’m so busy programming I won’t have time to read your blog…

Why the asterisks?? Say what you mean!

Fast, cheap, functional. Choose two.
or
You want it right or you want it Tuesday? Choose one.

I read this blog entry and thought “Crap, what am I doing with my life? I don’t want to end up like this guy.”

Then I read David’s comment, and remembered what I am doing with my life…

Ramiro Polla

Some people have bad attitudes, some have can-do attitudes (I can do it if everything lines up for me), while others have what I like to call a WILL-do attitude. They will do whatever it takes - regardless of the obstacles - to be successful, get the job done, yada, yada.

love it

My company loves to swirl endlessly in what Steve McConnel calls the “fuzzy front end” of projects. We do much better when we dive in and deliver, even if the first delivery is off what the users really want. By the second iteration, we’re almost always really, really close.

After months and months of fuzzy front end, we still end up with the first iteration being not even close, and the second quite a bit closer. So what’s the point of all those endless discussions, anyway? Keep BAs employed?

Now I ralize people might see this differently, but for me, “Do it right” simply means one thing: Do not sacrifice maintainability in the name of getting stuff done faster.

Sure, you might get something out of the door in less time that way, but generally, correcting design flaws later on (Especially with people already using your code) will be a major pain in the ass, and in the end, you will end up spending more time on something than if you had just given it a little thought beforehand or if you had just thrown out your codebase and started over. That’s not to encourage Duke-Nukem-Forever style perfectionism, but if you do at some point realize that the way you are doing things is clearly flawed, don’t try to hack around it: Go back and do it right.

Remember: You will spend more time supporting your app than initially writing it. Don’t make your life harder than you have to.

Love these tough talk sequences, but they don’t tell you what or how to do much of anything. :wink: However, it’s good advice to get people moving in the right direction.

A parallel that I’ve carried with me since first working in technology in a production environment:

  1. Make it work.
  2. Make it work right.
  3. Make it work better.

… but first, make it work.

Also, I’m surprised no one has referenced the phrase “do the smallest thing that moves the needle,” which is how I’ve most frequently heard it expressed in and around the Valley.