Wednesday, January 1, 2014

A technical explanation of Bitcoin

How the Bitcoin protocol actually works



My aim in this post is to explain the major ideas behind the Bitcoin protocol in a clear, easily comprehensible way. We’ll start from first principles, build up to a broad theoretical understanding of how the protocol works, and then dig down into the nitty-gritty, examining the raw data in a Bitcoin transaction.

Many thousands of articles have been written purporting to explain Bitcoin, the online, peer-to-peer currency. Most of those articles give a hand-wavy account of the underlying cryptographic protocol, omitting many details. Even those articles which delve deeper often gloss over crucial points. My aim in this post is to explain the major ideas behind the Bitcoin protocol in a clear, easily comprehensible way. We’ll start from first principles, build up to a broad theoretical understanding of how the protocol works, and then dig down into the nitty-gritty, examining the raw data in a Bitcoin transaction.

Understanding the protocol in this detailed way is hard work. It is tempting instead to take Bitcoin as given, and to engage in speculation about how to get rich with Bitcoin, whether Bitcoin is a bubble, whether Bitcoin might one day mean the end of taxation, and so on. That’s fun, but severely limits your understanding. Understanding the details of the Bitcoin protocol opens up otherwise inaccessible vistas. In particular, it’s the basis for understanding Bitcoin’s built-in scripting language, which makes it possible to use Bitcoin to create new types of financial instruments, such as smart contracts. New financial instruments can, in turn, be used to create new markets and to enable new forms of collective human behaviour. Talk about fun!


Read More 

Yet another missive on how to build great products....

How to build great products



...three buckets to categorize any given feature:

A gamechanger
People will want to buy your product because of this feature.
A showstopper
People won’t buy your product if you’re missing this feature, but adding it won’t generate demand.
A distraction
This feature will make no measurable impact on adoption.
If you believe that sales fix everything, it follows that most startups fail because they don’t ship a great product in a growing market before they run out of money. Assuming you’ve picked an explosive market, how do you go about building a great product?

Building great products is hard, but the difficulty is greatly exacerbated if you have no good model for analyzing products and features. Without a model you’re left with a never-ending stream of feature ideas and half-informed shots in the dark. Some people can pull this off because they start out with a phenomenal product intuition. But most people aren’t blessed with this superpower on day one..


Read More 

Some thoughs on the Freemium Model

The Anatomy of Profitable Freemium



Choosing the freemium business model can be brilliant or deadly. The difference lies not only in the execution of the marketing, but also in the nature of your product and the design of your business. Can you coordinate all three to become sustainably freemium by making a profit?

Summary:
  • Freemium requires a business to maintain two value propositions with a well-designed interaction between the two.
  • The premium offering can deliver different kinds of value. You should choose the most profitable one you can under your constraints, which best fits the value your product delivers.
  • Using a free car analogy, the kinds of premium value (types of freemium) include: Cargo Freemium, Airbag Freemium, Bomb Freemium, Cruise Control Freemium, and Bells & Whistles Freemium.
  • Each type of freemium has unique risks as well as market and funding requirements in order to be sustainably profitable.
  • Any of these types of freemium can be implemented poorly. Some types may not work with your product. Correctly implementing any of these types of freemium requires a deep understanding of the value of your product.
  • Entrepreneurs should be convinced that freemium is the right choice for their product/market, choose their type of freemium out of knowledge (not fear or ignorance), and re-evaluate this decision regularly.
  • Freemium can be extremely beneficial for gaining market share, but if it can’t create sufficient conversions to a premium offering, it isn’t sustainable.

Read More 

Interesting thoughts on software maintainability

The myth of maintainability



"Will this be maintainable in the long term?” - a comment on every code review ever

I have an allergic reaction to this question. It is often used when Developer A wants to add a non-trivial component to the codebase. The room (or code review) will always have Developer B who springs up the dubious concern of maintainability. Proceed with caution.

What do we exactly mean by maintainability as developers? Will the code be easy to understand for the next person to read it? This is readability, which could be seen as a factor in maintainability, and is valid. The more pressing interpretations tend to be along the lines of extensibility, abstraction, and hand-wavy higher level design or architecture.

The problem with the latter interpretations is the possible misunderstanding of why we write software. Software exists to drive a business need, add business value, and in the end — generate revenue. Let’s not waste time (and these discussions usually end up just wasting time).


Read More