🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Communicating with Sales staff as a programmer

Started by
11 comments, last by jonathan_goodman 10 years, 6 months ago

This is a problem that I continually find myself having in my day job (Enterprise instant-messaging software/utilities). I don't know what the solution is, but I'd love to get some advice on how to be more effective.

I'd say that I am a pretty typical, introverted programmer type. I find that person-to-person real time communication is somewhat difficult, and quite draining for me to engage in. I can work on debugging or writing code for hours at a stretch, and I can generally communicate fairly easily with my colleagues in the development side of our business, but interacting with our sales and marketing staff is something like trying to mix oil and water.

I would say that the work that I do falls generally into two categories. On the one hand, are things like writing new code, refactoring existing code, and debugging and troubleshooting issues with our products. On the other hand, are more mundane and less mentally demanding things like meetings, customer support, email, demoing software, etc. These two phases of my work require very different mindsets; the first demands a lot of immersion, concentration, focus and solitude for peak efficiency, whereas the second is more fuzzy, less intellectually demanding, but more socially/psychologically draining. I have found that I cannot really mix the two different types of work that I do; the first category demands large, uninterrupted blocks of time, so that I can maintain my mental model of what I am doing and get into "flow," whereas the second category is much more fragmented and doesn't require anything like the same levels of concentration and focus. Generally, I have found that the most effective way for me to get the first category of work done is to either come into work early or stay late, and block out the necessary time during periods when nobody else is in the office and the level of distraction is very low. So for instance, if I know that there is a bug that I need to work on, I can either come in at 7 am and knock it out before people start getting in around 10, or start working later in the afternoon around 4 and stay until it is done in the evening. I'm rarely able to get much done during the actual 9-5 working hours, since the time is so broken up with interruptions, whether that be scheduled meetings, impromptu discussions that I get pulled into that are unrelated to the problems I'm trying to work on, having to field questions from our customers or sales staff, going to lunch, and so forth.

I would say that my biggest problem would be in communicating with our sales staff. I think that the biggest impedance there results from the incompatibilities between the modalities of the kinds of work that we do. As far as I can tell, most of what our sales staff does is chasing leads and contacting customers on the phone or email, fighting with Salesforce, and demoing products over screen-sharing sessions. I'm not sure how best to put it, but I would say that this is generally a much more low-latency process than my normal workflow. For instance, whereas I would prefer to handle email and such a few times a day, at the natural breaks between my tasks, they tend to want immediate answers on a much shorter timescale. As an example, one of my most frequent gripes is that my sales guy will, rather than send me an email with questions, that I would be able to answer within say, an hour of receiving it, he invariably wanders over to my office, interrupting whatever I happen to be working on, and expects that I can give him immediate answers to his requests, without any priming, while he is standing there. For me, this always involves a huge context switch, requiring me to dump whatever is on my mental stack, recall the details of what he wants to know about, switch out of my programming mode and back to conversational mode, then once he has left, try to get back into whatever it was I was doing.

I think besides the very different natures of the work that we do, another friction is that our compensation systems incentivize us very differently. I work for straight salary, with occasional bonuses based on the overall profitability of the company, whereas our sales staff work for a base salary plus commission with a quota. Tied in with this, is the fact that a large portion of the profits of our company comes from residual support and maintenance agreements with older customers, which would probably be enough to keep the lights on indefinitely with no new sales at all... My main motivation is thus to improve our existing products, and create high-quality new products for our big-dollar, established clients, rather than acquiring new, low-value customers so the sales guys can hit their quotas. We're involved in enterprise software interoperating with databases, LDAP and AD directories, and other third-party software systems, so it tends to be quite a bit of a nightmare to get our software plugged into a new customer's environment and troubleshoot all the weirdness that comes up. Depending on the paranoia or insanity of the customer, this can be person-weeks of our developers time, sometimes just for evaluations. Not only is this all a huge pain in the butt, there's the opportunity cost of not fixing bugs or developing new features during that time.

Wow, this has turned into quite a rant...

If you've had similar experiences, I'd be interested in hearing how you've dealt with it or improved things.

Obviously, finding a different job is one option, but all gripes aside, my job is pretty interesting, with good pay and benefits (at least for where I am in the USA), and a lot of autonomy, so I'm not eager to jump ship, not yet anyway

Eric Richards

SlimDX tutorials - http://www.richardssoftware.net/

Twitter - @EricRichards22

Advertisement

Your lack of communication skills will hinder your ability to advance in any career. Read books like How to Win Friends & Influence People. Put yourself outside of your comfort zone. It's the only way to really grow. As far as how to deal with the current situation, the answer is the same. Communication. Talk to them and explain the situation from your perspective. Don't be an ass about it. Make it sound like they would be doing you a huge favor if they limited the visits to certain times a day. Schedule it so you can plan around it.

As far as what you're focused on... I can appreciate that you're working on improving the existing system. From a business perspective, unless you're losing customers due to the quality of existing software, you'll see a higher return on investment in new features that bring in new customers.

There's a guy who has devoted his career to helping people like us

http://www.amazon.com/Dilbert-Compilations/lm/27CQK98XIF63Q

The Four Horsemen of Happiness have left.

I use the context-switching analogy as well. I wouldn't say this is a problem relating to introversion. It's a problem related to short-term memory.

Make sure to express your concerns within your company. Distractions (interruptions, context switching, whatever you want to call them) are a big problem when your job involves keeping a massive amount of information within your short-term memory. In most cases the bosses/managers/producers on your team should be fielding questions from marketing instead of you. Unless you ARE the boss/manager/producer.

Things I do to try to minimize the impact of mental context switching:

- Offload your short-term memory: Break your tasks down ASAP and write them down somewhere. This lets you recover from context switching more quickly by caching your memory in a more reliable format and priming stronger triggers in your meat-memory.

- Offload your long-term memory: Document what you know so that when people ask you questions, you can redirect them to the documentation instead of being forced to be a walking encyclopedia for them. You can write a FAQ on demand as people ask you questions to minimize the up-front cost of documenting Question-Answer pairs. The goal here is to minimize the loss of your current context by not having to switch all the way into a different context.


In most cases the bosses/managers/producers on your yeam should be fielding questions from marketing instead of you. Unless you ARE the boss/manager/producer.

I was thinking the same thing. Eric, you say your company is in "Enterprise instant-messaging software/utilities" - if it's a smallish company (fewer than 100 people), then you have to deal with this brain-mode-switching of which you speak. I've also had to deal with mode-switching, so I totally get what you're talking about. If your company is quite large, then perhaps you could make a case that someone should buffer you from Sales. (Or you could make a case that you need someone to offload some of your work so you can work more effectively with Sales. Someone who's a CTO often has to work interdepartmentally, and doesn't do a lot of actual coding.)

But most likely, it's something you just have to deal with.

BTW, I'm inclined to move this to the Job Advice board, unless anyone objects.

-- Tom Sloper -- sloperama.com

When sales staff comes over to talk to you at your desk, it's a meeting. It might not seem like one but it is. And I'm sure you have an obligation to attend meetings and provide the information required. But where as a meeting with a client is probably scheduled in advanced and has a record in your Outlook (or whatever scheduler you might be using), you probably don't have a record of these impromptu meetings from the sales staff. You probably should have some sort of record of these meetings as you are providing a service to your company when you answer any questions the sales staff has and the boss is probably interested in knowing about all work that you are do, not just coding. I say maybe talk to the boss and see about formalizing these meetings a bit better. Which might mean that you suddenly receive an urgent request for a meeting in a half hour or 15 minutes or maybe you have regular meetings scheduled one or more times everyday. The interruptions won't go away but maybe at least you will have time to prepare for them and be able to plan what you need to do better than you currently can.


I think that the biggest impedance there results from the incompatibilities between the modalities of the kinds of work that we do.

Not to be mean, but I can understand why the sales staff can't understand you.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

I'm guessing you thought you would get different responses here where people are more technical, but the truth in the real world is that often being a great communicator and team player is a better skill to have then being amazing at your specific job skill. If nobody wants to work with you or can't communicate with you then you are almost worthless to the business (not saying you specifically just in general). I would say work on improving that skill and change your mindset. This isn't the 80's where they put us in the basement anymore. Communication demands are much higher now on developers.

First of all, based on your post it looks like you are working for a very small company having not more than 3 to 4 developers. And it appears that you are the smartest of the lot (probably central figure) i.e. you know the most of the existing products and are solely leading the development efforts on other products.
And since its a very small outfit, you have to wear multiple hats (answer technical queries, do instant demos and quick turnaround on bugs is a must have) throughout the day. Meeting development deadlines in such an environment is next to impossible. For a lead developer its quite challenging.
I have been in a similar situation myself. Apparently it isn't about communication skills. Don't blame yourself. It's just that the company is understaffed or that the other developers are too raw and as a result whole lot of things land up on your plate.
Working in such an environment is not only personally frustrating but it also negatively impacts ones married and social life. My wife and kids were about to dump me but thankfully I moved on.
As a thumb rule if it looks like you are constantly feeding others and not really gaining any skills/expertise or experience from other team members, then its definitely time to move on. Your growth seems to have stalled at workspace. Your skills only improvise based on what you learn yourself rather than what people around you know.
As an exception if you have any stake in the company or if your straight salary is above and beyond your experience level then its worth staying.
One must be working in an environment where either skill growth or remuneration growth is exponential.

Thanks for the responses.

Granted, my communication skills are not optimal... Certainly something I need to work on.

My company is not terrible, but it is disturbing how Dilbertian things can be at times. I used to work in a blue-collar power plant job in college, so I know these kinds of shenanigans are everywhere, but the software development industry does seem to rife with them.

@JGM -

Your situation sounds very much the same as mine. It's hard to tell if it was the chicken or the egg, but work frustrations certainly didn't help my relationship with my (ex)fiance... Although there were a bunch of other issues there as well.

I've always had to be self-directed to learn and improve, so while it would be wonderful to work on a team that pushed me further than I push myself, I'm used to it at this point. All gripes aside, I love slinging code, and fortunately do have the opportunity to grow and improve my skills, even if it means I have to be the driving force behind that growth. And it doesn't hurt that my salary has gone up 65% in two years, either...

Eric Richards

SlimDX tutorials - http://www.richardssoftware.net/

Twitter - @EricRichards22

This topic is closed to new replies.

Advertisement