Live data from Hacker News

Ask HN: How do you sell in a new programming language?

news.ycombinator.com

21–30 of 47 posts

Re: Ask HN: How do you sell in a new programming language?

#21
post #12

One 'argument' that people don't often think of is recruiting and hiring. I recruit for many companies, and the level of applicants I receive for jobs in the more emerging language communities is well above the applicants I usually get for more traditional languages. My evidence is anecdotal, but when I posted Clojure or Scala jobs (and recently Go) I received fewer applicants! but almost all of them were highly qual…

My evidence is anecdotal, but when I posted Clojure or Scala jobs (and recently Go) I received fewer applicants! but almost all of them were highly qualified engineers with very impressive track records. The applicants also come from all over, because of the novelty of the jobs. Java jobs tend to get local candidates, but a Clojure job gets applicants worldwide.

My observation (at a Baltimore company) was the exact same. When you post Clojure job ads, your pool becomes national and get rock-solid people who'd be top-2% in the Java pool. The difference is night and day.

The location is a disadvantage, except for local candidates. (There is a lot of talent in Baltimore-- more than you'd think based on the city's reputation-- but the set is small and quickly exhausted for a larger company.) Great programmers who don't mind using Java or C++ have moved on to hedge funds or upper management in the Valley by age 30. Convincing them to take a risk on a geographic move won't happen. The Clojure pool is national-- there are some really great people who will take that risk if you can promise them full-time work in their preferred language. (Being able to make this promise is rare.)

That said, as a sell to upper management, this argument tends to be unsuccessful in my experience. It is 100% true. But the way it sounds is, "People who like the same languages as I do are way better." You can probably understand why managers are skeptical of that claim-- as true as it is.

What's happening in software is that, because 90% of the work in the industry is mindless, ticket-munching bullshit (CommodityJavaDrone stuff) the top programmers are all finding ways to distinguish themselves-- this is something you have to start thinking about by 28, and you have to have a path by 32, lest you be confused for a CommodityJavaDrone and be put on bullshit work (in which case you'll be flushed out by 40)-- as "too good" for junior-level, predigested grunt work. Some become "Data Scientists" or "Machine Learning Engineers" or "Research Engineers". Some learn a lot of nontraditional languages (Clojure, Haskell, Rust). The few who have the connections become startup founders. Others get "special" engineer titles in big companies (Principal Staff Architect XIV). You won't get anyone good (meaning top 5%) over 30 unless you can establish that the job is "special"-- that they won't be lumped in with regular ol' engineering plebes who have minimal autonomy and are basically there to do what they're told-- but managers see that price of talent as a political risk they'd rather not take. It's hard to address these sociological facts (as one of those "older" (30+) top engineers) without coming across as an arrogant twat. The CommodityJavaDrone engineer mentality is borne of a managerial misconception that those older, top engineers aren't needed, that one can just hire college kids on the cheap and mash them together as if they were all the same... but it's completely wrong. A tech company rots if it can't get top talent.

Re: Ask HN: How do you sell in a new programming language?

#22
post #15

The same way you sell a business anything else: it will raise our revenues and/or decrease our costs. Rather than saying "We should reimplement our core products in $FOO" you can often achieve the result of using $FOO while hitting less resistance by implementing one-off projects or support systems in $FOO instead. e.g. I worked at a Japanese megacorp and, despite us being a Java shop, one of the sales guys sold a cu…

This. Node.js and Rails are sexy right? Show your boss how. Do a video screen capture of the time savings you get. Also, execs like what we used to call "The NASCAR Slide™" - which is a presentation slide with all of the logos of companies who use those technologies. The more Fortune 500 companies, "the faster your NASCAR car goes".

Pro Tip - Just give them his link http://www.walmartlabs.com/

Note - Be prepared to have the ugly discussion around support and ecosystem. These are arguably the biggest cons to "newish" frameworks. The problem for any technologically lagging organization is that they don't have the resource (both human and capital) to support change.

Re: Ask HN: How do you sell in a new programming language?

#23
If I were in your shoes, I would spend some time trying to research why your company is actually resistant to change.

Some managers are extremely resistant to change because they work in organizations with extremely vertical power structures. Consequently, they know that even if they think it is a good idea, they are going to have to sell it to 15 different people and get each to sign off on it. In some organizations (government is an excellent example), a manager would have to write a report to get permission to write a report investigating a new technology. In organizations like this, experienced people (aka - management) generally have horror stories about the time they spent three years getting permission to upgrade all the computers to Windows ME...

That brings up another reason that some organizations are resistant to change. When the kinds of people who read Hacker News think of a new tool, they're usually excited. People like us equate change with learning and improving. Consequently, change is an adventure. Unfortunately, end users don't always feel the same. For these types of users, "IT change" is synonymous with "pain and torture". Consequently, getting permission to use a different tool is usually only the first step. When you actually implement the project, you get to deal with six weeks of whining, followed by another four weeks of training extremely resistant people. And then, for the next several months, every problem on earth is 'the new system's fault'...

And then, there are the sales people. Many managers have horror stories where a sales person convinced them that this great new system would do A, B, C, D, E, and F. Unfortunately, once the system is implemented, lo and behold, the system barely does A and B. If you've ever been through a situation like this, you'll be extraordinarily resistant to any new solution.

Once you know a little more about why your company is resistant to change, you'll be in a better place to make a decision. Maybe you work for a giant, monolithic entity that changes about as fast as granite erodes. In this case, you might have to decide whether you feel comfortable in a company like that. Or, maybe your direct manager got burned by a new tool and is forever paranoid. In a situation like that, you'd be better off implementing a one-off project with the new tool and proving that your solution actually works.

