Ask Slashdot: How Best To Teach Programming To Salespeople?
First time accepted submitter greglaw writes "Our company makes development tools, meaning that all our customers are programmers. If you'll forgive the sweeping generalization, on the whole good programmers don't make good salespeople and vice versa. However, it's important that our salespeople understand at some level the customers' problems and how exactly we can help. The goal is not to turn the salespeople into engineers, but just to have them properly understand e.g. what the customer means when he uses the term 'function call.' Most of our customers use C/C++. Does anyone have any recommendations for how best to go about this? Online courses or text books that give an introduction to programming in C/C++ would be great, but also any more general advice on this would be much appreciated."
Really, it's not that complicated. You want to hire people who have programming background, but weren't interested or talented enough to pursue that full time. And they need better social skills than the average software engineer.
That's all. You can't turn a PHB into a good salesman for a product he can't understand.
...objects can be thought of as wrapping their data within a set of functions designed to ensure that the data are used appropriately, and to assist in that use(1)...SQUIRREL!
I wouldn't even try.
Sales people need to be adept as selling a business story and should be able to talk to project managers and other budget holders about the business benefits of investing in the tool.
The conversation with the programmers is key and important to making the sale -- but's it a different conversation about the job benefits of using the product.
So you need to go in two handed -- a business focused sales professional and a technical pre-sale consultant.
You either need a sales engineer that goes along on calls with the sales people, or simply just send some of your developers out to do sales...
Are you sure sale people will be talking to programmers directly?
It seems very unlikely you can train a sales guy well enough not to enter a giant "uncanny valley" of terminology for any real programmer they would talk to. You have no idea how much that puts of programmers at companies.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Your company either does NOT understand sales people or what it takes to be an engineer. Sales are they to create a relationship with the customer. They usually have ZERO cred on tech issues. Have an engineer partner with the sales guy and team sell.
Your best bet is to go find the best Sales Engineers you can, the ones that don't just know the product catalog and can do a demo but who can install, customize and code integrations while providing solutions, solving problems and essentially doing the salesman's job for him.
Those Sales Engineers are rare, but they are the ones who can turn into what's sometimes referred to as a Technical Sales Specialist: a Salesman who can be their own Sales Engineer. Find someone like that and they will be able to sell to programmers.
Pair someone with strong programming skills with someone with strong sales skills. Lots of tech companies supplement their sales staff with "sales engineers" who know the technology. It's not unusual, and many IT organizations are impressed to have someone with expertise sent along with the sales people.
Insanity is a gradual process; don't rush it.
Which word didn't you understand?
I can see you may not be very familiar with corporate sales.
Sure all of the people using and even buying what they are offering may be programmers... but that does NOT mean they are the only people at the company you will talk to about a purchase, in fact there are usually business owners that have to OK expenses too and need justification/reassurances. The sales guy is there to make them feel comfortable that buying your product is good for the company.
In fact the very existence of sales people in the equation straight up says that somebody will non-technical will be talked to at some point, or else they could simply market over the internet. You do not need sales people for something programmers would buy directly, like a book or a really cheap text editor.
Thus, both a sales engineer and a sales person are required if sales people are needed but they are selling to programmers.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Robert Heinlein said it best: Never try to teach a pig to sing; it wastes your time and it annoys the pig.
As mentioned elsewhere, there's not much better than having Real Engineers go on sales calls, too, to answer the technical questions. You can teach salesmen all you want, but they won't be able to fake the insight gained through experience.
All salesmen should have some familiarity with the industry they're marketing to, though. They should have an understanding of how a programmer's mind works, and how your product makes the customers' lives better. For that, I recommend BASIC more than anything else. Not VB, mind you, but good ol' BASIC:
Once the run-through with BASIC is complete, you can expect the salesmen to understand how to read a simple (and commented!) program, and work out what it does. Show them equivalent programs written in C, C++, and BASIC. Be sure to point out how your product makes life easier, and show how a competitor (or Notepad) doesn't, tying in the lesson with the ultimate goal of making better salesmen.
You definitely won't be producing any great programmers, but you'll give them a glimpse of the mental juggling we do. They'll be able to recognize common use among customers, and possibly even impress a few with their knowledge. That's enough to significantly improve their relationship with the potential customer.
You do not have a moral or legal right to do absolutely anything you want.
I gave up system level programming as a career since I was tired of my hobby and career being the same thing... it meant that for the last 30 years of my life (I'm not that old.... just started young), I have spent a minimum of 8 hours a day 7 days a week... often on vacations too in front of a screen and with no social life. I moved into teaching Cisco networking which I'm finding to be really fun and fulfilling.... I have had insanely good results... I am teaching my fourth course this week and so far I'm already setting new records for evaluations at the end of each week since I have a real passion for it. And oddly, I am making more money (2-3 times as much) as I was making when I actually made Cisco products Doh!
:)
That said... I spend a huge amount of time trying to figure out how to teach topics that are "advanced computing" related to people who need it fed to them in small words and made as simple as possible. I create analogies for things like understanding binary by making an imaginary currency called Binaries (sounds like dinaries) which come in coins starting at one and doubling for each denomination and ask them to make change and put the coins in the proper drawers (which happen to start empty) of a cash register without using the same coin twice. When you remove the math aspect from it and make it a simple task which they have done each time they visit a new country with a new currency they stop being afraid of it and move on.
Programming is often easiest to teach to non-programmers by asking people to "write a program" telling someone how to get from the airport to their house. Things like "If Shell gas station on opposite corner from me and hours of opening are from 6am to 11pm, then turn left". To describe functions, I would ask them to place each actual part of the directions on separate page of a document... mix them up and then on a single page, create a master document which refers to each page as a function to produce the program flow. Do the same with making dough for bread... "Kneed bread violently for 10 minutes"... "If the dough has dried out... add a sprinkle of water." "If the dough is too moist or is sticking to the cooking surface, add a little flour", "Repeat previous two tasks". "Loop back to the kneeding process if the dough has too many bubbles". etc...
I think two hours of this kind of instruction at lunch is enough to teach structured programming. Object oriented programming would require a much longer post
I wouldn't even try.
Sales people need to be adept as selling a business story and should be able to talk to project managers and other budget holders about the business benefits of investing in the tool.
You can't cure willful ignorance. If a salesperson actually gave two shits they would pick up a book and learn basic programming skills on their own.
Why not try the same strategy that helps today's programmers constantly learn new languages, libraries, version changes, etc: if you don't keep up... you lose your job to someone who can. It seems to light a fire under the ass of IT people.
Yes, thats how it is in EDA industry.
The "requirement" bit is mostly done by the AE or Product engineer, who knows the product.
Sales guy job is to
1. Arrange for an EVAL, i.e, get a foothold in the customer
2. Post EVAL, negotiate a deal
Unfortunately, many other tech vendors do not follow this route.
My Aurora : http://www.youtube.com/watch?v=o91ZsGwJYyg
FB : https://www.facebook.com/TanveersPhotography
The poster is obviously not a good programmer because a good programmer can program in any language and talks in pseudo code to avoid getting trapped in language semantics and workarounds when discussing a concept rather then actual code.
Teaching sales staff C/C++ is way to deep. Teach them coding concepts but not an actual language. Hell, you might change language and then all your sales staff would need retraining.
As for training failed programmers as sales people. Congrats you just made sure every project you get will have been masterminded by someone who thinks he could do it better.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Unlike others here I don't think you should fire your sales staff and let the tech people handle all the talking. It's not realistic and it's not efficient.
Instead, let the sales people know their limits and when they reach them while talking to the customer, let them propose to organize a meeting between the potential customer and a developer. Have them say "Look, I'm not a coder myself so there's only so much I can tell you about the details of our product but if you are really interested, you could talk to one of our developers."
I love to hear that as a customer - I can tell when a salesperson is out of his/her depth and it's great to see they realize it and are open about it.
Have your developers do consulting duties where they do these kind of talks - you'll have to coach them a bit about what to avoid when talking to a customer - but unlike teaching your salespeople how to code, this is doable.
You can also push the limits of what the salespeople understand up to a point - you'll have to discover what that point is for yourself - after that it's a waste of time and money. You can probably make them do some simple hands-on on coding just so they see what the difference is between code and a binary and how you get one from the other and such things.
I am sorry, but communication skills aren't key here. Key is understanding what the *client* wants, instead of what the *developer* wants. I have seen many clashes between sales and software development and they all boil down to this:
Sales: "we need function XYZ in our software"
Developer: "no, we don't, it's useless, besides he can use tool ABC to flurb the snugger and be done with it"
Sales: "but the client asks for it"
Developer: "the client is a dumbass"
Sales: "he pays your salary"
[developer walks away and implements XYZ, but only against his will]
Both development and sales are serious skills and succesfull business manage to do them both right and in the correct balance.
-- The Internet is a too slow way of doing things, you'd never do without it.
To quote from Wikipedia
Myers-Briggs Type Indicator
The use of the Myers-Briggs Type Indicator as a predictor of job success has not been supported in studies,[15][16] and its use for this purpose is expressly discouraged in the Manual.[17]
Another case of HR pretending to have a scientific basis for predicting job fit to a profile, and totally missing the point of the original question. Presumably these guys know how to get the sales people they need, but realize that they need to speak the language of their customers.
I would suggest that the best way to train sales staff for any technical product is to take the best communicator from your technical staff and get him (or her) to run a regular seminar on the product, explaining the kind of problem the product is designed to solve and how the customers are likely to use it. Over a shortish time, the seminars will get better and you might even find that involving more techies actually improves the sales and the product.
nec sorte nec fato
When I was an employee I doubted that salespeople were doing a work worth more than what programmers did. They told me I was naive. I became freelance and had to do the sales work. It is really as simple as it look : Meet clients, organise meetings, eat food together, sign contracts and hassle them when they don't pay. Being the programmer of the product gives you an incredible edge in negotiation though : Normal salesmen talk about the advantages of a product without understanding anything about what they say. They sometime sell features trying to guess how hard it is to get them done. Being an engineer really gives you an edge. You know you struck gold when a small feature can be sold for 10 times what it will cost you.
The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
Reality: customer actually wanted DEF. Sales guy just didn't understand what customer said. Developer spends 50% of time developing and supporting unwanted feature.