I’m a business analyst, and a big part of my job involves working with engineers and product managers to gather detailed, in-depth information. For reasons I don’t fully understand (though I have my theories), I often find that engineers, in particular, seem oddly reluctant to share the information I need. This makes the process more challenging than I’d like. Does anyone have tips or tricks for building trust with engineers to encourage them to share information more willingly and quickly?
EDIT: Here’s a summary with more details for those who requested more info: I’m working on optimizing processes related to our in-house file ingestion system, which we’ve been piecing together over time to handle tasks it wasn’t originally designed for. The system works well enough now, but it’s still very much a MacGyver setup—duct tape and dental floss holding things together. We got through crunch time with it, but now the goal is to refine and smooth everything out into a process that’s efficient, clear, and easy for everyone to follow.
Part of this involves getting all the disparate systems and communication silos talking to each other in a unified way—JIRA is going to be the hub for that. My job is to make sure that the entire pipeline—from ticket creation, to file ingestion, to processing and output—is documented thoroughly (but not pedantically) and that all teams involved understand what’s required of them and why.
Where I’m running into challenges is in gathering the nitty-gritty technical details from engineers. I need to understand how their processes work today, how they’ve solved past issues, and what they think would make things better in an ideal world. But I think there’s some hesitation because they’re worried about “incriminating” themselves or having mistakes come back to haunt them.
I’ve tried to make it clear that I’m not interested in punishing anyone for past decisions or mistakes—on the contrary, I want to learn from them to create a better process moving forward. My goal is to collaborate and make their jobs easier, not harder, but I think building trust and comfort will take more time.
If anyone has strategies for improving communication with engineers—especially around getting them to open up about technical details without fear—I am all ears.
Maybe they just don’t like Jira and hope you will go away if they don’t engage with your process.
I work in a fairly toxic work environment.
The reasons I do what the engineers are doing are,
-
A lot of times people will ask me questions and I give them answers. Then something will go wrong and it will somehow be my fault that I didn’t mention it to them (they didn’t ask, and I don’t know the specifics of what they are doing).
-
I have my own goals and projects for the year. Why should I give you a significant amount of my time when my salary/bonus will not reflect helping you in anyway.
-
Job security.
These might sound bad, but that is how it works in corporate America
Edit: It sounds like you need management on board with you before you can fully continue
-
As an automation/software engineer that works with sysadmins I think there’s a natural resistance to top-down initiatives or others meddling with their processes (i.e. they’re the SMEs so just let them work). I could also see your line of questioning go into a decision to restructure and eliminate jobs.
In the first case (general change resistance) I think you’d need to come with numbers that show how expensive a dept is compared to industry standards or how inefficiency drives issues downstream.
In the second case the best way to show jobs as secure is to detail all the work that needs to be done, implying how foolish it would be to cut staff and miss even more deadlines.
As an engineer you learn to be very careful about what you say to non engineers.
A trivial example.
What if we make change x?
It’ll make some things harder and some things easier.
One week later.
Why are you having problems? You said doing x would make things easier.
More complicated example.
Can this be used for real time control?
Define real time.
Just answer the question.
I can’t it’s a bad question. I need to know what you are trying to control.
Keep your promises and tell the truth. If you don’t keep your promises, be the first to acknowledge the failure.
I was an engineer for a long time and among my peers the problem we had with management was often that they had a slippery relationship with the truth.
Also, demonstrate forgiveness within the organization for technical mistakes. If your engineers don’t want to share the bad decisions they’ve made, look for aspects of your company culture that punish people who admit mistakes.
One example would be times when someone spoke about a mistake they made and then was relieved of responsibility because of it. That’s an example of punishing the admission of a technical mistake.
Install linux/*bsd on your work device (that you take into meetings). Respect from engineers will immediately skyrocket : D
hesitation because they’re worried about “incriminating” themselves
This is a hard one. Because this is not about engineers, but their nature as people.
An anecdote: A lawyer, once casually asked me - if I were to design a building (this was hypothetical, because I am not a civil engineer) and after construction, was to realise some mistake that would cost lives, would I go on to tell them about it - and his tone seemed like he considered it common sense that I won’t report it.
So, at least in his mind, it is common sense that people hide their mistakes.technical details
I am a kind of person that doesn’t know that people find it difficult to understand concepts out of their domain (mostly because I understand most, well explained stuff, irrespective of domain) and if someone were to ask me about my work, I would easily wander into the details. After a few years of industry experience, realising that to not be the case, I tend to be more abstract.
If you want the engineers to tell you more in depth about the technical stuff, I’d suggest you to show them your aptitude to understand their stuff and you will see them going more into detail of it. I had a manager (kind of), who was also an engineer and used Linux on a regular basis. I found it easy to discuss more in depth regarding solutions (the product was using Linux too) due to his familiarity.
There are a few things you can do that will help make everyone’s life easier.
First thing, ask engineering what can be done to reduce technical debt and then fight for it aggressively. This is often a hard sell to the product owners at first because it can increase the time it takes to produce new features, at least initially. In the long term, it will pay huge dividends to everyone involved.
When tech debt gets ignored on a new project, the timeline usually goes something like this:
-
Project is barreling toward MVP at lightening speed. The Product owner said “move fast, break things” and engineering is delivering based on that mindset and everything seems to be going great.
-
MVP is almost ready but uh oh! Now a new feature has been requested.
-
“Move fast, break things” doesn’t allow time for code that is easily understandable or extendable to fit new use case scenarios so a huge chunk of the codebase has to be rewritten to accommodate the new feature.
-
Wash, rinse, repeat.
Without a major change in design philosophy, the cycle tends to get worse over time with small features requiring more and more extensive refactoring and the number of regression bugs skyrocketing. Not to mention the code base is now a disorganized, smoldering pile of spaghetti that every dev loathes having to work on. Stakeholders are unhappy. Customers are unhappy. Engineers are unhappy. Everyone is unhappy.
Second thing, talk to some actual users, people who are NOT involved in the project, to get their feedback. As an engineer, I like working on projects that add value to someone’s life, or at least make their work day easier. I want the user experience to be positive. I want the features I’m working on to enhance that experience. I don’t want to waste my time working on features that are completely useless and will be rejected by the users as such just because some VP who doesn’t understand what the users want has a bright idea. I’ve experienced this a lot throughout my career and to some degree it’s curbed my interest in software engineering, simply because I feel like a lot of my time and effort were wasted on projects or features that were DOA.
-
Probably they’d rather drink a dogshit milkshake every single morning than use fucking JIRA, and they’re hoping you die of natural causes before you get a chance to force it on them.
Frankly, it’s tiresome trying to describe technical details with business analysts who glaze over something you’re passionate about, treating it like nerdsprak. If the engineer has spent any amount of time producing a solution, you can bet he’s passionate and invested. Give credit where credit is due and don’t sound like an obnoxious condescending douchbag when doing so. People can tell when a disinterested person is giving fake praise. It’s quite different when a crowd of peers is giving recognition of a job well done. And no, you’re probably not as smart as they are in their field of expertise.
Also, listen to their input. They don’t want a product with their name going live with a feature the bean counters want, but the engineers know make the product worse. It’s like a mom watching your daughter to go to prom with a cheap haircut because dad as too cheap to fork out for a perm. You know what I mean.
Engineers are, as a rule… well, you’ve seen what they’re like. You gotta loosen them up with drugs first if you want a decent conversation.
Anecdote from my first job (software engineering): New manager wants to know what our team does and how our process and software works. Like, he really really wants to know it!
Okay, I book a timeslot and prepare some slides and an example; we have a meeting. I go over the high level stuff, getting more and more specific. (Each person on our team was responsible for end-to-end developing bootloaders for embedded HW.) When I got to the SW update process and what bit patterns the memory needs to have and how the packets of data are transmitted, he called off the meeting and I’ve never seen him since.
I guess, he didn’t want to know THAT much after all.
Fair enough. But I actually do want to know that stuff, and it’s not over my head.
Accept “I have no idea” as an answer, and don’t use it as an opportunity to push things in the direction you want.
learn to account for people being wrong, and don’t punish them for it.Engineers want to be accurate. They don’t want to give answers that they’re unsure about or just speculating.
Early in their careers they’re often willing to, but that gets beaten out of them pretty quickly by people with deadlines. Expressing uncertainty often means the person interprets the answer in the direction they want, and then holds the engineer to that answer.
“It could be anywhere from 2-8 months I think, but we won’t know until we’re further into the design phase” is taken as 2 months, planned around, and then crunch Time starts when it starts to go over. Or revising an estimate once new information or changing requirements are revealed is treated as incompetence, even though more work taking more time is expected.It’s in the self interest of the engineer to be cagey. “I don’t like to give estimates this early” is much harder to turn into a solid commitment than an earnest best estimate given the current known state of the project.
Similar for resources required or processes. Anything you don’t say is unlikely to be held against you.
This is brilliant. I often suspected they did not want to “incriminate” themselves, and I have tried assuring them that that is in no way what I am about. I am looking to optimize processes, and I am very eager for their ideas on what would work better than what we’ve been doing.
Verbal assurances mean little to many. At least put it in an email. Otherwise CYA dominates.
I’m an engineer for past 20 years ,and the moment I get a whiff of some biz person fluffing bullshit I check out. Not saying you’re like that but something to be mindful of
So be real, honest, straightforward, put in effort into understanding the technicals so youre not just a sales annoyance or engineers will write you off right away IMO
Also I don’t think some people realize how busy or hard engineering can be. I’ve been working my ass off on a ground up new product and a lot of stuff just falls to the wayside out of lack of time
There’s also [email protected] [email protected] among others
That last paragraph hits home, but in a sad way for me. I spent most of the last year working on a new project to streamline one of the biggest time sinks we have, and as we’re coming up on having an MVP ready to start beta testing, my org just dumped the entire team other than 1 guy. So I lost the guy who was my peer/dba on the project, and the dude who knows how to run the driver software.
Going to try to see if we can salvage what we made since it’s still needed, but fuck that wrecks a ton of time and effort. And really sucks cuz my team had to pick up the slack while I was trying to get this working, and we don’t even have anything to show for it…
A million times this.
Thank you!!! In fact I have been emphasizing that I need to know the technicals, and that they should not worry about getting too detailed, because I need a very thorough understanding so I can best come up with a process for how they do file ingestion (which mostly is up to them) but then also how the information gets to them, and how they output the data, in the best, most thoroughly documented (without being uselessly pedantic) way possible. Which is pretty much going to be getting everything into JIRA, and eliminating all the uselessly disparate systems that people are trying to stitch together currently. I need to make sure all the teams along the road of this process are communicating with each other, and at are at least having a basic understanding of the whys behind what is required of the process. And of course that it is efficient and fast and definitely not cumbersome.
there’s a few things here that trigger red flags for me:
not worry about getting too detailed
oh good! because it’s probably ill-defined and nobody really knows and figuring that out involves a lot of reading other people’s shit code and we have work to do
because I need a very thorough understanding
oh you mean do worry - you want to know exactly how it works… sorry bud, no time, that’s a lot of energy
thoroughly documented
ugghghh documentation is for people that don’t understand that documentation is out of date the second you write it: don’t drag me into your futile attempt to make a static artifact that i’ll need to maintain in the future when i update a living system
eliminating all the uselessly disparate systems that people are trying to stitch together currently
okay but that’s really dismissive… this is work that people have put in - even if it’s shit and everyone knows it’s shit, it’s disheartening to have things thrown out… and what they do now they know how it works, they know the caveats… you’re talking about coming in, getting a cursory understanding (what you think you can understand everyone’s problem when the people that built the thing don’t have the full picture?) and then planning out and telling them what to do
if you want help from engineers, ask them for help to build a new thing: don’t ask them for help to explain something so you can tell them what to build. we’re creative, and we love solving problems and we hate robotically implementing someone else’s vision
In addition to what other people have said, “the technicals” and “getting too detailed” is ridiculously vague. There is always a too detailed. Software engineering is a giant world and engineers specialize, and even other engineers with a slightly different specialty don’t really want to know all your “technicals”.
Be specific about what details you’re interested in and why if you want to build trust. Demonstrate tangible investment in figuring out what your gaps are and ask specific questions, and be clear about what kind of answers you want. “Thorough understanding” is not helpful.
There is always a too detailed. Software engineering is a giant world and engineers specialize, and even other engineers with a slightly different specialty don’t really want to know all your “technicals”.
100%. I regularly have to tell DB or App people that I only need the high level answer because the details are immaterial to the discussion at hand. I might be personally interested, but I got shit to do…
Have you stopped to consider that the current solution might be better than an all JIRA one? I can definitely see a lot of “file ingestion” pipelines that would be much better handled by a bunch of different systems intertwined than JIRA, especially for automated file ingestion (which I guess is what you’re doing? Hard to know but hard for it to be something else).
I don’t know what’s the situation there, but if I was an engineer on one such project I would explain to the person why it’s not feasible, but it could be that that got interpreted as not explaining stuff. An easy to understand example would be someone asking what’s the best way to replace a car (that has been cobbled to pieces from separate cars) with a shoe, and then you try to explain to the person that that just doesn’t make sense they say that you’re being uncooperative and not explaining how the car works so you can make the shoe do the same.
Look, I’m not saying this is your case, but it feels like you’re approaching this the wrong way, you have a new solution without even understanding the current one. A better approach would be to gather the engineers and ask them what are THEIR problems with the system, and how would THEY like to fix them. If the Jira thing comes from higher ups tell them that this is a new requirement, but let THEM solve the technical issues, you are unlikely to be able to even if they explain them to you in detail.
Ok, so I AM asking the engineers that. But we need to be angle to track the implementations for each client, and that is why we are using JIRA. I’m very open to alternative ideas, but one of the problems is that teams involved are using salesforce, JIRA, and
AtlassianAzure, and this is causing a serious dearth of communication, as well as there being no way for anyone to get a bird’s eye view of where implementations currently stand. Frankly I have a lot more autonomy and control over this thing than anyone in this thread seems to be used to, so if people have better process ideas, I am all ears.Ok, so it seems that you’re only talking about managerial stuff, whether to use Jira or Atlassian, engineers don’t usually care about that, and there’s usually no technical reason to use one or the other, so it could be that you’re asking them to explain how a car works to try to figure out the best shoe to wear.
Also no one that’s not involved in the project will have better process ideas because we don’t know the process, and apparently neither do you from what you’re saying, it’s the thing the engineers “refuse” to explain to you. I think at the end of the day you need to sit down and explain what the higher ups want and listen to their ideas on how to get there.
explain what the higher ups want and listen to their ideas on how to get there
absolutely this… engineers want to help you design solutions… if you come to me and ask me to explain something so that you can design a solution that i’m then told to build you’re removing all the fun out of it and i ain’t gonna help with that