This is an excellent strategy for smaller startups, where every individual contributor needs to have an understanding of the customer's needs, in order to develop an understanding of what kind of product must be built. I have much more success in projects where I deeply understand the product requirements (because I am involved in defining them), than those where the product requirements are "handed" to me and I just have to implement something that satisfies them.
> At the end of it, they were sketching a completely different architecture without my "PMing". Because they finally understood who was actually using our product.
I cannot help but read this whole experience as: “We forced an engineer to take sales calls and we found out that the issue was that our PMs are doing a terrible job communicating between customer and engineering, and our DevOps engineer is more capable/actionable at turning customer needs into working solutions.”
It's too bad we didn't have a major movement in software engineering a couple decades back that recognized that playing telephone through a chain of intermediaries (analysts, PMs, etc.) between customers and engineering was an anti-pattern, and articulated as a major principle that engineering should work directly and regularly with the community that the software is being built for.
The new "product led" trend seems to be that PMs are much more on the implementation side than on the customer-facing business side.
E.g. I know this guy leading sold-out Product Management workshops in Silicon Valley, who understands nothing at all about actually taking any product to market, about competition, marketing, etc. ... never mind satisfying actual customers.
"I cannot help but read this whole experience as: “We forced an engineer to take sales calls and we found out that the issue was that our PMs are doing a terrible job communicating between customer and engineering, and our DevOps engineer is more capable/actionable at turning customer needs into working solutions.”
I disagree - there are real limits on how PMs and others can describe how customers feel about products. At my workplace I've always argued for rotating engineers through customer support now and then. As someone who did customer support AND development at the same time, I noticed the wall between developers working in isolation and others who also worked customers. You can work from specifications alone, and they may well be perfect specifications validated by customers, but if you're not actually seeing what they do you can't really understand.
Working with customers now and then simply translates to better products and also less maintenance issues, which is _better_ for said developer.
I read it as: Most people are bad at empathy because they've never practiced it, and so forcing them into the shoes of another is a good way to give them a kickstart into the realm.
> the issue was that our PMs are doing a terrible job communicating between customer and engineering
That makes it look like it's the PMs' fault. Yet I bet you wouldn't want a car designed by engineers who never drove one and never directly spoke with someone who did, either. It's that simple.
Out come the "this is dumb because .." messages in the redit responses.
I have experiences dozens of projects where the developer had the wrong view of the end use needs for a myriad of reasons (everything after the because). It doesn't matter why in this case just that they found their solution.
The TL;DR message should be make sure the real needs get serviced.
At my company, as developers, we rotate taking support tickets and working directly with customers on the issues our (very capable) support team can’t handle. We and our customers are both very happy with the results.
I have been at countless places where the engineers are out of sync with the product.
And it might be something silly like their coworker added something they didn't know about and the UI is now confusing. Could even be the website started proclaiming something that didn't align well with the product.
Another factor is that the [product -> PM -> bug system -> engineer -> fix -> QA -> product] loop is heavy. It takes a long time and major things get fixed but minor friction doesn't.
having [product <-> engineer] can be amazing.
Engineers might have never encountered the full experience, or may merely be out of sync with how it works today vs last year.
we've done this before, either with sales or support calls for the product. customer interaction is good, and can lead to good things. but it also leads to things that are heavily focused on the needs of one customer or one point in time.
most of the stuff i've built as a direct result of customer interaction has been later deleted, as it becomes a maintenance burden with limited utility even for the customers who initially needed it. software should actually be planned, not written in response to somebody's gripes.
Am I not supposed to notice the transition from "he promised me 5 calls and I guaranteed he'd never have to do it again" to "Every engineer takes 5 sales calls per quarter"? This kind of casual dishonesty makes me question the entire story. I've encountered a lot of people who think they're building a better product when they're really building N customized installs that will never again reconverge.
> Sounds like you have no product managers or your PMs suck. The platform must also be dead simple if it can be rewritten in two weeks.
And the OP's response:
> we pride ourselves in not hiring any product folks until after we raised our series A. this helped us stay super lean, move fast, and build exactly what our customers want.
...which then gets called out as pretty much in direct conflict with what came before.
Have every engineer to install their product at a customer site, this should be able be done remotely and use the product to load key data and update. Have your engineers take support calls.
I have been on the other side of this where engineers end up just being a technical support team, and are competed over to directly support accounts, and then there ends up being a plethora of hot fixes and custom solutions per customer. There is a ton of technical debt, because non of this stuff is tested properly and there are regressions all over the place. The whole thing goes under after a competitor, with their properly invested engineering resources makes a better and fully featured product than you.
To me, this screams a real failure of product management. They can't communicate the needs of their customer to their engineers or push back against them? Having engineers take sales calls is not going to scale when you have an actually mature base of customers.
If this product manager really wants Engineers to take sales calls, the Engineers need to earn part of the commission on the accounts. That is the only fair way to do this. I would never take a sales call without part of my compensation being commissions based.
Well. Then you should fire your project owners, product manager and marketing folks, as two things emerge clearly:
1 - Those people were not able either to capture what the customers really wanted, or to translate this into requirements for the developers, or both things at the same time.
2 - Due to the fact that their minds are trained to see things systematically, maybe you should remove all those layers between customers and developers.
I used to love having a job where I had regular interaction with customers. It really made a difference in my ability to improve the features we had, and to design new systems which would be more likely to succeed. I miss that, and I wish more companies found a way to put engineers in contact with actual users...
...but if you tried to make me do even one sales call, at all, ever, for any reason, that would instantly terminate my interest in working for you.
Once upon a time I was doing some custom enhancement for what was probably our largest customer. The CEO and CTO both gave me different descriptions of what the customer wanted. Neither made any sense. I was out of the loop for this whole discussion, but I did get a forward of an email chain at some point that included the customer, so I ended up emailing him directly with stories for those two descriptions plus a third. The customer replied he needed the 3rd story, the one I came up with. This took at least two months to implement, so that was a lot of waste avoided.
The amount of information that gets lost in hand-offs can be incredible. People directly involved in developing the product really need to be more involved with the customers, but I personally have had only bad experiences with organizations enabling this. Those responding here that they get to in some manner, I'm jealous.
My former company used to have engineers sit on sales calls regularly too.
While it was interesting to see what companies wanted and how they were sold our product, it wasn't extremely illuminating.
The features that customers wanted were already on our roadmap, we had one feature that customers found confusing and hard to use, but it was written that way to meet the needs of our largest customer.
Engineering wanted to streamline it but then it wouldn't have met that customer's needs. Eventually we wrote a "lite" version of the feature that was easier to use and turned that on for everyone but the big customer. (but that didn't come about because of engineers sitting on sales calls, we all knew it was hard to use but couldn't change it until it was on our product roadmap.
When I was just getting started in programming, the best education I got came from the operations manager at a fossil fuel generating station. Russ Reynolds had a quite pragmatic view of computers as tools. Once I had written the system they wanted, he brought someone in from the plant and carefully explained that he was testing the system I built, and not them. He said "anything that goes wrong is his fault" pointing at me. He also told me to just be quiet and watch.
User looks at system, doesn't know what to do... I say oh, just press F1 for help (it was back in the MS-DOS era), Russ says.. "how is he supposed to know that?"
I was then enlightened.
Every screen after that had "Press F1 for help" on it either on the top or bottom line of text
My best projects have been where I code side by side with the actual users or subject matter experts. Built a small business loan approval app for a bank, sat right beside the underwriters. Airport billing system, worked one door down from accounting. They came to standup everyday, you take breaks with them, gradually they feel like they own the product.
IMO this stuff happens frequently because the layers between engineers and users (IE product, project management, executive leadership) are crap and blaming the engineers for it.
Not that engineers can't be problematic. But product people who aren't technical enough and badly manage trade offs they don't understand or invent out of thin air outnumber engineers who are pigheaded know it alls more obsessed with technical minutae than product success.
Another one I see in the same ballpark is hiring a bunch of outsourced coders and then wondering why velocity and quality goes down. (Because you're multiplying the mythical man month effect by the skill difference between a day laborer from Home Depot and someone with significant skills/domain knowledge like a welder or electrician.)
> The rewrite took 2 weeks. We removed 60% of features. Added a simple progress bar. Built Slack integration for questions. Created "done-for-you" workflows.
> Our support tickets dropped 70%.
If this isn't fake something is extremely wrong with this picture.
53 comments
[ 11.4 ms ] story [ 60.0 ms ] threadI cannot help but read this whole experience as: “We forced an engineer to take sales calls and we found out that the issue was that our PMs are doing a terrible job communicating between customer and engineering, and our DevOps engineer is more capable/actionable at turning customer needs into working solutions.”
E.g. I know this guy leading sold-out Product Management workshops in Silicon Valley, who understands nothing at all about actually taking any product to market, about competition, marketing, etc. ... never mind satisfying actual customers.
Working with customers now and then simply translates to better products and also less maintenance issues, which is _better_ for said developer.
That makes it look like it's the PMs' fault. Yet I bet you wouldn't want a car designed by engineers who never drove one and never directly spoke with someone who did, either. It's that simple.
The TL;DR message should be make sure the real needs get serviced.
I have been at countless places where the engineers are out of sync with the product.
And it might be something silly like their coworker added something they didn't know about and the UI is now confusing. Could even be the website started proclaiming something that didn't align well with the product.
Another factor is that the [product -> PM -> bug system -> engineer -> fix -> QA -> product] loop is heavy. It takes a long time and major things get fixed but minor friction doesn't.
having [product <-> engineer] can be amazing.
Engineers might have never encountered the full experience, or may merely be out of sync with how it works today vs last year.
most of the stuff i've built as a direct result of customer interaction has been later deleted, as it becomes a maintenance burden with limited utility even for the customers who initially needed it. software should actually be planned, not written in response to somebody's gripes.
https://old.reddit.com/r/Entrepreneur/comments/1mw5yfg/force...
> Sounds like you have no product managers or your PMs suck. The platform must also be dead simple if it can be rewritten in two weeks.
And the OP's response:
> we pride ourselves in not hiring any product folks until after we raised our series A. this helped us stay super lean, move fast, and build exactly what our customers want.
...which then gets called out as pretty much in direct conflict with what came before.
To me, this screams a real failure of product management. They can't communicate the needs of their customer to their engineers or push back against them? Having engineers take sales calls is not going to scale when you have an actually mature base of customers.
If this product manager really wants Engineers to take sales calls, the Engineers need to earn part of the commission on the accounts. That is the only fair way to do this. I would never take a sales call without part of my compensation being commissions based.
Once a customer knows the person who actually builds the product, they will short cut:
- Customer Service
- Product Management
- Any other sane defenses you put in to protect a developer's time.
And just contact me directly.
Then what do I do to get them off of me without losing a customer?
... That is why engineers don't get on support calls.
If I could be "Anon E. Mouse" for the engagement, that'd be fine. But fact is, that's not what happens.
1 - Those people were not able either to capture what the customers really wanted, or to translate this into requirements for the developers, or both things at the same time.
2 - Due to the fact that their minds are trained to see things systematically, maybe you should remove all those layers between customers and developers.
...but if you tried to make me do even one sales call, at all, ever, for any reason, that would instantly terminate my interest in working for you.
The amount of information that gets lost in hand-offs can be incredible. People directly involved in developing the product really need to be more involved with the customers, but I personally have had only bad experiences with organizations enabling this. Those responding here that they get to in some manner, I'm jealous.
While it was interesting to see what companies wanted and how they were sold our product, it wasn't extremely illuminating.
The features that customers wanted were already on our roadmap, we had one feature that customers found confusing and hard to use, but it was written that way to meet the needs of our largest customer.
Engineering wanted to streamline it but then it wouldn't have met that customer's needs. Eventually we wrote a "lite" version of the feature that was easier to use and turned that on for everyone but the big customer. (but that didn't come about because of engineers sitting on sales calls, we all knew it was hard to use but couldn't change it until it was on our product roadmap.
User looks at system, doesn't know what to do... I say oh, just press F1 for help (it was back in the MS-DOS era), Russ says.. "how is he supposed to know that?"
I was then enlightened.
Every screen after that had "Press F1 for help" on it either on the top or bottom line of text
Not that engineers can't be problematic. But product people who aren't technical enough and badly manage trade offs they don't understand or invent out of thin air outnumber engineers who are pigheaded know it alls more obsessed with technical minutae than product success.
Another one I see in the same ballpark is hiring a bunch of outsourced coders and then wondering why velocity and quality goes down. (Because you're multiplying the mythical man month effect by the skill difference between a day laborer from Home Depot and someone with significant skills/domain knowledge like a welder or electrician.)
> Our support tickets dropped 70%.
If this isn't fake something is extremely wrong with this picture.