Skip to content

Instantly share code, notes, and snippets.

@samkrishna
Last active December 12, 2015 05:08
Show Gist options
  • Save samkrishna/4719594 to your computer and use it in GitHub Desktop.
Save samkrishna/4719594 to your computer and use it in GitHub Desktop.
Losing sight of the Developer's Shore....

“One does not discover new lands without consenting to lose sight of the shore for a very long time.”

-Andre Gidé

This is one of my favorite quotes, only because it so directly speaks to the exploration of substantially upgrading my software development chops.

Automation Nation

I got to spend an afternoon with Blake Watters aka Mr. RestKit. He showed me something magical, well, more like a life-changing choice, really.

For me, 2013 is the Year of Automation.

There's an entire world of automated testing and development out there, and it's barely applied in iOS and Mac worlds. I'm an old man now and I don't have the photographic memory of all the code and all the deltas I've written in a particular codebase like I did when I was 25.

Also, given how much of the world has changed since the late nineties, when I was coming of age as a Cocoa neé OPENSTEP developer, it's really quite unimaginable. Think about it: we've gone from personal computers to multiple personal computers to mobile computing to multi-core mobile computing. Right now, today, you cannot buy a app-capable Apple computer of any kind (Mac, iPhone, iPad, iPod Touch) without it containing a multi-core CPU. It's mind-bending.

So we've got all this asynchronous-capable technology, multi-core, GPU-accelerated hardware with a industrial-strength personal database in my pocket and I'm still writing synchronous code. WTF?

D.E.A.R.

At year's turn, I came up with a cool acronym that I'm adopting for all my projects and my way of life: DEAR.

  • Decisive: Make decisions and choices quickly and powerfully.
  • Executing: Once the decision is made, execute it. No second-guessing, no looking back.
  • Automatic: Automate all the processes and activities that can be automated. Put yourself on a schedule that you're already committed to.
  • Renewal: Take time to take care of yourself, your tools, and your skills. Be sure to upgrade the things in your life that make a positive difference.

For Automatic, I'm explicitly going to work with the following technology in some capacity:

I also want to use SourceTree's custom action to kick off the automated tests on the developer's side before pushing to any branch.

So much of this is in the realm of "I have no idea" that it's not even funny. That's where the Gidé quote comes into play. I'm consenting to lose sight of the familiar shore of synchronous, no-automated-testing shore for a very long time.

Why?

Love.

The fact is, I love software development, specifically the social/magical aspect of it. And I see the Automated Testing route (and Automated Processes as well) as the natural evolution. Putting in more integrity to the software I build. Ultimately, through this process, I'd like to build the kind of software for others that I'd want others to build for me if I was paying them. (Think of it as the software version of The Golden Rule.)

What I often haven't loved is my experience of it.

I have a hunch that putting in vastly more integrity by automating up the harness and the processes and the validation will improve my quality of life (and my velocity of deveopment) substantially.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment