How to be a Productive Programmer

coding productivity Aug 30, 2019

So, you want to be a more productive coder?

Yeah, yeah, design patterns and data structures and all that are important. But the truth is when it comes to building systems those will only get you so far.

Look at it this way: a great artist knows how to use brushes and paints and tools (but typically only uses a handful in their day-to-day work), but knowing how to use brushes and paints and tools does not make you a great artist.

“Coding” is all people seem to think about these days, but creating non-trivial software in a reasonable amount of time without going insane requires four skills:

  • Organization: Non-trivial projects require good organization, naming and consistency in order to be comprehensible. Lack of organization results in lots of “hunting” for what you want and bugs from lack of clear structure.
  • Vision: It’s important to understand the vision of what the project is trying to achieve and where it’s going as well as what’s...
Continue Reading...

Agile is dead! Long live Agile!

process Aug 26, 2019

Can we get something straight?  The point of “Agile” is not dogmatic adherence to daily standup and two-week sprints.  Rather, it’s an attitude.  An attitude of being responsible to users’ changing needs and providing what’s needed when its needed.  Two-week sprints and daily stand-ups can support that but they don't intrinsically create it.

Perhaps instead of “Agile” they should have called it “Responsive” or “Reactive”.  Wait, where have I heard those words before?…

Everyone has jumped on the Agile bandwagon the past five or six years (well, not everyone), but in corporate and especially tech circles you’re scorned and shunned if you speak ill of the Agile god.  Which, come to think of it, is a whole lot like how people felt about Voldermort.

Far too often the intent of Agile (collaborative responsibility to the user’s needs built on frequent...

Continue Reading...

Four Ways to Fix the App Store

business Aug 20, 2019

The App Store has been truly transformative, and keeps getting better with recent additions like stories, demo videos, and improved discoverability making the experience even better.

However, the App Store is a victim of its own success with a simply overwhelming number of choices in nearly every category.

The simple fact of the matter is that the sheer volume of apps in the store makes it difficult to be found without an extraordinary marketing budget.

Furthermore, because employers want to see that a potential hire can actually code an app, and the only way someone can see and try an app is by downloading it through the App Store, the ranks are filled with projects that exist simply to “show off” skill rather than support an actual business.

While the egalitarian, “everyone is equal” goal of the store is noble and based on meritocracy, it has arguably led to a less equal playing field where it gets harder and harder to be successful without already being at...

Continue Reading...

React Won't Save You

coding Aug 19, 2019

Fact: React and React-Native have popularized some radically productive changes to developing complex stateful UI-driven software.

Fact: Despite the hype/promise, React will not let you develop once and seamlessly deploy across iOS, Android and Web.

Fact: Dropbox, AirBnB and other companies have given up on React and gone back to pure native development.


Before you snicker, know that I’ve been programming for fun since 1981 and professionally since 1988.  In that time the same story has played out time and time again: some “miracle” technology appears that promises to dramatically reduce developer costs, people get excited, massive investments are made, expected savings aren’t realized, disillusionment sets in and cynicism darkens the skies until another new technology promises salvation.  Wash, rinse, repeat.

In the 90's Microsoft created a cross-platform library for Mac and Windows.  Great effort, but poorly received.  OOP...

Continue Reading...

50% Complete

Two Step

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.