more info ⬇

@amattn

subscribe for the best
iOS code & business tips:

iOS, server tech, and the business of software



2014 04 23

Developer Catnip

At some point, nearly every new datastore, programming language or pre-launch platform has been placed on a pedestal of glory somewhere on the internet. These glory stools often show the tech enveloped with rays of sunshine and perfectly placed drops of morning dew highlighting the ideal surface. Every new tech needs promotion to flourish. Yet indiscriminate adoption of solutions that seem relevant to your pain points typically results in that feeling you get when you bite into a warm soft chocolate glazed donut with rocks inside of it. The short-sighted lusting of new hot tech ends up resembling some infernal combination of The Grass is Greener syndrome and blind faith pseudoscience.

It could also be reduced into a somewhat destructive form of optimism.

Your knowledge of your own toolset includes all the warts and melancholy involved with the realities of software development. The difficult-to-source internet quote: “comparing your behind-the-scenes with other’s highlight reels” comes to mind.

When we believe that a new tool will solve all our problems, we fall into the trap of optimistic information asymmetry. We read the blog post or listen to the 45-minute conference talk on how successful a person was in a specific situation, but rarely do we get an equally detailed and realistic discussion on the slope of their learning curve, the anti-patterns or the other myriad of pitfalls.

What does this mean? Should we never use new tech? Of course not. Otherwise, we would be using giant stone pillars for calendars and writing webapps via CGI scripts in perl.

Skepticism, not Cynicism

Optimism is critical to making progress in the face of incomplete information. However, it must be tempered with a healthy dose of skepticism. It is equally important to avoid the pitfalls of cynicism. The Skeptic’s mind can change in the face of evidence. The Cynic is just a narrow-minded pundit who thinks everything sucks.

Remember that unless you are hunting werewolves, there are no silver bullets.

Do your due diligence. Look for that evidence. Allocate time and manpower for research. Talk to experts or other people who have used the  catnip   new hot tool/language/environment before. In the age of Twitter, you can usually talk to the people who made the new hot thing.

As the evidence and your familiarity grows, start with small trials of isolated components. Don’t start a company and broadly proclaim that technology X will be the foundation of your new empire – unless you are competing with whatever I do. In that case, please do so. I also have more hot technologies you should know about.

Lastly, always factor in the risk/reward ratio for any new tech. Do the calculus on age, reputation and usefulness of the project. Use your best judgement. Measure the after-effects and don’t be afraid to change course.

Don’t skip the measure part. It is unequivocally the most important part of the feedback loop. Your job is not to use the hot tool - your job is do the best possible work you can.

The internet laughs at the world’s drug-addled cats, not with them. Don’t be a drug-addled cat developer.



recently on amattn.com:

2014 04 21 〜 Notes on Chapter 1 of Authority by Nathan Barry

2014 04 02 〜 Useful Objective C Macros

2014 02 11 〜 Thoughts on API Design

2014 02 04 〜 Better Apps with Clang's Weverything or Wall is a Lie!



greatest hits of amattn.com:

2011 12 07 〜 ARC Best Practices

2013 04 22 〜 Weighted Credit Pools for API Rate Limiting

2012 05 29 〜 You Should Foster a Culture of Readability

2011 11 16 〜 @amattn on iOS Prototyping

2011 10 15 〜 The Disposition of Objective-C




the fine print:
aboutarchive@amattn
© matt nunogawa 2010 - 2014
back ⬆