The general advice in situations like this is to show that a new tool will have a positive return on investment. That advice isn't wrong, but unfortunately, when people write about the ROI of a new tool, they usually focus on developer hours saved. While that is a good metric, in most cases, developer hours are just one component of a system's true cost. If you start your analysis earlier, you'll have a better sense of all the other costs involved and be able to speak to the real objections you will face.

Re: Ask HN: How do you sell in a new programming language?

#24
Have a plan for how it will integrate with your existing ecosystem such as tools, version control, continuous integration, data sources, etc if your org requires these things. I once worked as a principal at a .NET shop and had a smart engineer come to me wanting to use nodejs for part of a project and had to gently turn him down. I love to see enthusiasm for using new tools and personally like node/javascript, but his plan to use node didn't address important process concerns like hooking into our existing deployment, CI, and unit tests. Those concerns could have been addressed, but would have required significantly more effort than the actual project itself. Every org is different, but for us adding something without proper automation/tooling was a sin.

Re: Ask HN: How do you sell in a new programming language?

#25

So, to begin, this is really hard to do, and it can lead to the end of your career at a place. Managers might think of you as That Guy, the one who is always coming out with disruptive ideas. ("Disrupt" ain't a positive term, here.) That Guy makes the manager's job harder because the manager wants a unified front, not debate. 1. It helps if the language interoperates well with the existing platform. If you're at a Ja…

I agree that it is hard to do. If it can't be done, though, only the death of companies with old tech will make the world move on.

I think 3) is a good tip, and I have seen it work for some local companies who moved to Scala (for parts of their code).

Re: Ask HN: How do you sell in a new programming language?

#26
post #3

It may sound ridiculously obvious, but I think it's often a matter of being able to empathise with whoever you need to convince. Most organisations are in it to make money, and different people are different pieces of the puzzle of achieving that. If you can express the upside of the technology shift in terms relevant to, say, business developers or managers, things get easier. Whether you have closures or not doesn'…

It may not always be so obvious, so I think this is good advice. It can be hard to understand where everybody comes from, and expressing the upsides in terms that others really understand can be even harder.

Re: Ask HN: How do you sell in a new programming language?

#27
I convinced the company I work at to use Haskell for REST services.

The technical leadership team was already interested improving the reliability and rigor of our web backend, but weren't thinking about exploring other programming languages. (we primarily use PHP)

I knew Haskell would be hard to sell, but I also had concerns about it myself, so I ran a live-fire test:

In my spare time, I wrote an interface-compatible Haskell implementation of a particular service that drove a lot of load, but was noncritical. I load-tested this service by flipping an nginx switch to divert traffic to the Haskell implementation. Leadership was ok with this because we could just flip the switch back if there were any issues: The risk of customer impact was miniscule. After some initial tests, we left it to run for a few months without manual intervention.

Over the course of this side-project, I got a few curious coworkers to learn Haskell to help out.

When the right project came along, leadership still had concerns, but I had lot of hard evidence to show that Haskell superbly fit our technical requirements and that the nontechnical problems (like hiring and training) were probably surmountable.

Re: Ask HN: How do you sell in a new programming language?

#28
post #22
post #15

The same way you sell a business anything else: it will raise our revenues and/or decrease our costs. Rather than saying "We should reimplement our core products in $FOO" you can often achieve the result of using $FOO while hitting less resistance by implementing one-off projects or support systems in $FOO instead. e.g. I worked at a Japanese megacorp and, despite us being a Java shop, one of the sales guys sold a cu…

This. Node.js and Rails are sexy right? Show your boss how. Do a video screen capture of the time savings you get. Also, execs like what we used to call "The NASCAR Slide™" - which is a presentation slide with all of the logos of companies who use those technologies. The more Fortune 500 companies, "the faster your NASCAR car goes". Pro Tip - Just give them his link http://www.walmartlabs.com/ Note - Be prepared to h…

A screen capture sounds like a very good idea, as a nice way to visualize. People tend to buy based on emotions, and then rationalize with logic. The screen capture sounds like an appeal to emotions, while "the NASCAR slide" would work as justification.

Re: Ask HN: How do you sell in a new programming language?

#29

Implement something useful. Be useful. Better to ask for forgiveness than ask for permission. Only way it works.

That's wishful thinking when it applies to the choice of programming language.

If you come to a C shop and implement something in VisualBasic, you will de escorted right out. Do the same but with Java and you will be flying out, through a nearest window :)

So - hell, no - it's not how it works at all.

Re: Ask HN: How do you sell in a new programming language?

#30
post #12

One 'argument' that people don't often think of is recruiting and hiring. I recruit for many companies, and the level of applicants I receive for jobs in the more emerging language communities is well above the applicants I usually get for more traditional languages. My evidence is anecdotal, but when I posted Clojure or Scala jobs (and recently Go) I received fewer applicants! but almost all of them were highly qual…

My evidence is anecdotal, but when I posted Clojure or Scala jobs (and recently Go) I received fewer applicants! but almost all of them were highly qualified engineers with very impressive track records. The applicants also come from all over, because of the novelty of the jobs. Java jobs tend to get local candidates, but a Clojure job gets applicants worldwide. My observation (at a Baltimore company) was the exact s…

I like the honest career advice :) I agree that a tech company should get top talent, but "older top engineers" are often very resistant to change. Say, as JavaScript has gotten more and more important, it might be hard for those who have built careers around specific languages to move on to something else. On the other hand, younger talent are often more open to this kind of change.
Post reply on HN