Hacker News new | ask | show | jobs
by nl 4288 days ago
I have a rule when I make project technology decisions:

If we understand the domain and understand what we are building then we can afford to be innovative on the technology. If we are trying to be innovative in what we are building then we need to choose proven (aka boring) technology.

2 comments

I liken this to Intel's "tick tock" development approach. If they're moving to a new microarchitecture they stay on the same process, and if they're doing a process shrink they use the same microarchitecture. Working out the kinks of a new process can be done with a microarchitecture that's solid, and vice versa.

Visually: http://www.adlinktech.com/solution/img/20131121-1.jpg

New domain => use known technology.

Known domain => play with new technology.

So you choose Erlang then for highly reliable and available network applications?
I think by "proven" he's implying that it's proven to himself, that is, that he's familiar with it.

I kinda like that philosophy, and didn't realize that I somewhat adhere to it: I tend to try to keep to tools I'm familiar with when I'm solving problems that I know are new to me. It lets me focus on the problem and avoid thinking too much about the tools. But if I'm in learning mode or need to implement something I understand well, I'll often reach for a new tool just to play around with it or try something different.

Yes, this is another aspect: I think there is only a certain amount of "new stuff" the brain can absorb in a given time period. You need to choose what to use that learning budget on.
If I had a team who had built in Erlang before, then possibly. But there are numerous other platforms with a proven track record in that too.

Perhaps I could rephrase it as being conservative in my technology choices when building innovative products.